Neste guia prático, você vai construir do absoluto zero um aplicativo de recomendação de filmes em trinta minutos de trabalho real. Você precisa apenas de um computador conectado à internet, um editor de código simples e este passo a passo detalhado sobre como criar aplicativo com ChatGPT de forma funcional.
O que você vai precisar
- Uma conta ativa na plataforma da OpenAI para obter as credenciais de acesso aos modelos de linguagem.
- O interpretador do Python instalado no seu computador, seguindo as diretrizes descritas na documentação oficial do Python.
- Um editor de texto simples instalado, como o Visual Studio Code ou o Bloco de Notas do seu sistema operacional.
- Tempo estimado de execução: 30 minutos.
- Custo aproximado: R$ 0,00 utilizando o modelo gpt-4o-mini nos testes iniciais, ou cerca de US$ 5,00 em créditos pré-pagos caso queira manter a aplicação disponível para uso contínuo de múltiplos usuários.
O segredo de como criar aplicativo com ChatGPT sem dor de cabeça
Desenvolver um software sem saber escrever linhas de código complexas exige que você entenda como dar instruções claras e diretas. O segredo está em usar o modelo gpt-4o-mini para fazer as tarefas pesadas de estruturação de arquivos e criação de rotas lógicas.
Ao longo deste tutorial, você vai utilizar o terminal de comandos do seu sistema operacional e colar os códigos gerados pelo assistente diretamente nos arquivos locais. Esse método garante que você mantenha o controle do projeto e consiga testar tudo no seu próprio navegador de internet.
Passo a passo
-
Prepare o ambiente e instale as dependências no terminal
Abra o terminal de comandos do seu computador. Se você estiver no Windows, use o Prompt de Comando ou o PowerShell. Se estiver no macOS ou Linux, utilize o Terminal integrado do sistema.
Digite os comandos abaixo para criar uma pasta isolada para o seu projeto e instalar as bibliotecas necessárias para conectar o servidor à inteligência artificial. Nós usaremos o Flask para gerenciar o servidor e a biblioteca da OpenAI para as requisições.
mkdir app-filmes-ai cd app-filmes-ai pip install flask python-dotenv openaiO que você deve ver na tela: um log de carregamento do gerenciador de pacotes pip indicando a instalação bem-sucedida das bibliotecas Flask, Python-dotenv e OpenAI.
-
Obtenha a chave de API no painel de desenvolvedor
Acesse o painel oficial da OpenAI no seu navegador e faça o login na sua conta de desenvolvedor. No menu lateral esquerdo, clique no item “API keys” para gerenciar suas chaves de acesso.
Clique no botão “Create new secret key”, escreva o nome “chave-filmes” no campo solicitado e confirme a criação. Copie imediatamente o código gerado, que começa com os caracteres “sk-“, pois ele não será exibido novamente por questões de segurança da plataforma.
O que você deve ver na tela: uma caixa de diálogo contendo a sequência alfanumérica da sua chave privada com um botão de cópia ao lado.
-
Configure as credenciais no arquivo local
Abra o seu editor de texto e crie um arquivo vazio dentro da pasta “app-filmes-ai”. Salve este arquivo com o nome exato de “.env” sem qualquer extensão adicional na escrita do nome.
Cole a sua chave de acesso copiada no passo anterior dentro deste arquivo, seguindo a estrutura padrão de declaração de variáveis de ambiente do sistema. Substitua o texto fictício pelo seu código secreto de acesso real.
OPENAI_API_KEY=sk-proj-SEUGUARDSUACHAVEAQUIPARAOFUNCIONAMENTOO que você deve ver na tela: o arquivo “.env” salvo na pasta do projeto com uma única linha contendo a sua credencial privada configurada de forma correta.
-
Crie a lógica do backend do aplicativo
Crie um novo arquivo chamado “app.py” na pasta raiz do seu projeto usando o seu editor de texto. Abra o assistente inteligente e envie o comando exato descrito abaixo para receber o código estruturado do servidor Python.
Com esse prompt rodando, você vai entender na prática como criar aplicativo com ChatGPT estruturando o backend e a inteligência artificial ao mesmo tempo.
Crie um servidor web usando Flask em Python. Ele deve carregar a chave de API do arquivo .env usando a biblioteca dotenv. O servidor deve ter uma rota principal "/" que renderiza "index.html" e uma rota "/recomendar" que recebe um gênero de filme via POST (JSON) e faz uma chamada usando a biblioteca oficial da OpenAI (versão 1.0.0 ou superior) com o modelo "gpt-4o-mini". O prompt do sistema deve ser: "Você é um especialista em cinema. Recomende 3 filmes do gênero solicitado. Retorne APENAS um objeto JSON válido, contendo um array 'filmes', onde cada elemento é um objeto com as chaves 'titulo', 'sinopse' e 'ano'." Retorne essa resposta JSON para o frontend.Depois de copiar o código gerado pelo assistente, cole o conteúdo completo dentro do seu arquivo “app.py”. Certifique-se de que a estrutura do arquivo se parece exatamente com o bloco de código a seguir:
import os from flask import Flask, render_template, request, jsonify from dotenv import load_dotenv from openai import OpenAI 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("/recomendar", methods=["POST"]) def recomendar(): dados = request.json genero = dados.get("genero") try: resposta = client.chat.completions.create( model="gpt-4o-mini", messages=[ {"role": "system", "content": "Você é um especialista em cinema. Recomende 3 filmes do gênero solicitado. Retorne APENAS um objeto JSON válido, contendo um array 'filmes', onde cada elemento é um objeto com as chaves 'titulo', 'sinopse' e 'ano'."}, {"role": "user", "content": f"Recomende filmes do gênero: {genero}"} ], response_format={"type": "json_object"} ) resultado = resposta.choices[0].message.content return jsonify(resultado) except Exception as e: return jsonify({"erro": str(e)}), 500 if __name__ == "__main__": app.run(debug=True, port=5000)O que você deve ver na tela: o arquivo “app.py” aberto no seu editor contendo a estrutura de rotas do Flask e a chamada de conexão da API configuradas.
-
Desenhe a interface visual do usuário
Crie uma nova pasta chamada “templates” dentro do diretório principal “app-filmes-ai”. Acesse essa nova pasta e crie um arquivo de texto limpo batizado com o nome de “index.html”.
Copie e cole o código HTML abaixo dentro desse arquivo, contendo a interface moderna criada com Bootstrap e a lógica em JavaScript para enviar as informações para o nosso servidor local.
<!DOCTYPE html> <html lang="pt-BR"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Recomendador de Filmes IA</title> <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"> </head> <body class="bg-light"> <div class="container py-5"> <div class="text-center mb-5"> <h1 class="display-4 fw-bold text-primary">CineAI</h1> <p class="lead text-muted">Recomendações inteligentes de filmes instantaneamente</p> </div> <div class="row justify-content-center"> <div class="col-md-6"> <div class="card shadow border-0 p-4 mb-4"> <label for="genero" class="form-label fw-bold">Selecione o Gênero:</label> <select id="genero" class="form-select mb-3"> <option value="Ação">Ação</option> <option value="Comédia">Comédia</option> <option value="Drama">Drama</option> <option value="Ficção Científica">Ficção Científica</option> <option value="Terror">Terror</option> </select> <button id="btn-recomendar" class="btn btn-primary w-100" onclick="obterRecomendacoes()">Buscar Indicações</button> </div> <div id="loading" class="text-center d-none my-3"> <div class="spinner-border text-primary" role="status"></div> <p class="mt-2 text-muted">Consultando a inteligência artificial...</p> </div> <div id="resultados" class="row"></div> </div> </div> </div> <script> async function obterRecomendacoes() { const genero = document.getElementById('genero').value; const btn = document.getElementById('btn-recomendar'); const loading = document.getElementById('loading'); const resultados = document.getElementById('resultados'); resultados.innerHTML = ''; loading.classList.remove('d-none'); btn.disabled = true; try { const resposta = await fetch('/recomendar', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ genero }) }); const textoRaw = await resposta.json(); const dados = JSON.parse(textoRaw); if(dados.filmes) { dados.filmes.forEach(filme => { const card = document.createElement('div'); card.className = 'col-12 mb-3'; card.innerHTML = ` <div class="card shadow-sm border-0"> <div class="card-body"> <h5 class="card-title fw-bold text-dark">${filme.titulo} <span class="badge bg-secondary">${filme.ano}</span></h5> <p class="card-text text-muted small">${filme.sinopse}</p> </div> </div> `; resultados.appendChild(card); }); } } catch (erro) { alert('Ocorreu um erro ao obter as recomendações.'); } finally { loading.classList.add('d-none'); btn.disabled = false; } } </script> </body> </html>O que você deve ver na tela: o arquivo “index.html” estruturado e salvo dentro do diretório “templates” do seu computador.
-
Coloque o aplicativo para rodar localmente
Retorne ao terminal de comandos aberto na pasta raiz “app-filmes-ai” do seu projeto. Execute o comando de inicialização abaixo para ligar o servidor local do Flask.
python app.pyAbra o navegador de internet de sua preferência e digite o endereço completo da porta de rede padrão do Flask: http://127.0.0.1:5000. Selecione um gênero na lista exibida e dê um clique sobre o botão azul de busca.
O que você deve ver na tela: o painel visual do CineAI carregando três indicações customizadas de filmes com título, ano e sinopse logo após o término da requisição.
Erros mais comuns
O erro abaixo acontece se você esquecer de instalar as bibliotecas de terceiros ou se o terminal não estiver com o ambiente virtual devidamente ativado. Corrija executando a instalação de pacotes novamente no console.
Traceback (most recent call last):
File "app.py", line 2, in <module>
from dotenv import load_dotenv
ModuleNotFoundError: No module named 'dotenv'
Este erro de resposta indica que a chave de API fornecida no arquivo “.env” possui erros de digitação, foi revogada no painel ou perdeu a validade de uso comercial. Acesse o console da OpenAI e gere uma nova credencial.
{
"error": {
"message": "Incorrect API key provided: sk-proj-***. You can find your API key at https://platform.openai.com/account/api-keys.",
"type": "invalid_request_error",
"param": null,
"code": "invalid_api_key"
}
}
Este aviso no console significa que outro serviço local está utilizando a mesma porta de conexão do servidor Flask. Resolva esse problema alterando o número da porta de inicialização no arquivo “app.py” para 5001 ou fechando programas antigos abertos em segundo plano.
OSError: [Errno 98] Address already in use
or
OSError: [Errno 10048] Only one usage of each socket address is normally permitted
Quanto custa
A criação do aplicativo de testes em si não possui custos de software, visto que as ferramentas como Python, VS Code e o framework Flask são totalmente gratuitos. O repositório de códigos hospedado no GitHub também pode ser mantido de graça para salvar seus arquivos de maneira persistente.
Para manter as requisições ativas, a API cobra pelo volume de texto processado. O modelo gpt-4o-mini custa aproximadamente US$ 0,15 por 1 milhão de tokens de entrada e US$ 0,60 por 1 milhão de tokens de saída. Isso significa que você pode realizar mais de vinte mil consultas de filmes gastando menos de US$ 1,00 de crédito. O valor do plano pago de recarga mínima da API é de US$ 5,00. Confira os valores vigentes na página de tarifas da empresa, pois esses valores mudam periodicamente.
Caso opte por publicar seu aplicativo na nuvem para que seus amigos acessem remotamente, você precisará de servidores de hospedagem como Render ou Railway. O plano básico pago de entrada nessas plataformas gira em torno de US$ 5,00 mensais, mas elas contam com períodos de avaliação sem cobranças.
Perguntas frequentes
Dá para adaptar esse mesmo código para criar um aplicativo de música ou recomendação de playlists?
Sim, você consegue utilizar exatamente a mesma estrutura básica deste projeto alterando apenas a instrução do sistema enviada para a API. No arquivo “app.py”, mude a instrução “especialista em cinema” para “especialista em curadoria musical” e altere a interface visual para coletar estilos musicais em vez de categorias de filmes. A lógica de requisição e a formatação do JSON continuam idênticas.
Como posso integrar essa lógica a um banco de dados de vendas ou ao controle de um aplicativo caixa?
Você precisa conectar um banco de dados relacional como o SQLite ou PostgreSQL ao seu script Flask. O assistente pode gerar as consultas em SQL necessárias para ler as vendas diárias do banco. Em seguida, você envia esses números consolidados como contexto para que o modelo de linguagem faça análises financeiras inteligentes para o seu negócio.
É possível programar a lógica de um aplicativo de jogos simples usando o mesmo fluxo?
Sim, você pode construir jogos de adivinhação, RPG textual ou quizzes dinâmicos usando esse fluxo. O servidor gerencia o estado da partida e envia as respostas do jogador para a API. O modelo analisa a resposta recebida e retorna se o jogador acertou, junto com o próximo desafio gerado automaticamente pela inteligência artificial.
Como fazer para transformar essa ideia simples em aplicativos pro prontos para venda?
Para criar versões profissionais voltadas ao mercado, você deve adicionar uma camada de autenticação de usuários com login e senha usando o Firebase ou Auth0. Também é necessário configurar uma plataforma de pagamento integrada para cobrar assinaturas dos clientes de forma automática. Salve as preferências de cada usuário em um banco de dados para entregar experiências personalizadas na tela.
Posso expandir esse aplicativo de filmes para buscar trailers e capas?
Sim, você pode integrar a API do TMDb ao seu backend em Python para complementar os dados de texto recebidos pela inteligência artificial. O modelo retorna o título do filme e o ID da produção, enquanto o seu script faz uma busca rápida no banco de dados externo do TMDb para puxar a imagem oficial do pôster e o link do vídeo do trailer no YouTube.
Conclusão
Você acabou de criar um aplicativo web totalmente integrado com inteligência artificial sem precisar passar anos estudando desenvolvimento de software. A união de instruções lógicas bem estruturadas com um servidor Flask simples permite que qualquer pessoa execute ideias inovadoras direto do computador de casa.
O que você pretende construir na sua próxima sessão de desenvolvimento de software? Deixe um comentário contando a sua ideia de projeto ou compartilhe se encontrou alguma dúvida técnica ao rodar o código do CineAI no seu computador!
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.