Memória e Contexto
O Problema da Memória
Por que o LLM esquece entre chamadas e o que significa stateless na prática.
Nesta aula você vai
- Explicar que cada chamada HTTP é independente por padrão
- Relacionar amnésia do chatbot com arquitetura, não "defeito" do modelo
- Listar o que precisa ser persistido externamente
O Problema da Memória
Objetivos
- Entender limitações nativas — e a solução correta
- Parar de esperar que o modelo "lembre" sozinho
Stateless por padrão
Cada POST /chat/completions é isolado. O modelo não guarda nada após responder.
Requisição 1: "Meu nome é Bruno" → "Prazer, Bruno!"
Requisição 2: "Qual meu nome?" → "Não tenho essa informação"
Não é bug — não há sessão no servidor do OpenAI ligada ao seu usuário. Você envia contexto ou não envia.
O que o ChatGPT web faz diferente
A interface mantém histórico no produto deles e reenvia mensagens anteriores a cada turno. Você replica isso no seu backend.
Três tipos de "memória" em produtos reais
| Tipo | Onde vive | Exemplo |
|---|---|---|
| Curto prazo | Histórico da conversa atual | Últimas 10 mensagens no prompt |
| Longo prazo | Banco de dados do usuário | Preferências, pedidos anteriores |
| Conhecimento | Docs, FAQ, vetores (RAG — próximo nível) | Manual do produto |
Este curso cobre curto prazo + ponte para longo prazo via tools.
O que persistir
Mínimo por mensagem:
{
"sessionId": "sess_abc",
"role": "user",
"content": "Pedido 4421?",
"createdAt": "2025-06-25T14:00:00Z",
"tokensEstimate": 12
}
Opcional: userId, channel, metadata.
Anti-padrão: confiar no frontend
// ❌ Frontend manda histórico completo — usuário pode manipular
body: { messages: [...1000 mensagens falsas...] }
Backend carrega histórico do seu banco por sessionId autenticado.
Resumo
- LLM não lembra — sua aplicação lembra
- Memória = reenviar contexto relevante a cada chamada
- Persistência externa (DB/Redis) é obrigatória para assistente real