Como Criar um Agente de IA com ChatGPT e Python (Passo a Passo)

Como Criar um Agente de IA com ChatGPT e Python

⚙️ Como Criar um Agente de IA com ChatGPT e Python (Passo a Passo)

Atualizado em novembro de 2025 — Tutorial prático com código e dicas de deploy

Agentes de IA permitem automatizar tarefas complexas: buscar informações, analisar dados, redigir respostas e integrar serviços. Neste guia, você vai criar um agente simples em Python usando a API da OpenAI (Chat completions) e evoluir para memória, ferramentas e deploy básico.

🧠 O que é um agente de IA?

Um agente é mais que um chatbot: ele tem objetivo, contexto e pode executar ações. Ex.: resumir um PDF, organizar tarefas ou responder e-mails com tom profissional.

🧰 Pré-requisitos

  • Python 3.10+ instalado
  • Conta e chave de API da OpenAI (defina como variável de ambiente)
  • Bibliotecas: requests (ou o SDK oficial)
# Mac/Linux
export OPENAI_API_KEY="SUA_CHAVE_AQUI"

# Windows (PowerShell)
setx OPENAI_API_KEY "SUA_CHAVE_AQUI"
  

🚀 Passo 1 — Criar um agente básico (Chat Completions)

Exemplo mínimo usando requests para evitar dependências. Substitua SUA_CHAVE_AQUI por sua variável de ambiente.

import os, requests

API_KEY = os.getenv("OPENAI_API_KEY")
URL = "https://api.openai.com/v1/chat/completions"

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}

system_prompt = "Você é um assistente técnico que explica IA de forma clara e objetiva."
user_input = "Explique, em até 5 linhas, o que é aprendizado de máquina."

payload = {
    "model": "gpt-4o-mini",
    "messages": [
        {"role": "system", "content": system_prompt},
        {"role": "user", "content": user_input}
    ],
    "temperature": 0.4
}

resp = requests.post(URL, headers=headers, json=payload, timeout=60)
resp.raise_for_status()
print(resp.json()["choices"][0]["message"]["content"])

🧩 Passo 2 — Dando “memória” curta ao agente

Persista o histórico recente para manter contexto entre mensagens:

class SimpleAgent:
    def __init__(self, system="Você é um assistente útil sobre IA.", model="gpt-4o-mini"):
        self.model = model
        self.history = [{"role":"system","content":system}]

    def ask(self, query):
        self.history.append({"role":"user","content":query})
        payload = {"model": self.model, "messages": self.history, "temperature": 0.5}
        r = requests.post("https://api.openai.com/v1/chat/completions",
                          headers={"Authorization": f"Bearer {os.getenv('OPENAI_API_KEY')}",
                                   "Content-Type":"application/json"},
                          json=payload, timeout=60)
        r.raise_for_status()
        msg = r.json()["choices"][0]["message"]["content"]
        self.history.append({"role":"assistant","content":msg})
        return msg

agent = SimpleAgent()
print(agent.ask("Liste 3 casos de uso práticos de IA para produtividade."))
print(agent.ask("Agora detalhe o primeiro caso em 4 bullet points."))

🔧 Passo 3 — “Ferramentas”: chamando código externo (ex.: busca local)

Simule uma ferramenta: se o usuário pedir “ler_arquivo: caminho.txt”, o agente chama uma função Python e retorna o conteúdo.

def tool_read_file(path):
    try:
        with open(path, "r", encoding="utf-8") as f:
            return f.read()[:3000]  # limita o tamanho
    except Exception as e:
        return f"Erro ao ler arquivo: {e}"

def routed_response(query):
    if query.startswith("ler_arquivo:"):
        path = query.split(":",1)[1].strip()
        return f"<CONTEUDO_ARQUIVO>\n{tool_read_file(path)}\n</CONTEUDO_ARQUIVO>"
    else:
        return None

def ask_with_tools(agent, query):
    tool_result = routed_response(query)
    if tool_result:
        query = f"O usuário pediu para ler um arquivo e o conteúdo é:\n{tool_result}\nResuma em 5 bullet points."
    return agent.ask(query)

print(ask_with_tools(agent, "ler_arquivo: notas/projeto.txt"))

🌐 Passo 4 — Deploy simples com Flask (API HTTP)

Exponha seu agente como endpoint para integrar com front-ends, Zapier ou no-code.

from flask import Flask, request, jsonify
app = Flask(__name__)
agent_api = SimpleAgent()

@app.post("/chat")
def chat():
    data = request.get_json(force=True)
    answer = ask_with_tools(agent_api, data.get("message",""))
    return jsonify({"reply": answer})

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=8000, debug=False)

🛡️ Boas práticas e custos

  • Não exponha sua chave no front-end. Use variável de ambiente no servidor.
  • Defina timeout e trate raise_for_status() para erros de rede/API.
  • Monitore uso e custos por requisição no painel da API.
  • Armazene logs com responsabilidade (LGPD). Redija política de privacidade.

🧭 Próximos passos

  • Adicionar “memória longa” em banco (ex.: SQLite, Postgres) com resumo de histórico.
  • Integrar ferramentas reais: Google Drive, Notion, Slack, e-mails.
  • Criar front-end com Streamlit/Next.js para interface amigável.

🎯 Conclusão

Você criou um agente básico em Python, adicionou memória, rotas para ferramentas e expôs uma API. A partir daqui, evolua para agentes especializados em tarefas do seu negócio.


CTA: Quer acelerar? Veja nosso guia de cursos recomendados de IA e Python ou confira as ferramentas aprovadas pelo CodificaIA.

Transparência: podemos receber comissão por links de afiliado. Isso não altera sua experiência.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *