How ys-pundir/sindhu-rag works
Sindhu-RAG is a historical-question-answering RAG application. Users ask through the Streamlit chat; it retrieves report chunks from Chroma, builds a prompt with conversation context, and requests a grounded answer from Groq. The README also describes a PDF-to-chunks-and-vector-store knowledge workflow and prompt/config experimentation. The ingestion path is documented and represented in notebooks, but its runtime wiring was not sampled; the graph omits uncertain implementation details. The sampled pipeline supports the retrieval, prompt, persistence, and generation links shown.
Main entry points: streamlit_app.py Streamlit chat · rag_pipelines.py Context prompting · ingest_chunking.ipynb Chunking workflow · sindhu_report_chunks.json Processed chunks
Components 15
User interaction
- Streamlit chat
src/streamlit_app.py
RAG runtime
- RAG pipeline
src/rag_pipelines.py - Chunk retrieval
src/rag_pipelines.py - Context prompting
src/rag_pipelines.py - Answer generation
src/rag_pipelines.py
Knowledge preparation
- Historical report
Data/raw/report.pdf - Chunking workflow
Notebooks/ingest_chunking.ipynb - Processed chunks
Data/processed/sindhu_report_chunks.json - Embedding workflow
Notebooks/vector_storage.ipynb
Configuration and state
- Chroma vector store
Storage/sindhu_db - Pipeline config
config/v2_config.json - Versioned prompts
prompts/hind_agent - Conversation history
Storage/conversation/conversation_history.json
Other components
- Questioner
- Groq chat API
Connections 14
- Questioner → Streamlit chat: asks
- Streamlit chat → Chunk retrieval: requests chunks
- Streamlit chat → Context prompting: builds message
- Streamlit chat → Answer generation: requests answer
- Chunk retrieval → Chroma vector store: searches
- Context prompting → Conversation history: reads history
- Context prompting → Pipeline config: uses settings
- Pipeline config → Versioned prompts: selects prompt
- Answer generation → Groq chat API: sends messages
- Groq chat API → Answer generation: returns answer
- Historical report → Chunking workflow: chunks report
- Chunking workflow → Processed chunks: produces chunks
- Processed chunks → Embedding workflow: embeds chunks
- Embedding workflow → Chroma vector store: stores vectors