How jay2323-tech/rag-bot works
Document Knowledge Base is a Flask RAG chatbot. Users upload supported documents, which are saved, parsed, chunked, locally embedded, and persisted in ChromaDB. Users then ask questions through the web UI; the API handles greetings and inventory queries, retrieves relevant chunks, builds citations, and asks the configured Groq model for a grounded answer. The README names Gemini, but the sampled runtime configuration and app initialize Groq. Unsampled route details are represented only where documented.
Components 14
Web Interface
- Chat UI
templates/index.html - Browser Client
static/script.js
Flask API
- Flask API
app.py
Ingestion Pipeline
- Document Loader
document_loader.py - Indexing Service
rag_store.py - CLI Ingest
ingest.py
RAG Processing
- Local Embeddings
rag_store.py - Retriever
rag_store.py - Inventory Queries
rag_store.py - Citation Builder
app.py
Persistent Storage
- Source Documents
data - Chroma Index
.chroma_db
Other components
- User
- Groq Answer Model
Connections 19
- User → Chat UI: uses
- Chat UI → Browser Client: loads
- Browser Client → Flask API: calls API
- Flask API → Source Documents: saves uploads
- Flask API → Document Loader: validates files
- Flask API → Indexing Service: indexes uploads
- CLI Ingest → Document Loader: discovers files
- CLI Ingest → Indexing Service: rebuilds index
- Source Documents → Document Loader: reads files
- Document Loader → Indexing Service: loads chunks
- Indexing Service → Local Embeddings: embeds chunks
- Indexing Service → Chroma Index: writes vectors
- Flask API → Retriever: retrieves context
- Retriever → Chroma Index: searches vectors
- Flask API → Inventory Queries: answers metadata
- Inventory Queries → Source Documents: reads files
- Flask API → Citation Builder: builds citations
- Flask API → Groq Answer Model: generates answer
- Flask API → Browser Client: returns response