How starsuzi/adaptive-rag works
Adaptive-RAG answers questions by estimating their complexity and choosing among no-retrieval, single-step retrieval, and iterative multi-step QA. Its runtime combines configurable question decomposition, participant-based execution, retrieval, and LLM answer generation; the repository also includes classifier training-data preparation and evaluation utilities. The README documents the strategy selection and retriever/LLM services, while several runtime modules are represented only by the source index, so links without direct evidence are omitted or marked unverified.
Main entry points: configurable_inference.py Inference configuration · llm_qa_model.py LLM QA model · run_classifier.py Complexity classifier · ircot.py QA strategies
Components 20
Complexity adaptation
- Complexity classifier
classifier/run_classifier.py - Classifier preprocessing
classifier/preprocess/preprocess_utils.py - QA strategies
commaqa/inference/ircot.py
Question inference
- Inference configuration
commaqa/inference/configurable_inference.py - Decomposition search
commaqa/inference/model_search.py - Question state
commaqa/inference/data_instances.py - QA participant
commaqa/inference/participant_qa.py - Execution participant
commaqa/inference/participant_execution.py - Operation executor
commaqa/execution/operation_executer.py - LLM QA model
commaqa/execution/llm_qa_model.py
Retrieval and generation
- Retriever service
retriever_server/serve.py - Elasticsearch retrieval
retriever_server/elasticsearch_retriever.py - Elasticsearch index
- LLM server
llm_server/serve.py - LLM client
commaqa/models/llm_client_generator.py - GPT generator
commaqa/models/gpt3generator.py
Data and evaluation
- Dataset builder
commaqa/dataset/build_dataset.py - Dataset readers
commaqa/inference/dataset_readers.py - QA evaluation
evaluate.py
Other components
- Question asker
Connections 16
- Question asker → Complexity classifier: submits question
README.md - Classifier preprocessing → Complexity classifier: prepares labels
- Complexity classifier → QA strategies: selects strategy
README.md - QA strategies → Inference configuration: runs QA
- Inference configuration → Decomposition search: creates search
commaqa/inference/configurable_inference.py - Decomposition search → Question state: tracks state
commaqa/inference/model_search.py - Execution participant → Operation executor: invokes operations
commaqa/inference/participant_execution.py - QA participant → LLM QA model: requests answers
- LLM QA model → GPT generator: generates text
commaqa/execution/llm_qa_model.py - LLM QA model → LLM client: generates text
commaqa/execution/llm_qa_model.py - LLM client → LLM server: requests generation
commaqa/models/llm_client_generator.py - Retriever service → Elasticsearch retrieval: dispatches retrieval
- Elasticsearch retrieval → Elasticsearch index: searches index
retriever_server/elasticsearch_retriever.py - Dataset builder → Dataset readers: produces QA data
- Inference configuration → Dataset readers: loads examples
commaqa/inference/configurable_inference.py - Inference configuration → QA evaluation: evaluates answers