Laboratorio pratico de RAG para uso real: ingestao de base autoral, benchmark comparativo e operacao diaria.
Este repositorio consolida um ciclo completo de engenharia de RAG:
- ingestao de conhecimento em colecoes vetoriais dedicadas,
- comparacao tecnica entre estrategias de retrieval,
- avaliacao qualitativa cega das respostas,
- preparo de material para publicacao tecnica (artigo).
Construir uma base de conhecimento solida, auditavel e reutilizavel para IA aplicada, com foco em:
- qualidade de resposta,
- latencia operacional,
- robustez em perguntas ambiguas,
- continuidade de evolucao (baseline -> fusion -> crag -> agentic).
- 9 colecoes vetoriais dedicadas (
sandeco_*_v1) - 2480 chunks ingeridos
-
Rodada 4 — Baseline vs Fusion
- baseline: ~0.03s
- fusion: ~9.37s
- novelty@8 do fusion: ~0.19
-
Rodada 5 — Fusion vs CRAG
- fusion: ~9.27s
- crag: ~7.67s
- novelty@8 do crag vs fusion: ~0.22
-
Rodada 6 — Avaliacao qualitativa cega
- baseline: 17.11/20
- fusion: 17.56/20
- crag: 16.11/20
-
Rodada 7 — Piloto LightRAG (framework externo)
- escopo:
sandeco_rag_book_v1, 3 perguntas, 80 chunks amostrados - baseline: 16.67/20 | 18.38s
- LightRAG: 16.00/20 | 37.58s
- status: piloto inicial concluido (indicador, nao decisao final)
- escopo:
-
Rodada 10 — GraphRAG com GPU (LightRAG modo grafo)
- contexto: GraphRAG nunca foi medido nas rodadas 1-9 (ficou como "Fase 3", dependia de Neo4j e nao havia GPU). Com a RTX 3060 (12 GB), a rodada 10 fecha essa lacuna.
- base: coleção
livros-sandecodo RAG local (local-ai-stack/rag), corrigido em 2026-10-02.
Piloto (livro RAG, 7 perguntas):
- baseline: 14.57/20 | 26.46s
- GraphRAG: 19.86/20 | 6.18s; vitorias 7x0.
Corpus completo (14 livros, 291 partes, 10841 entidades, ~108 min de indexacao):
-
baseline: 14.79/20 | 32.52s
-
GraphRAG: 19.00/20 | 7.78s; vitorias 12x2 (baseline ganhou em Engenharia de Prompts Vol 1 e Reversa Guia Rapido).
-
por dimensao (0-5): cobertura 2.79 -> 4.93 (maior ganho); precisao 4.00 -> 4.64; clareza 4.14 -> 4.79; aderencia 3.86 -> 4.64.
-
embedding identico (bge-m3) nos dois; extracao de entidades via gateway (
fast/DeepSeek). Detalhe:qwen3:14blocal falhava no schema do LightRAG (JSON malformado, chunks vazios, travamento >13min) — verrodada-10-graphrag/. -
relatorios:
analises/benchmark-graphrag-rodada-10*.md/.json -
graficos:
assets/graphrag_overview{,_todos}.png,assets/graphrag_radar{,_todos}.png,assets/graphrag_por_livro.png -
limite: juiz LLM cego (mesma ressalva das rodadas anteriores: sem avaliacao humana). Nao e decisao final de adocao.
Script operacional:
scripts/rag_daily_chat.py
Script operacional:
scripts/ingest_dual_sink.py
Exemplos:
cd "/home/ecode/Documents/projetos/projeto-rag/sources/rag_memory/02 - RAG with memory"
source .venv/bin/activate
# Ingerir documentacao web (crawl limitado ao dominio)
python /home/ecode/Documents/projetos/projeto-rag/scripts/ingest_dual_sink.py \
--source-type web \
--source-name fastapi_docs \
--collection docs_fastapi_v1 \
--url https://fastapi.tiangolo.com/ \
--max-pages 60 \
--max-depth 2
# Ingerir pasta de arquivos locais (pdf/docx/xlsx/html/...)
python /home/ecode/Documents/projetos/projeto-rag/scripts/ingest_dual_sink.py \
--source-type file \
--source-name contratos_2026 \
--collection files_contratos_2026_v1 \
--input-path "/home/ecode/Documents/contratos"Saidas:
- bruto auditavel no Obsidian (
10 Fontes Brutas/Webou10 Fontes Brutas/Documentos) - indice vetorial no Chroma (colecao escolhida)
- manifesto JSONL por lote + estado incremental em
analises/ingest_state/
Exemplos:
cd "/home/ecode/Documents/projetos/projeto-rag/sources/rag_memory/02 - RAG with memory"
source .venv/bin/activate
# Modo rapido (padrao recomendado)
python /home/ecode/Documents/projetos/projeto-rag/scripts/rag_daily_chat.py --mode baseline --collection auto
# Modo expansao semantica
python /home/ecode/Documents/projetos/projeto-rag/scripts/rag_daily_chat.py --mode fusion --collection auto
# Modo corretivo
python /home/ecode/Documents/projetos/projeto-rag/scripts/rag_daily_chat.py --mode crag --collection auto
# LightRAG (sem Neo4j, com roteamento automatico)
python /home/ecode/Documents/projetos/projeto-rag/scripts/rag_daily_chat_lightrag.py --collection auto --mode hybridPara uso diario no pi, existe uma extensao local em .pi/extensions/rag-obsidian-tools.ts com:
list_rag_collections: lista colecoes do Chroma localask_rag: retrieval local no Chroma (collection=auto|all|sandeco_*_v1)ingest_rag_source: ingestao dual sink (web ou arquivos) para Obsidian bruto + Chroma indexadotrack_work_event: telemetria manual leve do trabalho (sem LLM)analyze_work_patterns: analise de padroes e gargalos diretamente dos eventos (sem LLM)
Scripts base usados pela extensao:
scripts/rag_retrieve_local.pyscripts/ingest_dual_sink.py
Telemetria operacional no Obsidian:
90 Operacao/Telemetria/events.jsonl(registro continuo)90 Operacao/Telemetria/Diario/YYYY-MM-DD.md(resumo diario automatico)90 Operacao/Telemetria/Relatorios/(analises por periodo)
Observacoes:
- Nao depende de API HTTP separada para retrieval.
- Requer o ambiente Python do baseline em
sources/rag_memory/02 - RAG with memory/.venv.
scripts/: automacoes de ingestao, benchmark e operacaoanalises/: resultados, comparativos e rascunho de artigodownloads/: artefatos brutos locais (ignorado no git)sources/: codigo extraido/local de terceiros (ignorado no git)
analises/ingestao-lote-livros-sandeco.mdanalises/benchmark-baseline-vs-fusion.mdanalises/benchmark-fusion-vs-crag.mdanalises/avaliacao-qualitativa-cega-rodada-6.mdanalises/artigo-rascunho-rag-v1.mdanalises/material-artigo-rag.md
Este projeto segue politica explicita de versionamento:
- Nao publicar PDFs/livros, fontes brutas e artefatos protegidos.
- Nao publicar
.env, tokens e credenciais. - Publicar apenas codigo proprio, scripts e resultados analiticos.
cd "/home/ecode/Documents/projetos/projeto-rag/sources/rag_memory/02 - RAG with memory"
source .venv/bin/activate
python scripts/plot_benchmark_overview.py
python scripts/plot_quality_radar.py
python scripts/plot_frameworks_status.py
# graficos da rodada 10 (GraphRAG) — le os JSON de analises/
rodada-10-graphrag/.venv/bin/python scripts/plot_graphrag_rodada_10.py
# graficos do ESTUDO completo (rodadas 4-10, comparativo de metodos)
rodada-10-graphrag/.venv/bin/python scripts/plot_estudo_evolucao.py- rodada de validacao com frameworks externos (LightRAG, EasyRAG, RAG-Anything)
- desenho de orquestracao adaptativa de producao
- consolidacao final do artigo tecnico
- LightRAG (piloto): concluido (rodada 7); repetido em modo grafo com GPU (rodada 10)
- EasyRAG (piloto): rodada 8 de viabilidade concluida (na epoca bloqueado; GPU agora disponivel — reavaliavel)
- RAG-Anything (fase avancada): validar ganho multimodal/grafo
- Decisao de adocao: so promover se melhorar ao menos 2 eixos sem degradar os demais
- Estender o GraphRAG para os 14 livros (hoje so o livro RAG).
- Reavaliar EasyRAG/RAG-Anything com a GPU (o bloqueio era hardware).
- Investigar modelo local de extracao melhor (o qwen3:14b nao segue o schema do LightRAG).
- LightRAG: piloto funcional executado com benchmark controlado.
- EasyRAG: piloto funcional bloqueado por requisitos de ambiente (GPU/dependencias/provider padrao GLM).
- RAG-Anything: rodada 9 de viabilidade concluida com status
pilot_partial(faltam MinerU/LibreOffice/GPU no ambiente atual). - Proximo externo recomendado: repetir piloto funcional do RAG-Anything em ambiente dedicado multimodal.
Se este projeto te ajudou, abra uma issue com sugestoes de experimento ou benchmark adicional.








