Pular para conteúdo

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

  1. Um arquivo e enviado via frontend (/rag)
  2. O arquivo e armazenado no Google Cloud Storage
  3. O conteudo e dividido em chunks (pedacos de texto)
  4. Cada chunk recebe um embedding vetorial (Google text-embedding-004, 768 dimensoes)
  5. Os chunks sao salvos na collection rag_chunks com o embedding

Busca durante Conversa

  1. Quando uma mensagem chega, o agent-processor.service.ts executa busca vetorial
  2. A mensagem do usuario e convertida em embedding
  3. O Atlas Vector Search encontra os chunks mais similares (cosine similarity)
  4. Filtra apenas chunks de arquivos vinculados ao agent (rag_file_slugs) e ativos
  5. 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

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):

  1. Chunks antigos sao deletados
  2. Novo arquivo e processado
  3. Novos chunks sao criados
  4. O slug permanece o mesmo — agents vinculados continuam funcionando

Configurando no Frontend

  1. Acesse /rag
  2. Faca upload de um arquivo (PDF, TXT, etc.)
  3. Defina nome e slug para o arquivo
  4. No agent desejado, marque os arquivos RAG que ele deve consultar na secao de RAG