You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Este projeto é um protótipo (POC) que combina busca vetorial (RAG) com um banco de dados em grafos (Neo4j) para responder perguntas técnicas sobre manuais de equipamentos industriais em segundos. O protótipo foi desenvolvido como projeto de conclusão de um curso de IA Generativa, com o objetivo de demonstrar que é possível construir uma solução funcional para uma demanda real usando ferramentas gratuitas e os conceitos estudados em aula — RAG, engenharia de prompt e sistemas multi-agentes.
Funcionamento
O sistema processa PDF e expõe duas interfaces especializadas:
Agente de Parâmetros
Identifica códigos no formato P0270, busca os trechos relevantes do manual e retorna nome, função, valor padrão de fábrica e faixa de ajuste do parâmetro.
Agente de Falhas e Alarmes
Identifica códigos no formato F022 ou A015, recupera o contexto do manual e retorna o nome da falha, as causas mais prováveis e o procedimento de solução.
A cada resposta gerada, o sistema extrai automaticamente triplas de conhecimento (sujeito → relação → objeto) e as grava no Neo4j, construindo progressivamente uma base de conhecimento estruturada sobre o equipamento consultado.
Pipeline
O processo de uma consulta é divido em duas etapas.
Arquitetura
Arquivos separados possuem aplicabilidades únicas que se integram para formar uma única aplicação funicional.
app.py
Interface web (Streamlit), gerenciamento de sessão e orquestração do fluxo.
rag_pipeline.py
Processamento do PDF, vetorização, busca e geração de respostas.
graph_db.py
Conexão com Neo4j e operações de leitura e escrita no grafo.
Elaborações sobre ferramentas
pymupdf4llm em vez de PyPDFLoader
Muitos manuais industriais são ricos em tabelas. O PyPDF convencional perde a estrutura tabular.
MMR
max_marginal_relevance_search analisa os 21 chunks mais próximos e entrega os 6 mais variados ao LLM, evitando repetições e ampliando o contexto.
temperature=0
Ao realizar leituras de tabelas técnicas e diagnósticos de falhas, a criatividade se torna inimiga da precisão técnica necessária. O modelo é instruído a não inventar valores, se não encontrar a informação requisitada, deve dizer isso explicitamente para o usuário.
Neo4j Aura (gratuito)
Cada resposta gerada alimenta o grafo com novas triplas. Com o passar do tempo, o sistema acumula relações entre parâmetros, falhas e causas e forma uma base de conhecimento que cresce com base no uso da aplicação.
Groq
A empresa Groq desenvolveu um chip próprio chamado LPU (Language Processing Unit), projetado especificamente para executar modelos de linguagem, permitindo rodar modelos grandes com uma velocidade de geração de tokens muito superior à média do mercado. Além disso, O Groq oferece um plano gratuito com bons limites requisições diárias e hospeda o Llama 3.3 70b, um modelo de 70 bilhões de parâmetros desenvolvido pela Meta e disponibilizado como open-source.
Requisitos para rodar o protótipo
Python 3.10+
Conta na plataforma Neo4j Aura e uma instância gratuita
Chave API do Groq Cloud no plano gratuito
Instalação das depêndencias presentes no requirements.txt
Configuração das credenciais no arquivo .env
Execução da interface web com streamlit run app.py
About
Projeto final da 3ª edição do Geração Tech: sistema de IA Generativa focado na ingestão de documentos, extração de dados e interface conversacional. A arquitetura utiliza o framework LangChain em conjunto com o banco de dados orientado a grafos Neo4j.