How root-minus-one/gov_support_rag_chatbot works
Gov_Support_RAG_Chatbot is a FastAPI chatbot for answering questions about government schemes and policies using retrieved document content. Its principal workflow validates a chat question, loads session history, retrieves and reranks relevant chunks, generates an answer, saves the exchange, and returns citations. A separate ingestion workflow extracts PDF text, tables, and images; embedding makes searchable content available to retrieval. The README also describes multilingual, voice, profile-personalization, status-tracking, and analytics goals, but the sampled runtime does not establish those capabilities. Some links are omitted where implementation was not sampled.
Main entry points: routes.py API routes · main.py FastAPI application · retrieval.py Chunk retrieval · embeddings.py Embedding pipeline
Components 15
API and sessions
- FastAPI application
main.py - API routes
app/api/routes.py - Conversation memory
app/rag/memory.py
RAG workflow
- Input and relevance checks
app/rag/gaurdrails.py - Chunk retrieval
app/rag/retrieval.py - BM25 search
app/rag/hybrid_search.py - Embedding pipeline
app/rag/embeddings.py - Result reranking
app/rag/reranker.py - Answer generation
app/rag/generation.py
Document processing
- PDF ingestion
app/rag/ingest.py
Data services
- PostgreSQL
app/db/postgres.py - MongoDB
app/db/mongo.py - Pinecone index
Other components
- Entrepreneur
- PDF documents
Connections 22
- Entrepreneur → FastAPI application: sends requests
- FastAPI application → API routes: dispatches
- FastAPI application → PostgreSQL: initializes pool
- FastAPI application → MongoDB: initializes client
- FastAPI application → BM25 search: builds index
- API routes → Input and relevance checks: validates question
- API routes → Conversation memory: loads and saves
- API routes → Chunk retrieval: requests chunks
- API routes → Answer generation: generates answer
- API routes → PDF ingestion: schedules ingestion
- API routes → Embedding pipeline: schedules embedding
- API routes → PostgreSQL: reads ingestion log
- PDF ingestion → PDF documents: converts
- PDF ingestion → PostgreSQL: writes documents, chunks, logs
- PDF ingestion → MongoDB: writes images and tables
- Embedding pipeline → PostgreSQL: reads chunks
- Embedding pipeline → MongoDB: reads tables
- Embedding pipeline → Pinecone index: upserts vectors
- Chunk retrieval → Embedding pipeline: embeds query
- Chunk retrieval → Pinecone index: queries vectors
- Chunk retrieval → BM25 search: searches BM25
- Chunk retrieval → Result reranking: reranks fused results