Demo Walkthrough
Walks through querying a pre-populated Qdrant RAG system for a Boeing 737 manual, including health checks, example queries, and evaluation commands.
What this file does
Walks through querying a pre-populated Qdrant RAG system for a Boeing 737 manual, including health checks, example queries, and evaluation commands.
When to use it
- You have a RAG demo with pre-ingested data and want to show query examples
- You need to verify a Qdrant-backed API is healthy and models are loaded
- You want to run RAGAS or custom evaluation on a retrieval pipeline
- You are onboarding someone to test a RAG system without re-ingesting data
Assumes this stack
Demo Walkthrough
Quick Start (< 2 minutes)
Qdrant is pre-populated with 635 chunks from the 146-page Boeing 737 Operations Manual. Skip straight to querying.
1. Start services
cp .env.example .env
# Edit .env: add OPENROUTER_API_KEY, QDRANT_URL, QDRANT_API_KEY
docker compose up -d
2. Verify health
curl http://localhost:8000/health
Expected (after ~60-90s for model loading):
{
"status": "healthy",
"qdrant_connected": true,
"collection_stats": {"points_count": 635, "status": "green"},
"models_loaded": {"text_embedder": true, "vision_embedder": true, "llm_client": true}
}
3. Ask a question
curl -X POST http://localhost:8000/query \
-H "Content-Type: application/json" \
-d '{"question": "What is the after start procedure for the isolation valve?"}'
Example Queries
Procedural question (text retrieval)
curl -s -X POST http://localhost:8000/query \
-H "Content-Type: application/json" \
-d '{"question": "We are doing a Flaps 15 takeoff. What is the first flap selection during retraction, and at what speed?"}'
For a Flaps 15 takeoff, the first flap selection during retraction is to Flaps 5, which is made at V2 + 15 knots [NP.20.33 — Takeoff Flap Retraction Speed Schedule].
Table lookup (structured data extraction)
curl -s -X POST http://localhost:8000/query \
-H "Content-Type: application/json" \
-d '{"question": "We are planning a Flaps 40 landing on a wet runway at a 1,000-foot pressure altitude airport. If the wind-corrected field length is 1,600 meters, what is our field limit weight?"}'
At 1,000 feet pressure altitude, 1,600 meters wind-corrected field length, and a wet runway, the landing field limit weight is 47.5 (1000 KG) [PD.12.1 — Landing].
Diagram question (vision retrieval)
curl -s -X POST http://localhost:8000/query \
-H "Content-Type: application/json" \
-d '{"question": "For a standard visual pattern, what three actions must be completed prior to turning base?"}'
Prior to turning base in a standard visual pattern, the following three actions must be completed: Gear Down, Flaps 15, and the Landing checklist. [NP.30.6 — Visual Traffic Pattern]
Systems knowledge (text + vision)
curl -s -X POST http://localhost:8000/query \
-H "Content-Type: application/json" \
-d '{"question": "I see an amber STAIRS OPER light illuminated on the forward attendant panel; what does that light indicate?"}'
The amber "STAIRS OPER" light illuminated on the forward attendant panel indicates that the airstair is in transit [1.30.19 — Controls and Indicators].
Cross-section question (multi-page retrieval)
curl -s -X POST http://localhost:8000/query \
-H "Content-Type: application/json" \
-d '{"question": "During the Descent and Approach procedure, what action is taken with the AUTO BRAKE select switch, and what is the Pilot Flying final action regarding the autobrake system during the Landing Roll procedure?"}'
During the Descent and Approach procedure, the AUTO BRAKE select switch is set to the desired brake setting [NP.20.35 — Amplified Procedures]. The Pilot Flying's final action regarding the autobrake system during the Landing Roll procedure is to disarm the autobrake prior to taxi speed [NP.20.39 — Landing Roll Procedure].
API Reference
POST /query
{
"question": "string",
"top_k": 10,
"text_weight": 0.5,
"vision_weight": 0.5
}
Returns: answer, citations (page_id + section_title), source chunks with scores, model used, token usage.
GET /health
Returns: Qdrant connection status, collection stats, loaded models, device info.
Running Evaluation
# Full eval (RAGAS + custom metrics)
python -m eval.run_evaluation
# Custom metrics only (no LLM cost, ~14s)
python -m eval.run_evaluation --custom-only
Results saved to eval/results/. See eval/results/latest_evaluation.json for the most recent run.
Ingestion (Not Required for Demo)
Qdrant ships pre-populated. To re-ingest from scratch:
EMBEDDING_DEVICE=auto python -m src.ingestion.ingest_orchestrator \
--pdf "data/raw/Boeing B737 Manual.pdf"
Takes ~10 min (CUDA) or ~45 min (CPU). The pipeline supports --resume for checkpoint recovery if interrupted.
What's inside
5 sections: Quick Start, 6 example queries, API reference, evaluation commands, ingestion notes. 6 curl examples.
Change this for your project
- Replace
Boeing B737 Manual.pdfwith your own PDF path - Replace
OPENROUTER_API_KEY,QDRANT_URL,QDRANT_API_KEYwith your own credentials - Replace
KDomi96/aviation_manuals_ragwith your own repository name if referencing
Where it goes
Keep alongside your test suite. Used to define and score model evaluations.
Worth borrowing
- Pre-populating Qdrant so demo users skip ingestion entirely
- Providing both text and vision retrieval examples to showcase multimodal capability
- Offering a
--custom-onlyflag to run evaluation without LLM costs
Related Documents
AI Tools for Developers
Curates a personal reference of AI coding tools, models, and setup instructions for VS Code, Xcode, and Cursor.
Evaluating AI Agent Systems: Metrics, Benchmarks, and Quality Assurance (2024-2026)
Surveys 2024-2026 metrics, benchmarks, and monitoring tools for evaluating AI agent systems, with recommendations for a self-improving coding agent.
IATA BCBP Standard Compliance
Documents which IATA BCBP fields and barcode formats a Swift library implements, including Version 8 gender code support.
Voice AI Leaderboards, Benchmarks, and Evaluation Gaps (Jan 2025 -- Feb 2026)
Surveys 20+ voice AI benchmarks from Jan 2025, Feb 2026, identifies evaluation gaps, and provides leaderboard data for STT, TTS, and end-to-end voice agents.