🔮 Teoria Futura
RAG — Arquitetura de Ingestion e RetrievalApresentação
9. Futuro e Teoria — O Que Ainda Não Está Implementado
Este documento descreve as peças teóricas e planeadas do retrieval que sustentam a visão completa do sistema.
5.1 Reranker
Problema
O Chroma devolve por similaridade cosseno. Chunks semanticamente relevantes podem ficar em posições 6–10 e serem excluídos pelo top_k.
Solução Teórica
- Retrieve com top_k=20 ou 50
- Rerank com cross-encoder (ex.: Cohere rerank-api, cross-encoder/ms-marco-MiniLM-L-6-v2)
- Tomar top 5–10 para synthesis
Impacto
- Melhora precisão (menos chunks irrelevantes no contexto)
- Aumenta latência (chamada extra)
- Custo adicional se API (Cohere)
Estado
Planeado em 11-IMPLEMENTATION-PHASES (Fase 2). Não implementado.
5.2 Hybrid Search (BM25 + Vector)
Problema
Vector search sozinho pode falhar em:
- Keywords exatas (nomes, IDs)
- Termos raros com embedding ruim
- Queries muito curtas
Solução Teórica
- BM25 sobre texto bruto (chunks) → scores lexical
- Vector sobre embeddings → scores semânticos
- Fusion: Reciprocal Rank Fusion ou weighted sum
Implementação
- BM25: Whoosh, Elasticsearch, ou rank_bm25
- Vector: Chroma (já existe)
- Índice invertido em paralelo ao vector store
Estado
Mencionado em 01-ARCHITECTURE ("O Que Falta"). Não implementado.
5.3 Bloco de Validação
Problema
Respostas podem ter:
- Citações fracas (não cobrem claims)
- Alucinação (conteúdo não sustentado no contexto)
- Conflito entre fontes (docs vs SQL)
Solução Teórica
Gate entre pipeline e resposta final:
| Verificação | Descrição |
|---|---|
| Cobertura de citações | As afirmações na resposta têm citação? |
| Qualidade do retrieval | Score médio dos chunks > limiar? |
| Groundedness | NLI/entailment: resposta implica contexto? |
| Conflito entre fontes | Docs e SQL contradizem-se? |
Comportamento em falha
- Escalar: retry com estratégia mais pesada
- Esclarecer: pedir esclarecimento
- Declínio seguro: mensagem controlada
Estado
Planeado em 01-ARCHITECTURE (Bloco 4). Não implementado.
5.4 Confidence Score Explícito
Problema
Hoje confiança é heurística (ex.: 0.85 se há chunks). Não é composta nem calibrada.
Solução Teórica
Score composto:
{
"retrieval_confidence": 0.82,
"citation_coverage": 0.75,
"groundedness": 0.9,
"answer_consistency": 0.85,
"final_confidence": 0.81
}
Decisão:
-
= 0.8 → accept
- 0.4–0.8 → retry melhorado
- < 0.4 → escalate / clarify
Estado
Roadmap v2 em 01-ARCHITECTURE. Não implementado.
5.5 Query Rewriter
Problema
Query do utilizador pode ser ambígua, incompleta ou mal formulada para retrieval.
Solução Teórica
Entre Analyzer e Router:
- Normalizar: typos, abreviações
- Expandir: "policy despesas" → "expense policy reimbursement rules NovaOps"
- Desambiguar: contexto da conversa
Estado
Roadmap v2. Não implementado.
5.6 Cost & Latency Budget no Router
Problema
Router escolhe só por complexidade e tipo. Não considera orçamento de latência ou custo.
Solução Teórica
{
"latency_budget_ms": 1500,
"cost_budget": "low"
}
- Query complexa + low latency → enriched_rag light (menos sub-queries)
- Query complexa + high budget → multi_backend
Estado
Roadmap v2. Não implementado.
5.7 Retry Inteligente (antes de escalar)
Problema
Falha → escalate imediato pode ser custoso e desnecessário.
Solução Teórica
- Query rewrite e retry
- Aumentar top_k
- Hybrid (BM25 + vector) se ainda só vector
- Só escalar para estratégia mais pesada se retry falhar
Estado
Planeado em 06-FALLBACK-STRATEGY. Lógica parcial; retry automático não implementado.
5.8 Semantic Chunking por Documento
Problema
Chunking fixo (600 chars) ignora estrutura do documento (headers, secções).
Solução Teórica
chunk_plan.jsonpor documento ou tipo- Quebrar por
##, parágrafos, lista de items - Manter overlap em zonas críticas
Estado
Dados NovaOps têm chunk_plan.json e document_manifest.json. Ingestion planeia isso. Retrieval atual não usa.
5.9 Metadata Filters no Retrieval
Problema
Query sobre "expenses" poderia filtrar docs com related_entities que incluam team_finance ou pol_expense.
Solução Teórica
document_manifest.jsoncomdocument_type,related_entities- Chroma
wherefilter na query - Reduz ruído quando muitos docs
Estado
13-DATA-GUIDE menciona. Não implementado no retriever.
5.10 Feedback Loop
Problema
Sistema não aprende com feedback do utilizador (thumbs, reformulações, cliques).
Solução Teórica
Resposta Final → Feedback do Utilizador → Armazém de Avaliação
→ Router tuning / Retrieval tuning
Permite melhoria contínua com dados reais.
Estado
Roadmap v2. Não implementado.
5.11 Matriz Resumo
| Componente | Teoria | Estado |
|---|---|---|
| Reranker | Cross-encoder pós-retrieval | ❌ |
| Hybrid search | BM25 + vector fusion | ❌ |
| Validação | Citation, groundedness, conflict | ❌ |
| Confidence score | Composto, thresholds | ❌ |
| Query rewriter | Normalize, expand, disambiguate | ❌ |
| Latency/cost budget | No router | ❌ |
| Retry inteligente | Rewrite, top_k, hybrid | Parcial |
| Semantic chunking | Por doc/type | ❌ |
| Metadata filters | document_type, related_entities | ❌ |
| Freshness filters | version, valid_to | Parcial (SQL) |
| Feedback loop | Learning | ❌ |
Zona de prática
Sem perguntas. Clica em Editar para adicionar.