How saravanan2005real/aeris-improving-rag-reliability-via-adaptive-evidence-acquisition works
AERIS is a document-grounded RAG system. A user question is decomposed into information requirements; the controller acquires and scores evidence adaptively, builds and verifies a claim–evidence graph, then generates a grounded answer. Documents are separately ingested and indexed for retrieval. The README documents contradiction handling, cross-lingual analysis, calibration, and budgeted selective verification; controller excerpts confirm those stages are orchestrated, but implementation details and some internal wiring were not sampled.
Main entry points: controller/controller.py AERIS Controller · adaptive_retrieval/controller.py Adaptive Retrieval · hybrid_retriever.py Hybrid Retriever · index_builder.py Index Builder
Components 26
Document Indexing
- PDF Loader
app/ingestion/pdf_loader.py - Semantic Chunker
app/chunking/semantic_chunker.py - Index Builder
app/indexing/index_builder.py - Embedding Service
app/indexing/embedding_service.py - Vector Store
app/indexing/vector_store.py
Evidence Acquisition
- Adaptive Retrieval
app/adaptive_retrieval/controller.py - Query Reformulator
app/adaptive_retrieval/query_reformulator.py - Retrieval Memory
app/retrieval_memory/memory.py - Hybrid Retriever
app/retrieval/hybrid_retriever.py - Dense Retriever
app/retrieval/dense_retriever.py - BM25 Retriever
app/retrieval/bm25_retriever.py - Reranker
app/retrieval/reranker.py - Coverage Estimator
app/coverage/evidence_coverage.py
Claim Reasoning
- Claim Extraction
app/claim_extraction/extractor.py - Claim–Evidence Graph
app/claim_graph/graph.py - Claim Verifier
app/verification/claim_verifier.py - Contradiction Analysis
app/verification/contradiction_graph.py - Cross-Lingual Analysis
app/verification/cross_lingual_graph.py - Confidence Calibration
app/calibration/calibrator.py - Selective Verification
app/verification/selective_verification.py
Answer Orchestration
- AERIS Controller
app/controller/controller.py - Requirement Planner
app/planning/requirement_planner.py - Answer Generator
app/answer_generation/answer_generator.py
Model Services
- Ollama Model Service
Other components
- Questioner
- PDF Document
Connections 35
- PDF Document → PDF Loader: loads
- PDF Loader → Semantic Chunker: extracts text
- Semantic Chunker → Index Builder: provides chunks
- Index Builder → Embedding Service: requests vectors
- Index Builder → Vector Store: writes index
- Embedding Service → Ollama Model Service: embeds via
- Questioner → AERIS Controller: asks
- AERIS Controller → Requirement Planner: plans requirements
- Requirement Planner → Ollama Model Service: prompts
- AERIS Controller → Adaptive Retrieval: acquires evidence
- Adaptive Retrieval → Hybrid Retriever: retrieves candidates
- Adaptive Retrieval → Coverage Estimator: scores coverage
- Adaptive Retrieval → Query Reformulator: reformulates queries
- Adaptive Retrieval → Retrieval Memory: checks retrieval history
- Hybrid Retriever → Dense Retriever: queries
- Hybrid Retriever → BM25 Retriever: queries
- Hybrid Retriever → Reranker: ranks results
- Dense Retriever → Embedding Service: embeds query
- Dense Retriever → Vector Store: loads vectors
- BM25 Retriever → Vector Store: reads metadata
- Coverage Estimator → Ollama Model Service: evaluates evidence
- Query Reformulator → Ollama Model Service: generates queries
- AERIS Controller → Claim Extraction: extracts claims
- Claim Extraction → Ollama Model Service: extracts with
- AERIS Controller → Claim–Evidence Graph: builds graph
- AERIS Controller → Claim Verifier: verifies claims
- Claim Verifier → Claim–Evidence Graph: checks evidence links
- AERIS Controller → Contradiction Analysis: analyzes conflicts
- AERIS Controller → Cross-Lingual Analysis: analyzes language pairs
- AERIS Controller → Confidence Calibration: calibrates confidence
- AERIS Controller → Selective Verification: selects verification work
- Selective Verification → Claim–Evidence Graph: evaluates claims
- AERIS Controller → Answer Generator: generates grounded answer
- Answer Generator → Ollama Model Service: generates with
- Answer Generator → Questioner: returns answer