// the find
tonykipkemboi/ollama_pdf_rag
A full-stack demo showcasing a local RAG (Retrieval Augmented Generation) pipeline to chat with your PDFs.
A local RAG demo for chatting with PDFs using Ollama, LangChain, and ChromaDB, aimed at developers who want to learn or prototype retrieval pipelines without hitting an external LLM API. It ships three separate front ends (Next.js, Streamlit, Jupyter) plus a FastAPI backend, which makes it as much a teaching repo as a usable tool.
Actually has a test suite and CI (pytest + GitHub Actions badge), which is rare for repos in this space that are mostly notebook screenshots. Fully local pipeline (Ollama for both chat and nomic-embed-text embeddings, ChromaDB for vectors) means no API keys or data egress, which is the whole selling point and it delivers on it. The FastAPI backend with auto-generated Swagger docs gives you a real integration point instead of forcing you into the Streamlit UI. It also has an actual docs site (mkdocs) beyond the README, covering the API and RAG pipeline internals.
Three UIs (Next.js, Streamlit, notebooks) for one pipeline is a lot of surface area for a single maintainer to keep in sync — expect drift between them over time. The Next.js app is clearly bootstrapped from Vercel's ai-chatbot template (artifacts, ai-elements, weather tool, code/sheet/image editors all present in the tree) and most of that machinery has nothing to do with PDF RAG, so you're pulling in a lot of unrelated chat-app complexity to get the 'recommended' interface. The repo's GitHub-reported primary language is TypeScript even though the core RAG logic is Python — a sign the template baggage in web-ui now outweighs the actual pipeline code. The README's troubleshooting section already documents an ONNX DLL failure on Windows and vector DB corruption requiring PDF re-upload, meaning the embedding/chunking pipeline isn't fully stable across platforms out of the box.