Project notes / 03
A conversation with your documents
A local RAG application built with LangChain, Ollama, and Chroma: document ingestion, retrieval, source attribution, and conversational follow-ups.
The question
How can a local assistant answer useful questions about a collection of study documents, and make it clear where its answers come from?
The interesting work starts when a simple vector search is no longer enough: a follow-up question may refer to an earlier topic, a specific document, or a detail that did not appear in the first retrieved passages.
What I built
The application ingests PDF documents, splits their contents into chunks, creates embeddings through Ollama, and stores them in Chroma. A Streamlit interface connects document retrieval with a conversational model.
What I explored
- Retrieval thresholds. Investigating which passages are relevant enough to include and what happens when nothing useful is found.
- Follow-up questions. Rewriting a conversational question into a standalone retrieval query.
- Source selection. Handling an explicitly requested document rather than relying on global similarity alone.
- Attribution. Preserving source filenames and page information so an answer can be checked.
What I learned
A working RAG application depends on the quality of its retrieval and context handling, as well as the language model. Making those steps visible helps explain failures and decide what to improve.
This personal project is a way to learn through implementation, inspect retrieval behavior, and improve the assistant through concrete experiments.