Sistema de Retrieval-Augmented Generation (RAG) local com suporte a múltiplos providers LLM, inferência de schema de grafos e gerenciamento avançado de documentos. Desenvolvido com arquitetura flexível usando padrões Strategy e Factory.
- 🤖 Multi-Provider LLM: Ollama, OpenAI, Google Gemini
- 📊 Schema Inference: Análise automática para estruturas de grafos
- 📁 Document Management: Upload seguro com cache e TTL
- 🔍 Vector Retrieval: Busca semântica com Neo4j
- 🎛️ Dynamic Selection: Seleção de provider e modelo em runtime
- 📈 Detailed Analytics: Estatísticas completas de documentos e processamento
- 🔒 Secure Uploads: Sistema de chaves UUID com expiração automática
- 📖 Visão Geral - Introdução e conceitos
- 🏗️ Arquitetura - Estrutura e padrões do sistema
- ⚙️ Setup & Configuração - Instalação e execução
- 🔧 Configuração Avançada - Variáveis e flags
- 📥 Ingestão - Upload e processamento
- 🔍 Query API - Consultas e retrieval
- 🗂️ Schema Inference - Inferência de grafos
- 🔧 Troubleshooting - Solução de problemas
- 📋 User Stories - 8 histórias implementadas
- 🚀 Implementation Phases - Fases de desenvolvimento
# Clone o repositório
git clone https://github.com/roger8b/local_rag.git
cd local_rag
# Configure as variáveis de ambiente
cp .env.example .env
# Edite o .env com suas configurações# Instale as dependências
pip install -r requirements.txt
# Inicie a API
python run_api.py
# OU inicie o Streamlit (interface web)
streamlit run streamlit_app.pyAcesse http://localhost:8000/docs para documentação interativa:
POST /api/v1/schema/upload- Upload com estatísticas detalhadasPOST /api/v1/schema/infer- Inferência com controle percentual e seleção de modeloGET /api/v1/schema/documents- Listar cache com informações completasDELETE /api/v1/schema/documents/{key}- Remover do cache
POST /api/v1/ingest- Upload de documentos (.txt, .pdf)POST /api/v1/query- Consultas RAGGET /api/v1/models/{provider}- Listar modelos disponíveisGET /api/v1/documents- Listar documentos processadosDELETE /api/v1/documents/{doc_id}- Remover documento
# Providers LLM
LLM_PROVIDER=ollama # ollama, openai, gemini
EMBEDDING_PROVIDER=ollama # ollama, openai
# API Keys (apenas para providers externos)
OPENAI_API_KEY=your_key_here
GOOGLE_API_KEY=your_key_here
# Neo4j (opcional)
NEO4J_VERIFY_CONNECTIVITY=false # Para ambientes sem Neo4j- 💬 Chat Interface: Consultas RAG interativas
- 📤 Document Upload: Upload e gerenciamento
- 🎛️ Provider Selection: Seleção dinâmica de LLM
- 📊 Document Manager: Visualização e remoção (
pages/03_document_manager.py)
- Total: 41 testes automatizados
- Cobertura: 100% dos endpoints principais
- Metodologia: Test-Driven Development (TDD)
# Executar todos os testes
pytest
# Executar testes específicos
pytest tests/integration/test_schema_improvements.py -v- Padrões: Strategy, Factory, Dependency Injection
- Providers: Arquitetura plugável para LLMs
- Cache: Sistema em memória com TTL
- API: FastAPI com documentação automática
- Database: Neo4j para vectors e grafos