How tejsaxena-0811/haven works
Haven is a local command-line document assistant. Users ask questions; the main loop routes supported CSV-analysis questions to Pandas, or sends other questions through retrieval and a prompted local LLM. Documents are loaded by file type, embedded, and indexed in ChromaDB. The README describes PDF, CSV, and DOCX support and local Ollama models; the sampled source confirms these paths, though the repository does not show a separate UI or upload flow.
Main entry points: main.py CLI loop · vector.py Index construction · loader.py File-type loader · data CSV data
Components 15
Question handling
- CLI loop
main.py - Question routing
main.py - CSV analysis
main.py - CSV data
data
Document ingestion
- Data files
data - File-type loader
loader.py - Loaded documents
loader.py
Local retrieval
- Embedding model
vector.py - Index construction
vector.py - ChromaDB store
vector.py - Top-5 retriever
vector.py
Answer generation
- Local Ollama
- RAG prompt chain
main.py - Llama 3.2
main.py
Other components
- User
Connections 16
- User → CLI loop: asks questions
- CLI loop → Question routing: routes questions
- Question routing → CSV analysis: selects CSV analysis
- CLI loop → CSV data: reads CSV
- CSV analysis → CSV data: analyzes data
- CLI loop → Top-5 retriever: invokes retrieval
- CLI loop → RAG prompt chain: invokes chain
- RAG prompt chain → Llama 3.2: prompts model
- Llama 3.2 → Local Ollama: runs through
- Data files → File-type loader: provides input
- File-type loader → Loaded documents: loads documents
- Index construction → File-type loader: loads documents
- Index construction → Embedding model: embeds documents
- Embedding model → Local Ollama: runs through
- Index construction → ChromaDB store: stores documents
- Top-5 retriever → ChromaDB store: searches index