RAG (Base de Conhecimento)
O que e
RAG (Retrieval-Augmented Generation) permite que agents consultem documentos para responder perguntas. Arquivos sao processados em chunks, convertidos em embeddings vetoriais e armazenados no MongoDB Atlas para busca semantica.
Como Funciona
Upload e Processamento
- Um arquivo e enviado via frontend (
/rag) - O arquivo e armazenado no Google Cloud Storage
- O conteudo e dividido em chunks (pedacos de texto)
- Cada chunk recebe um embedding vetorial (Google
text-embedding-004, 768 dimensoes) - Os chunks sao salvos na collection
rag_chunkscom o embedding
Busca durante Conversa
- Quando uma mensagem chega, o
agent-processor.service.tsexecuta busca vetorial - A mensagem do usuario e convertida em embedding
- O Atlas Vector Search encontra os chunks mais similares (cosine similarity)
- Filtra apenas chunks de arquivos vinculados ao agent (
rag_file_slugs) e ativos - Os trechos relevantes sao injetados no prompt do agent como contexto
Collections MongoDB
| Collection | Descricao |
|---|---|
rag_files |
Metadados do arquivo (nome, slug, link GCS, status ativo) |
rag_chunks |
Chunks de texto com embedding vetorial |
Indice Atlas Vector Search
O indice rag_vector_index na collection rag_chunks:
- Dimensoes: 768
- Similaridade: Cosine
- Filtros:
file_slug,active
Gerenciamento de Arquivos
Ativar/Desativar
Desativar um arquivo (active=false) automaticamente desativa todos os seus chunks. O arquivo deixa de aparecer nas buscas sem precisar deletar.
Substituir
Ao substituir um arquivo (mesmo slug):
- Chunks antigos sao deletados
- Novo arquivo e processado
- Novos chunks sao criados
- O slug permanece o mesmo — agents vinculados continuam funcionando
Configurando no Frontend
- Acesse
/rag - Faca upload de um arquivo (PDF, TXT, etc.)
- Defina nome e slug para o arquivo
- No agent desejado, marque os arquivos RAG que ele deve consultar na secao de RAG