Todos os posts
  • IA
  • RAG
  • Engenharia

RAG para suporte ao cliente: como tornar as respostas da IA realmente precisas

Um LLM sozinho inventa respostas plausíveis. A geração aumentada por recuperação (RAG) ancora a IA no seu próprio conteúdo. Veja como o AskAIs faz isso, passo a passo.

Equipe AskAIs

7 min de leitura

Pergunte a um LLM sozinho “como redefino minha senha?” e você recebe uma resposta plausível que provavelmente está errada: outro botão, outro fluxo, outra URL. O RAG (geração aumentada por recuperação) resolve isso colocando os trechos certos do seu próprio conteúdo no prompt antes de o modelo responder.

O pipeline em resumo

Três etapas: ingestão, recuperação, geração.

1. Ingestão

  • Envie arquivos PDF, DOCX, TXT, Markdown, CSV ou JSON, rastreie seu site ou adicione pares de Q&A em Training.
  • O worker extrai o texto e o divide em trechos de cerca de 2.000 caracteres (aproximadamente 500 tokens), com sobreposição de 200 caracteres. Cada par de Q&A continua sendo um único trecho.
  • Cada trecho recebe um embedding de text-embedding-3-small (1.536 dimensões).
  • Os trechos são armazenados no PostgreSQL com a extensão pgvector e um índice HNSW para distância de cosseno.

2. Recuperação

Quando a mensagem de um visitante precisa de fatos, geramos o embedding das mensagens recentes dele e fazemos uma busca por distância de cosseno nos trechos do espaço de trabalho. Saudações e conversa fiada pulam esta etapa. Uma versão simplificada da consulta:

-- Simplified. The real query also checks that the document is
-- ready, enabled, in date and visible on the visitor's platform.
SELECT c.id, c.content,
       1 - (c.embedding <=> $1::vector) AS similarity
FROM knowledge_chunks c
WHERE c.tenant_id = $2
ORDER BY c.embedding <=> $1::vector
LIMIT $3;  -- 3 × top-K candidates, re-ranked afterwards

Buscamos três vezes mais candidatos do que o necessário, reordenamos, descartamos tudo o que fica abaixo do limite de similaridade (cerca de 0,3), mantemos no máximo dois trechos por documento e passamos os cinco melhores (por padrão) para o modelo.

3. Geração

Os trechos são anexados ao prompt de sistema dentro de um bloco de referência delimitado. O modelo é instruído a tratar esse bloco como dados, não como instruções, a usar só as referências que respondem à pergunta e a não inventar fatos sobre o produto que não estejam ali.

Se um visitante pergunta sobre um fato do produto e nada relevante é encontrado, o modelo nem é chamado: o visitante é informado de que a informação não está disponível, e o chat vai para uma pessoa, a menos que a transferência automática esteja desativada.

Como manter o custo baixo

Três coisas deixam uma base de conhecimento grande com custo acessível:

  • Cache de embeddings: o mesmo texto de busca recebe o mesmo embedding. A chave é o nome do modelo mais um hash SHA-1 do texto, guardada no Redis por 24 horas.
  • Cache de prompt: para modelos Claude, a requisição pede à Anthropic que armazene o prompt em cache, e a OpenAI armazena prompts longos em cache automaticamente. O bloco de referência muda a cada resposta, então quem mais se beneficia é a parte fixa do prompt.
  • Pulo baseado em limite: se nenhum trecho passa do limite, nada é adicionado ao prompt.

Quando o RAG não basta

O RAG lida bem com perguntas do tipo “como faço…?”. Ele não consegue responder “onde está meu pedido?”, porque esses dados não estão nos seus documentos.

Para isso, o AskAIs tem as Custom tools: você descreve um endpoint HTTP no seu próprio sistema, como pedidos, reservas ou estoque, e a IA pode chamá-lo enquanto escreve a resposta. Perguntas gerais são respondidas com base no seu conhecimento, perguntas pessoais com base nos seus sistemas, e o resto vai para a sua equipe.

Comece grátis hoje.

1 agente, 100 respostas de IA por mês e o app para iPhone, iPad e Android. Grátis para sempre. Faça upgrade quando sua equipe crescer.

  • Sem cartão de crédito
  • Pronto em minutos