Inteligência Artificial

Como criar um chatbot com a API do ChatGPT: tutorial passo a passo em Python

Como criar um chatbot com a API do ChatGPT: tutorial passo a passo em Python

A API da OpenAI (ChatGPT) abriu a possibilidade de qualquer desenvolvedor integrar inteligência artificial conversacional em suas aplicações — sem precisar treinar modelos, sem precisar de infraestrutura de machine learning, sem PhD em IA. Com algumas dezenas de linhas de Python e uma chave de API, você tem um chatbot funcional que responde em português, entende contexto, e pode ser especializado em qualquer domínio. Este tutorial vai do zero a um chatbot funcional com memória de conversa.

Configuração inicial

pip install openai python-dotenv

Crie uma conta em platform.openai.com, gere uma API Key em “API Keys”, e armazene-a no arquivo .env:

OPENAI_API_KEY=sk-...sua-chave-aqui...

Nunca coloque a chave diretamente no código — sempre use variáveis de ambiente. A chave dá acesso à sua conta e tem custo por uso.

Primeira chamada à API

from openai import OpenAI
from dotenv import load_dotenv
import os

load_dotenv()

client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

response = client.chat.completions.create(
    model="gpt-4o-mini",  # Modelo mais barato e rápido
    messages=[
        {"role": "user", "content": "Explique o que é recursão em programação em 3 linhas."}
    ]
)

print(response.choices[0].message.content)

O modelo gpt-4o-mini é o mais econômico (cerca de US$ 0,15 por milhão de tokens de input) e suficientemente capaz para a maioria dos chatbots. gpt-4o é mais capaz e mais caro — use quando precisar de raciocínio mais complexo.

Chatbot com memória de conversa

A API da OpenAI é stateless — cada chamada não sabe nada sobre chamadas anteriores. Para criar a ilusão de memória, você mantém o histórico da conversa e o envia a cada nova mensagem:

from openai import OpenAI
from dotenv import load_dotenv
import os

load_dotenv()
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

# O system prompt define a personalidade e especialidade do chatbot
system_prompt = """Você é um assistente especialista em programação Python.
Responda sempre em português, de forma clara e com exemplos de código quando relevante.
Se perguntarem sobre outros assuntos, redirecione gentilmente para programação."""

historico = [{"role": "system", "content": system_prompt}]

print("Chatbot Python iniciado! Digite 'sair' para encerrar.
")

while True:
    pergunta = input("Você: ").strip()
    if pergunta.lower() == 'sair':
        break
    if not pergunta:
        continue

    # Adiciona a mensagem do usuário ao histórico
    historico.append({"role": "user", "content": pergunta})

    response = client.chat.completions.create(
        model="gpt-4o-mini",
        messages=historico,
        max_tokens=1000,
        temperature=0.7,
    )

    resposta = response.choices[0].message.content

    # Adiciona a resposta ao histórico para contexto futuro
    historico.append({"role": "assistant", "content": resposta})

    print(f"
Assistente: {resposta}
")

Parâmetros importantes

temperature (0 a 2): controla a aleatoriedade. 0 = respostas muito determinísticas e repetitivas. 1 = criativo mas coerente. 2 = muito aleatório. Para chatbots de suporte ou respostas técnicas, use 0.3-0.5. Para geração criativa, use 0.8-1.0. max_tokens: limita o tamanho da resposta. system prompt: a mensagem de sistema que define o comportamento, personalidade, restrições e especialidade do chatbot — é a ferramenta mais poderosa para customizar o comportamento.

Integrando em uma API web

Para que outras pessoas usem seu chatbot via web, exponha-o como API com FastAPI:

from fastapi import FastAPI
from pydantic import BaseModel
from openai import OpenAI
import os

app = FastAPI()
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

class Mensagem(BaseModel):
    texto: str
    historico: list = []

@app.post("/chat")
async def chat(msg: Mensagem):
    messages = [{"role": "system", "content": "Você é um assistente útil."}]
    messages.extend(msg.historico)
    messages.append({"role": "user", "content": msg.texto})

    response = client.chat.completions.create(model="gpt-4o-mini", messages=messages)
    resposta = response.choices[0].message.content

    return {"resposta": resposta}

A partir daqui, qualquer frontend (React, Vue, ou HTML simples com fetch) pode conversar com seu chatbot via HTTP. Integrar em aplicações existentes, criar bots para WhatsApp via API oficial, ou embutir em sites de clientes — as possibilidades se multiplicam a partir desse ponto de partida.

Tem um projeto em mente?

Somos especialistas em transformar ideias em produtos digitais. Apps, sites, automações e IA — vamos construir juntos.

Resposta rápida Orçamento sem compromisso +100 projetos entregues
Compartilhar: