A Retrieval-Augmented Generation (RAG) chatbot for Astrology knowledge using LangChain, ChromaDB, E5 Embeddings, MMR Retrieval, BGE Reranker and Qwen Local LLM.
- Markdown document ingestion
- Header-based semantic chunking (#, ##, ###)
- Multilingual embeddings (E5)
- ChromaDB vector database
- MMR retrieval
- BGE reranker
- Local LLM inference using Ollama
src/ ├── ingestion/ │ └── loader.py ├── chunking/ │ └── chunker.py ├── embeddings/ │ └── embedder.py ├── vectorstore/ │ └── vector_store.py ├── retrieval/ │ ├── retriever.py │ └── reranker.py ├── llm/ │ └── llm_client.py └── prompts/ └── prompt_template.py
Markdown Files ↓ Loader ↓ Header Chunking ↓ E5 Embedding ↓ ChromaDB ↓ MMR Retrieval ↓ BGE Reranker ↓ Qwen3 ↓ Answer
pip install -r requirements.txt
python create_db.py
python main.py
- LangChain
- ChromaDB
- HuggingFace Embeddings
- BAAI BGE Reranker
- Ollama
- Qwen3