RAG: Quando ChatGPT Precisa de Contexto Real
Você treinou um modelo em seus documentos. 1 mês funcionou. Depois começou a alucinar.
Problema? Fine-tuning em dados que mudam constantemente não funciona. Solução? RAG (Retrieval Augmented Generation).
Como Funciona
1. Você tem 10.000 documentos
2. Converte cada um em embedding (vetor de 384 dimensões). Custa R$ 50-100.
3. Usuário pergunta "Qual é a política de devolução?" → Converte em embedding → Busca documentos similares → Envia com contexto pro ChatGPT → Resposta baseada em seus dados REAIS.
Implementação
from openai import OpenAI
import numpy as np
def busca_semantica(query, docs):
query_emb = OpenAI.embeddings.create(
model="text-embedding-3-small",
input=query
).data[0].embedding
similaridades = []
for doc in docs:
sim = np.dot(query_emb, doc['embedding'])
similaridades.append((doc, sim))
top_docs = sorted(similaridades, key=lambda x: x[1], reverse=True)[:3]
contexto = "\n\n".join([d['texto'] for d, _ in top_docs])
response = OpenAI.chat.completions.create(
model="gpt-4",
messages=[
{"role": "system", "content": f"Contexto: {contexto}"},
{"role": "user", "content": query}
]
)
return response.choices[0].message.content
Ganho
Chatbot que responde com DOCUMENTAÇÃO REAL. Não inventa. Cita fonte. Custo: R$ 5-10k. ROI em 2 meses economizando em atendimento.
← Voltar ao blog