The problem
A fluent answer is not enough when a question depends on a particular document. The application needs to retrieve relevant passages, keep the source visible, and handle cases where there is little supporting evidence.
THE QUESTION-TO-EVIDENCE PATH
What I built
A FastAPI service connects ingestion and question answering to a persistent Chroma store. Sentence-transformer embeddings run locally. The retrieval layer normalizes similarity scores, filters weak matches, and passes supporting context to an OpenAI-compatible chat endpoint.
The answer includes source references. An extractive fallback can return document passages when generation is unavailable, so the interface can still provide useful evidence.
Make evaluation part of the project
The repository includes an evaluation harness and tests around the application. A separate PEFT/LoRA training script prepares and trains adapters for a causal language model. That training workflow is distinct from adapter deployment in the serving API.
Current scope
This is an implemented portfolio project. The small sample evaluation does not establish general answer accuracy, and production authentication and adapter-serving integration remain further work. The assistant supports document exploration; it does not replace a compliance professional’s judgment.