RAG para suporte ao cliente: como tornar as respostas da IA realmente precisas
Respostas puras de LLM alucinam. O RAG (geração aumentada por recuperação) ancora a IA na sua documentação. Veja como o AskAIs Customer Service faz isso sem desperdiçar tokens.
Sem recuperação, um LLM respondendo "como redefino minha senha?" dará uma resposta plausível, mas provavelmente errada — botão diferente, fluxo diferente, URL diferente. O RAG (geração aumentada por recuperação) resolve isso injetando o trecho certo da sua documentação no prompt antes de o modelo falar.
O pipeline em resumo
Três etapas: ingestão, recuperação, geração.
1. Ingestão
- Envie PDFs, Markdown e arquivos do Office pela interface de Conhecimento
- O worker extrai o texto e o divide em blocos de ~800 tokens com sobreposição de 100 tokens
- Cada bloco é incorporado com
text-embedding-3-small(1536d) - Armazenado no Postgres com a extensão
pgvector
2. Recuperação
Quando um visitante envia uma mensagem, incorporamos a consulta e executamos uma busca por distância de cosseno nos blocos do inquilino. O Top-K (5 por padrão) é trazido, com um limiar de similaridade para descartar correspondências irrelevantes.
SELECT id, content, 1 - (embedding <=> $1) AS similarity
FROM knowledge_chunks
WHERE tenant_id = $2
ORDER BY embedding <=> $1
LIMIT 5;3. Geração
Os blocos recuperados são adicionados ao início do prompt do sistema com instruções explícitas: citar as fontes, recusar se o contexto não cobrir a pergunta, encaminhar a um humano se a confiança for baixa.
Cortando a conta de tokens
Três truques economizam dinheiro de verdade em grandes bases de conhecimento:
- Cache de embeddings — mesmo texto de consulta → mesmo embedding. Chave de hash SHA1, TTL de 24h no Redis. Reduz a zero o custo de reincorporação em perguntas repetidas.
- Cache de prompts — o
cache_controlda Anthropic e o cache automático da OpenAI fazem com que o prompt de sistema estático seja contado apenas uma vez por janela de 5 minutos. - Pulo baseado em limiar— se nenhum bloco passar pelo limiar de similaridade, não injete nada. Deixe o modelo dizer "não sei."
Quando o RAG não basta
O RAG lida bem com perguntas "como faço X?". Ele falha em dados personalizados ("onde está meu pedido?") — isso exige chamada de funções, que abordamos em um post separado. A combinação é o que lhe dá uma IA de nível Intercom por uma fração do custo.