← Back to selected work

A conversation with your documents

A local RAG application built with LangChain, Ollama, and Chroma: document ingestion, retrieval, source attribution, and conversational follow-ups.

Context
Personal applied AI project
My contribution
RAG integration, implementation, and retrieval debugging
Technologies
RAG · Python · LangChain · Ollama · Chroma · Streamlit

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.

DocumentsChunksEmbeddingsRetrievalAnswer + sources

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.