How salah-ud-din01/rag-docs-assistant works
RAG Docs Assistant indexes local Markdown/PDF documents, then answers questions by retrieving relevant chunks and generating responses constrained to that context, with document/section citations. The primary user flow is Streamlit → FastAPI → retrieval and answer generation; a separate ingest action loads, chunks, and indexes documents. The README also documents fully local Ollama inference and Chroma storage. Edges are based on the shown callers and README; the HTTP deployment wiring is documented, while unsampled container configuration is not modeled.
Main entry points: main.py FastAPI endpoints · rag.py Answer orchestration · ingest.py Document loading · vectorstore.py Chroma vector store
Components 15
User interface
- Streamlit chat
ui/streamlit_app.py
API orchestration
- FastAPI endpoints
app/main.py - API schemas
app/schemas.py - Application settings
app/config.py
Document indexing
- Local document corpus
data/docs - Document loading
app/ingest.py - Section chunking
app/ingest.py - Index chunks
app/vectorstore.py
Retrieval and answers
- Chroma vector store
app/vectorstore.py - Embedding model
- Semantic search
app/vectorstore.py - Answer orchestration
app/rag.py - Chat model
- Answer and citations
app/rag.py
Other components
- User
Connections 17
- User → Streamlit chat: asks or indexes
ui/streamlit_app.py - Streamlit chat → FastAPI endpoints: calls HTTP API
ui/streamlit_app.py - FastAPI endpoints → API schemas: validates responses
app/main.py - FastAPI endpoints → Document loading: loads documents
app/main.py - Local document corpus → Document loading: reads files
app/ingest.py - FastAPI endpoints → Section chunking: splits sections
app/main.py - FastAPI endpoints → Index chunks: indexes chunks
app/main.py - Index chunks → Chroma vector store: writes chunks
app/vectorstore.py - FastAPI endpoints → Answer orchestration: answers question
app/main.py - Answer orchestration → Semantic search: searches chunks
app/rag.py - Semantic search → Chroma vector store: queries vectors
app/vectorstore.py - Chroma vector store → Embedding model: embeds queries
- Answer orchestration → Chat model: generates answer
app/rag.py - Answer orchestration → Answer and citations: formats sources
app/rag.py - FastAPI endpoints → Application settings: reads configuration
app/main.py - Document loading → Application settings: uses document settings
app/ingest.py - Answer orchestration → Application settings: uses model settings
app/rag.py