RAG Knowledge Base
Local Retrieval-Augmented Generation chatbot · Python (FastAPI) + React 19 / TypeScript · v1.0.0
A local RAG chatbot where documents are ingested into a persistent ChromaDB vector store and users can ask natural-language questions answered exclusively from ingested content with source citations. The backend calls a local Ollama daemon for both embeddings and chat generation using llama3.2, with no cloud LLM dependency.
Generated 4 Jun 2026 · 20 files · 9 components · 5 flows
File Architecture
The full source tree as a layered graph — every file with its role, imports, exports and reverse dependencies.
System Design
Runtime topology across the five zones — client, edge, application, data and external services.
Flow Graph
The five most significant application flows, step by step — startup, auth, write, read and error recovery.
Technology
| Component | Technology | Version | Source of Detection |
|---|---|---|---|
| Web framework (API) | FastAPI | >=0.111.0 | backend/requirements.txt |
| ASGI server | uvicorn[standard] | >=0.30.1 | requirements.txt; main.py uvicorn.run |
| RAG orchestration | LangChain | >=0.2.10 | requirements.txt; ingest.py imports |
| Vector store | ChromaDB | >=0.5.0 | requirements.txt; langchain Chroma |
| LLM / embeddings runtime | Ollama (ChatOllama) | >=0.2.0 | requirements.txt; main.py get_llm |
| Chat model | llama3.2 | — | main.py OLLAMA_MODEL |
| Embedding model | nomic-embed-text | — | ingest.py EMBEDDING_MODEL |
| PDF loading | pypdf | >=4.2.0 | requirements.txt; PyPDFLoader |
| Schema / validation | pydantic | >=2.7.4 | requirements.txt; main.py BaseModel |
| UI library | React | ^19.2.6 | frontend/package.json |
| Language (frontend) | TypeScript | ~6.0.2 | package.json devDependencies |
| Build tool / dev server | Vite | ^8.0.12 | package.json; vite.config.ts |
| Styling | Tailwind CSS v4 | ^4.3.0 | @tailwindcss/vite; src/style.css |