How rajdeepofgithub/query-router works
Query Router classifies JPMorgan Chase questions as SQL, RAG, or both, then executes the selected backend path and returns an answer; combined answers add disclosures, citations, and conflict handling. Its evaluation workflows measure routing alone and end-to-end answer quality against separate truth data, while shared instrumentation records API usage and cost. The README documents backend stages and integrations that are outside this repository; those are shown as external systems, not as inspected source modules.
Main entry points: router.py Answer entry point · execute.py Route executor · run_router_eval.py End-to-end evaluator · run_routing_eval.py Routing evaluator
Components 14
Routing
- Route classifier
src/classify.py - Answer entry point
src/router.py
Execution
- Route executor
src/execute.py - Text-to-SQL
- Financial RAG
- Answer merger
src/execute.py
Evaluation
- Routing questions
data/routing_eval.jsonl - Answer truth data
data/router_answer_truth.jsonl - Routing evaluator
src/run_routing_eval.py - End-to-end evaluator
src/run_router_eval.py - Evaluation results
baseline
Observability
- API cost tracker
src/costs.py
Other components
- Question asker
- OpenAI API
Connections 17
- Question asker → Answer entry point: asks question
README.md - Answer entry point → Route classifier: classifies
src/router.py - Answer entry point → Route executor: executes route
src/router.py - Route executor → Text-to-SQL: runs SQL
README.md - Route executor → Financial RAG: runs retrieval
README.md - Route executor → Answer merger: merges both
src/execute.py - Routing questions → Routing evaluator: supplies questions
src/run_routing_eval.py - Routing evaluator → Route classifier: classifies
src/run_routing_eval.py - Routing evaluator → Evaluation results: writes results
src/run_routing_eval.py - Routing questions → End-to-end evaluator: supplies questions
src/run_router_eval.py - Answer truth data → End-to-end evaluator: supplies grading truth
src/run_router_eval.py - End-to-end evaluator → Answer entry point: runs answer
src/run_router_eval.py - End-to-end evaluator → Route executor: grades outputs
src/run_router_eval.py - End-to-end evaluator → Evaluation results: writes results
src/run_router_eval.py - Answer entry point → API cost tracker: labels usage
src/router.py - API cost tracker → OpenAI API: wraps API calls
src/costs.py - Route classifier → OpenAI API: requests classification
src/classify.py