Este é um sistema inteligente de Busca e Geração de Respostas (RAG - Retrieval-Augmented Generation) focado exclusivamente no banco de documentos, normativas, cartilhas e regulamentos da Universidade Federal de Goiás (UFG).
Nota Acadêmica: Este projeto foi desenvolvido e idealizado como parte da disciplina de Linguagens e Paradigmas de Programação (LPP).
Sem entrar em jargões profundos, o sistema funciona como um assistente de pesquisa incansável que consulta as leis da faculdade antes de te responder. O fluxo da "mente" dele funciona assim:
- Planner Agent: Quando você faz uma pergunta complexa (ex: "Como funciona o trancamento e jubilamento?"), este agente percebe as múltiplas intenções da frase. Ele decompõe a sua pergunta em partes menores e traduz a sua linguagem informal para o vocabulário institucional da UFG.
- Retriever: O sistema realiza uma busca vetorial híbrida em um banco de dados com milhares de trechos de documentos da UFG e recupera as 100 páginas mais relevantes com base em similaridade semântica.
- Reranker (Cross-Encoder): Uma outra inteligência artificial especializada (modelo de reranking) lê detalhadamente essas 100 páginas e descarta as menos aderentes, garantindo que apenas o Top 15 mais preciso seja injetado como contexto.
- Synthesizer Agent: Um modelo de linguagem junta as regras exatas recuperadas e redige a resposta final. Ele é instruído sob "Zero Interação", ou seja, é proibido de alucinar ou inventar regras que não estão nos textos recuperados.
- Judge Agent: O sistema avalia a própria resposta final. Se o Juiz detectar alucinações ou considerar a resposta incompleta, ele interrompe o fluxo, volta ao passo 1 e comanda uma repescagem autônoma para recuperar os dados que faltaram antes de exibir a tela para o usuário.
Para ver a especificação pesada e o design pattern dos Agentes e do motor de processamento, leia a nossa Documentação de Arquitetura Oficial.
Como o banco de dados já foi processado e está incluso (via Snapshot Vetorial na pasta do Qdrant), você não precisará rodar scripts de extração de PDFs! Tudo está pronto para uso.
Abra o seu terminal e baixe o código:
git clone https://github.com/fragaeduardo/RAG-multiagent-docs.git
cd RAG-multiagent-docsO sistema precisa se comunicar com as IAs para pensar.
- Crie um arquivo chamado
.envna raiz do projeto. - Copie o conteúdo do arquivo
.env.examplepara dentro dele. - Preencha as suas chaves reais. A
OPENROUTER_API_KEYé a única obrigatória (provedor principal dos agentes). As demais são opcionais e ativam os fallbacks/recursos:OPENROUTER_API_KEY— provedor principal de LLM (obrigatória).OPENAI_API_KEY— fallback secundário, caso o OpenRouter falhe.GEMINI_API_KEY— fallback terciário.HF_TOKEN— opcional, apenas se usar a Inference API remota da Hugging Face para embeddings.
O projeto roda totalmente isolado para não sujar o seu computador. Basta subir os containers:
make start(O comando acima irá baixar as imagens do Python e do Banco de Dados Vetorial e subir o servidor na sua máquina).
Agora que o motor está rodando, nós temos uma interface gráfica completa (estilo ChatGPT) para você interagir.
O make start do passo anterior já te coloca dentro do container. A partir desse terminal (com o prompt RAG_LPP:...$), rode:
make chat(Isso iniciará o sistema na porta 8000, exposta para a sua máquina via Docker).
Abra o seu navegador de internet no endereço http://localhost:8000 e converse com o assistente! Você verá os pensamentos de cada agente na tela.
Dica de Auditoria: Pela própria interface Web, você pode abrir as "Fontes" para ver exatamente qual PDF a IA consultou. Além disso, o sistema salvará um histórico físico das respostas no arquivo de auditoria em
data/logs/rag_queries.log.
- Caio Wallace Machado Gomes
- Eduardo Fraga Pereira
- Rafael Augusto Dias Batista
- Lucas Boclin Cunha Borges