How sachhh05/adaptive_rag works
This is an experimental adaptive RAG system: queries are routed to direct answering, retrieval, or decomposition, then answers and evidence are scored and results recorded. The README describes LinUCB routing, while the sampled evaluation excerpt also imports a rule-based router and LinUCB components; the omitted evaluation code prevents confirming the exact policy dispatch and update sequence. Edges reflect documented behavior or visible source references, with uncertain wiring left out.
Main entry points: checkpoint5_full_eval.py CP5 Evaluator · reward_function.py Reward Composer · retrieve.py Retrieve Action · decompose.py Query Decomposition
Components 20
Query Routing
- Query Features
pipeline/feature_extractor.py - Rule Router
pipeline/adaptive_router.py - Context Builder
pipeline/bandit/context.py - LinUCB Policy
pipeline/bandit/linucb.py
Answer Actions
- Direct Answer
pipeline/actions/answer_directly.py - Retrieve Action
pipeline/actions/retrieve.py - Query Decomposition
pipeline/actions/decompose.py - Reranking
pipeline/actions/rerank.py - Action Utilities
pipeline/actions/common.py
Scoring and Evaluation
- CP5 Evaluator
eval/checkpoint5_full_eval.py - Reward Composer
pipeline/reward/reward_function.py - Answer Quality
pipeline/reward/answer_quality.py - Faithfulness Scorer
pipeline/reward/faithfulness.py - Retrieval Precision
pipeline/reward/retrieval_precision.py - Latency Scorer
pipeline/reward/latency.py - Evaluation Results
results/checkpoint5/checkpoint5_results.csv
Knowledge and Baselines
- ChromaDB Collection
- Groq LLM API
- Naive RAG Baseline
pipeline/naive_rag.py
Other components
- Questioner
Connections 25
- Questioner → CP5 Evaluator: submits query
README.md - CP5 Evaluator → Query Features: extracts features
eval/checkpoint5_full_eval.py - Rule Router → Query Features: extracts features
pipeline/adaptive_router.py - CP5 Evaluator → Context Builder: builds context
eval/checkpoint5_full_eval.py - CP5 Evaluator → LinUCB Policy: uses policy
eval/checkpoint5_full_eval.py - Query Features → Context Builder: normalizes features
README.md - Context Builder → LinUCB Policy: supplies context
README.md - CP5 Evaluator → Direct Answer: executes action
README.md - CP5 Evaluator → Retrieve Action: executes action
README.md - CP5 Evaluator → Query Decomposition: executes action
README.md - Query Decomposition → Retrieve Action: retrieves subquestions
pipeline/actions/decompose.py - Retrieve Action → Action Utilities: uses utilities
pipeline/actions/retrieve.py - Direct Answer → Action Utilities: uses utilities
pipeline/actions/answer_directly.py - Retrieve Action → ChromaDB Collection: queries chunks
pipeline/actions/retrieve.py - Retrieve Action → Groq LLM API: generates answer
- Query Decomposition → Groq LLM API: generates subquestions
pipeline/actions/decompose.py - Query Decomposition → Groq LLM API: synthesizes answer
pipeline/actions/decompose.py - Naive RAG Baseline → ChromaDB Collection: retrieves chunks
pipeline/naive_rag.py - Naive RAG Baseline → Groq LLM API: generates answer
pipeline/naive_rag.py - CP5 Evaluator → Reward Composer: computes reward
eval/checkpoint5_full_eval.py - Reward Composer → Answer Quality: scores answer
pipeline/reward/reward_function.py - Reward Composer → Faithfulness Scorer: scores support
pipeline/reward/reward_function.py - Reward Composer → Retrieval Precision: scores evidence
pipeline/reward/reward_function.py - Reward Composer → Latency Scorer: scores latency
pipeline/reward/reward_function.py - CP5 Evaluator → Evaluation Results: writes results
eval/checkpoint5_full_eval.py