How youcef9997/documind works
DocuMind is a single-user document intelligence app: users upload a folder, index supported files, then ask questions and inspect retrieved passages alongside answers. Indexing orchestrates extraction, overlapping chunk creation, embedding and persistent storage; question answering retrieves passages before requesting hosted generation. The Streamlit interface owns both workflows and displays the result. The graph follows the sampled calls and README-documented capabilities; unsampled behavior is not inferred beyond those documented links.
Main entry points: ui.py Streamlit interface · vector_store.py Vector store · indexing.py Indexing orchestrator · rag.py RAG orchestration
Components 10
User interface
- Streamlit interface
app/ui.py
Document indexing
- Indexing orchestrator
app/indexing.py - Document extraction
app/ingestion.py - Overlapping chunking
app/chunking.py
Semantic retrieval
- Local embeddings
app/embeddings.py - Vector store
app/vector_store.py - Persistent ChromaDB index
app/vector_store.py
Question answering
- RAG orchestration
app/rag.py - GroqCloud model
Other components
- User
Connections 12
- User → Streamlit interface: uploads and asks
README.md - Streamlit interface → Indexing orchestrator: indexes files
app/ui.py - Indexing orchestrator → Document extraction: extracts text
app/indexing.py - Indexing orchestrator → Overlapping chunking: creates chunks
app/indexing.py - Indexing orchestrator → Vector store: stores chunks
app/indexing.py - Vector store → Local embeddings: encodes text
app/vector_store.py - Vector store → Persistent ChromaDB index: reads and writes
app/vector_store.py - Streamlit interface → Vector store: counts chunks
app/ui.py - Streamlit interface → RAG orchestration: asks question
app/ui.py - RAG orchestration → Vector store: searches passages
app/rag.py - RAG orchestration → GroqCloud model: requests generation
app/rag.py - RAG orchestration → Streamlit interface: returns answer and sources
app/ui.py