Neste tutorial, você vai aprender como criar aplicativo com ChatGPT de forma prática. O objetivo é construir um tradutor de texto para emojis funcional em Python usando a API da OpenAI. Você precisará de um computador com o VS Code instalado e apenas trinta minutos de dedicação.
O que você vai precisar
- Um computador com o sistema operacional Windows, macOS ou Linux instalado.
- O interpretador do Python 3.10 ou superior instalado na sua máquina, que você pode obter na documentação oficial do Python.
- Um editor de código-fonte de sua preferência, sendo recomendado o VS Code.
- Uma conta ativa no site oficial da OpenAI para obter as credenciais de acesso do modelo de inteligência artificial.
- Tempo estimado de execução de trinta minutos para finalizar toda a configuração e programação.
- Custo financeiro de desenvolvimento inicial de US$ 5,00, referentes ao saldo mínimo para ativação do consumo da API.
Passo a passo
-
Prepare o ambiente de desenvolvimento local
Crie uma pasta dedicada para o projeto no seu sistema de arquivos. Abra o seu terminal de comandos ou o Prompt de Comando do Windows e digite as instruções de criação de diretório. Acesse essa pasta criada para iniciar o isolamento do ambiente de execução do Python.
Configure um ambiente virtual do Python para garantir que as dependências do projeto não entrem em conflito com outras ferramentas do seu sistema operacional. Ative o ambiente virtual criado e instale as três bibliotecas fundamentais para este projeto usando o gerenciador de pacotes pip.
mkdir tradutor_emojis cd tradutor_emojis python -m venv venv venv\Scripts\activate pip install Flask openai python-dotenvNo macOS ou sistemas Linux, a ativação do ambiente virtual exige um comando ligeiramente diferente. Use o comando específico para esses sistemas para garantir o funcionamento correto.
source venv/bin/activateO que você deve ver na tela: O prompt do seu terminal de comandos exibirá o prefixo (venv) antes do caminho da pasta atual, confirmando que o ambiente virtual está ativo e pronto para uso.
-
Obtenha a sua chave secreta da API
Abra o navegador de internet e acesse o painel de desenvolvedores da OpenAI. Clique no menu lateral esquerdo na opção “API Keys” para visualizar a tela de gerenciamento de chaves de segurança. Clique no botão cinza chamado “Create new secret key”, dê um nome para a sua identificação e copie o código alfanumérico gerado.
Abra o VS Code na pasta raiz do projeto que você criou no primeiro passo. Crie um arquivo exatamente com o nome de .env na raiz do seu projeto para armazenar essa credencial sensível de maneira segura e isolada do código principal.
Escreva o nome da variável de ambiente em letras maiúsculas dentro desse arquivo novo. Cole o código alfanumérico que você acabou de copiar do painel de desenvolvedores diretamente após o sinal de igualdade.
OPENAI_API_KEY=sk-proj-ExEmPlOdEcHaVeApIoPeNaIsEmPrEsEgrEtAdEsTeArTiGoExEmPlOO que você deve ver na tela: O arquivo .env salvo dentro do painel lateral do VS Code exibindo a linha de configuração com a chave iniciada por sk-proj.
-
Peça a estrutura do servidor ao ChatGPT
Abra a interface web do seu assistente de inteligência artificial para interagir com o modelo. Esta etapa mostra detalhadamente como criar aplicativo com ChatGPT sem precisar digitar uma única linha de código manualmente. Copie o prompt abaixo e envie para o assistente gerar o código do backend do servidor.
Escreva um código em Python usando o framework Flask que se conecte à API da OpenAI usando a biblioteca oficial v1.0.0+. O aplicativo deve ler a chave de API do arquivo .env usando python-dotenv. Crie uma rota principal '/' que renderize um template index.html, e uma rota POST '/traduzir' que receba uma frase em formato JSON e retorne um JSON contendo a tradução exata dessa frase em uma sequência de emojis usando o modelo gpt-4o-mini.Crie um arquivo chamado app.py na pasta raiz do seu projeto dentro do VS Code. Copie a resposta estruturada fornecida pelo assistente e cole inteiramente dentro do arquivo recém-criado.
import os from flask import Flask, render_template, request, jsonify from openai import OpenAI from dotenv import load_dotenv load_dotenv() app = Flask(__name__) client = OpenAI(api_key=os.getenv("OPENAI_API_KEY")) @app.route("/") def index(): return render_template("index.html") @app.route("/traduzir", methods=["POST"]) def traduzir(): data = request.get_json() frase_usuario = data.get("frase", "") try: response = client.chat.completions.create( model="gpt-4o-mini", messages=[ {"role": "system", "content": "Você é um tradutor rigoroso. Traduza o texto enviado apenas em emojis. Não responda com palavras humanas, apenas com emojis correspondentes ao sentimento e significado."}, {"role": "user", "content": frase_usuario} ], temperature=0.3 ) resultado = response.choices[0].message.content.strip() return jsonify({"emojis": resultado}) except Exception as e: return jsonify({"erro": str(e)}), 500 if __name__ == "__main__": app.run(debug=True)O que você deve ver na tela: O editor VS Code exibindo o arquivo app.py com todas as linhas de importação, definição de rotas do Flask e chamadas de API estruturadas sem erros de sintaxe.
-
Monte o design da interface do usuário
Crie uma nova pasta dentro do diretório do seu projeto com o nome exato de templates. Entre nessa pasta nova e crie um arquivo com o nome exato de index.html, que servirá de interface visual para os usuários interagirem com o tradutor.
Você pode construir a interface enviando uma solicitação ao assistente de inteligência artificial. Copie o comando de requisição de código abaixo e cole no chat para gerar a estrutura visual moderna utilizando a CDN do Tailwind CSS.
Crie um arquivo HTML chamado index.html para a pasta templates. O design deve ser moderno, usando o Tailwind CSS para estilização com fundo escuro. Deve conter um campo de texto textarea para o usuário digitar uma frase, um botão de ação com o texto 'Gerar Emojis' que envie os dados via requisição JavaScript assíncrona fetch para a rota '/traduzir', e uma div destacada na tela com fundo gradiente para exibir o resultado da tradução.Copie o código HTML gerado pelo assistente de inteligência artificial e cole no arquivo templates/index.html. Essa estrutura utiliza requisições assíncronas documentadas no guia do MDN Web Docs para comunicação rápida com o backend.
<!DOCTYPE html> <html lang="pt-BR"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Tradutor de Emojis</title> <script src="https://cdn.tailwindcss.com"></script> </head> <body class="bg-slate-900 text-white min-h-screen flex items-center justify-center p-4"> <div class="w-full max-w-md bg-slate-800 p-6 rounded-2xl shadow-2xl border border-slate-700"> <h1 class="text-2xl font-bold text-center mb-6 text-indigo-400">Tradutor Expressivo</h1> <div class="space-y-4"> <textarea id="textoUsuario" placeholder="Digite sua frase aqui..." class="w-full p-4 rounded-xl bg-slate-700 border border-slate-600 focus:outline-none focus:ring-2 focus:ring-indigo-500 text-white resize-none h-28"></textarea> <button onclick="enviarFrase()" class="w-full bg-indigo-600 hover:bg-indigo-700 transition duration-200 text-white font-semibold py-3 rounded-xl">Gerar Emojis</button> </div> <div class="mt-6 p-4 rounded-xl bg-gradient-to-r from-indigo-900 to-purple-900 border border-indigo-700 min-h-16 flex items-center justify-center"> <p id="resultadoTraducao" class="text-3xl text-center">✨</p> </div> </div> <script> async function enviarFrase() { const texto = document.getElementById('textoUsuario').value; const campoResultado = document.getElementById('resultadoTraducao'); if (!texto.trim()) return; campoResultado.textContent = "Traduzindo..."; try { const resposta = await fetch('/traduzir', { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({ frase: texto }) }); const dados = await resposta.json(); if (dados.emojis) { campoResultado.textContent = dados.emojis; } else { campoResultado.textContent = "Erro na resposta"; } } catch (erro) { campoResultado.textContent = "Erro de conexão"; } } </script> </body> </html>O que você deve ver na tela: O arquivo HTML index.html preenchido com as tags de estrutura e o script JavaScript completo salvo dentro do diretório templates.
-
Coloque o sistema para rodar
Volte ao terminal de comandos que está com o ambiente virtual ativado na raiz do projeto. Digite o comando de inicialização do Python para executar o arquivo do servidor local.
python app.pyAbra o navegador de sua preferência e acesse o endereço de servidor de desenvolvimento local que aparece no terminal de comandos. O endereço padrão configurado pelo Flask é o seguinte:
http://127.0.0.1:5000Digite uma frase emocionante no campo de texto, como por exemplo, “Estou muito ansioso para viajar de avião para a praia amanhã” e clique no botão de ação. Aguarde alguns instantes enquanto o modelo processa os tokens.
O que você deve ver na tela: Uma página web estilizada em tons escuros exibindo o campo de texto preenchido e, logo abaixo, a tradução perfeita com símbolos como avião, praia e sol brilhante dentro da caixa gradiente.
Erros mais comuns
Se as credenciais configuradas estiverem desatualizadas, incorretas ou sem saldo ativo para consumo na API, o console do servidor Flask registrará um retorno de autenticação negada. Esse é um problema de segurança na validação do token.
{
"error": {
"message": "Incorrect API key provided: sk-proj-ExEm***. You can find your API key at https://platform.openai.com/account/api-keys.",
"type": "invalid_request_error",
"param": null,
"code": "invalid_api_key"
}
}
Se houver alguma chamada utilizando parâmetros antigos da biblioteca da OpenAI ou conflito de sintaxe herdado de versões anteriores à v1.0.0 do pacote oficial de Python, o interpretador interromperá a execução imediatamente disparando um aviso de falha de atributo interno.
AttributeError: module 'openai' has no attribute 'ChatCompletion'
Se você esquecer de definir a variável de ambiente no arquivo de configuração local ou se o carregador dotenv não encontrar o arquivo .env no diretório correto, a inicialização do cliente disparará um erro de parâmetro obrigatório ausente.
ValueError: The API key client option must be set either by passing api_key to the client or by setting the OPENAI_API_KEY environment variable
Quanto custa
O custo para manter o desenvolvimento e testes do seu aplicativo é extremamente baixo. Você não pagará licenças de software, pois as ferramentas de desenvolvimento utilizadas no tutorial, como VS Code, Python e Flask, são totalmente gratuitas e de código aberto.
O consumo da API é cobrado sob demanda pelo processamento de tokens. O modelo gpt-4o-mini é extremamente acessível. O plano pré-pago mais barato exige um carregamento mínimo em torno de US$ 5,00 diretamente na conta da OpenAI. Esse saldo rende milhares de traduções, pois cada requisição custa frações infinitesimais de centavo, na faixa de US$ 0,15 por milhão de tokens de entrada. Recomenda-se consultar sempre a página de preços oficial da OpenAI, pois esses valores de consumo e taxas mínimas de depósito podem sofrer alterações sem aviso prévio.
Perguntas frequentes
Como publicar esse aplicativo na internet para outras pessoas usarem?
Para colocar o seu projeto de tradução acessível ao público de qualquer lugar, configure a hospedagem do código em serviços de computação em nuvem gratuitos ou de baixo custo. Boas opções no mercado incluem plataformas como Render ou PythonAnywhere. O plano básico mais barato da Render custa cerca de US$ 7,00 mensais para servidores dedicados pequenos. Você precisará subir o seu repositório local de arquivos para a plataforma do GitHub e vincular a conta ao serviço de nuvem escolhido, lembrando de cadastrar a variável de ambiente secreta diretamente nas configurações de ambiente do painel administrativo de hospedagem.
Como transformar esse projeto básico em aplicativos profissionais e escaláveis?
Para criar versões profissionais voltadas ao mercado corporativo, substitua a estrutura básica do Flask por soluções mais robustas. Recomenda-se migrar o gerenciamento de requisições de backend para frameworks assíncronos modernos de alta performance, como o FastAPI. Adicione um sistema robusto de gerenciamento de banco de dados para salvar o histórico de interações dos usuários, gerencie o controle de requisições com filas de processamento usando Redis e aplique autenticação segura de usuários com tokens JWT.
Dá para usar esse método para criar um aplicativo de filmes ou recomendação de música?
Sim, o processo de comunicação com a inteligência artificial é idêntico para outros tipos de finalidades e conteúdos. Para fazer um recomendador de filmes ou gerador de playlists musicais automáticas, altere as instruções dadas no papel de sistema (“system prompt”) no arquivo app.py de tradutor para especialista em cinema ou música. O seu arquivo de interface visual precisará de adaptações nos campos de texto para coletar as preferências do usuário, como o gênero favorito ou o humor atual de quem está buscando a recomendação.
É seguro usar APIs do ChatGPT em sistemas financeiros ou no estilo de banco?
A inteligência artificial generativa não deve tomar decisões autônomas críticas ou transacionar valores diretamente em sistemas financeiros sensíveis. Modelos de linguagem podem sofrer com alucinações de dados ou gerar respostas imprecisas sob instruções maliciosas de usuários conhecidas como injeção de prompt. Para cenários com alto nível de segurança, utilize a inteligência artificial apenas como assistente de suporte informacional básico ou classificador de dados secundário, mantendo o controle das operações lógicas e regras de negócio blindadas dentro do código tradicional do servidor.
Posso programar um aplicativo de jogos inteiro apenas pedindo código para a inteligência artificial?
Sim, você consegue construir jogos simples de navegador, baseados em texto ou de mecânicas bidimensionais simples em JavaScript, apenas pedindo códigos completos no chat. O segredo está em quebrar a lógica do jogo em pequenos módulos estruturados, solicitando ao assistente que escreva e explique uma funcionalidade por vez, como as colisões físicas de objetos ou a marcação de pontuação. Para jogos maiores ou com engine gráfica tridimensional pesada, você precisará atuar como arquiteto de software, integrando manualmente os roteiros criados pelo assistente nas ferramentas de desenvolvimento.
Conclusão
Criar softwares funcionais integrados com inteligência artificial tornou-se uma tarefa rápida e acessível para qualquer desenvolvedor disposto a aprender comandos básicos de integração. Com essa estrutura inicial rodando em seu computador local, você possui a base necessária para expandir a lógica e conectar novas ferramentas corporativas. Deixe um comentário detalhando qual funcionalidade avançada você gostaria de adicionar a este tradutor de emojis no seu próximo teste de desenvolvimento!
Leia também
Receba um tutorial de automação por semana
Toda terça, um passo a passo testado por mim e o prompt exato que usei. Sem enrolação, sem spam.