Case study · RAG + systems
Local document search, end to end.
Greenlight turns local documents into searchable embeddings and exposes retrieval through a Rich CLI, FastAPI service, and Vue interface.
Problem
Search private working documents without sending them to a hosted index.
Greenlight is designed for developers and researchers who want a local-first retrieval stack they can inspect, test, and run through more than one interface.
Pipeline
One ingestion path, three ways to use it.
Implementation
Qwen embeddings with Qdrant retrieval.
- Ingests PDF, DOCX, TXT, and Markdown files.
- Chunks extracted text before embedding with a Qwen 3 SentenceTransformer model.
- Stores and retrieves vectors through Qdrant.
- Exposes workflows through a Rich-powered CLI, FastAPI endpoints, and Vue 3 UI.
- Ships with tests, documentation, automated setup, and Docker Compose orchestration.
Engineering decisions
Keep the retrieval core interface-agnostic.
The CLI, API, and browser interface sit on the same core pipeline. That makes it easier to test ingestion and retrieval without coupling correctness to one presentation layer.
Latency methodology
A “sub-100 ms” number needs a boundary.
Development runs have shown sub-100 ms semantic-search performance, but a responsible public benchmark must state corpus size, chunk count, embedding/index configuration, hardware, warm-up behavior, measurement boundary, and number of runs. Until that table is published, the number is treated as an engineering target rather than a universal claim.
Demonstration
Repository available; UI walkthrough next.
A short demonstration will show document ingestion, index status, search results, and the timing boundary used for a reproducible benchmark.
Limitations + next steps
Retrieval quality needs an explicit evaluation set.
Latency alone does not establish usefulness. Next steps include a labeled query set, retrieval metrics, corpus-scale experiments, chunking comparisons, and a documented hardware/runtime environment.
Lesson
Operational completeness makes a prototype credible.
Tests, setup, documentation, containers, and multiple interfaces turn an embedding experiment into a system someone else can actually evaluate.