Skip to content

PedroLPfelipe/Infera

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Infera

Python Neo4j LangChain Groq pymupdf4llm HuggingFace FAISS Llama 3.3

Sobre o protótipo

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.

image alt

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.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages