46 lines
1.4 KiB
Markdown
46 lines
1.4 KiB
Markdown
# FAQ Bot – ChromaDB + MCP‑style Tool
|
||
|
||
This repository implements a small FAQ bot that answers questions about a course. The bot uses:
|
||
|
||
* **ChromaDB** (via `langchain_chroma`) for local semantic search over markdown notes.
|
||
* **Ollama** embeddings (`nomic-embed-text`) and a local LLM (`llama3`).
|
||
* A **single MCP‑style tool** that mimics a metadata service.
|
||
* A **LangChain agent** that routes queries to the correct tool and tags the answer with a source.
|
||
|
||
The bot is launched from the command line and offers three preset questions (two for the FAQ store, one for metadata) as well as an interactive mode.
|
||
|
||
## Setup
|
||
|
||
```bash
|
||
# Pull the required Ollama model
|
||
ollama pull nomic-embed-text
|
||
ollama pull llama3
|
||
|
||
# Install dependencies
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
## Running the bot
|
||
|
||
```bash
|
||
python main.py
|
||
```
|
||
|
||
You will see three preset questions. Type the number or a custom question and press **Enter**. Type `/quit` to exit.
|
||
|
||
## Project structure
|
||
|
||
```
|
||
├── data/ # Markdown FAQ files and static metadata JSON
|
||
├── config.py # Configuration constants
|
||
├── chunker.py # Text chunking helper
|
||
├── vector_store.py # Chroma store and search tool
|
||
├── tools.py # LangChain tools (search + MCP‑style)
|
||
├── main.py # Entry point & CLI
|
||
├── requirements.txt
|
||
└── README.md
|
||
```
|
||
|
||
## License
|
||
|
||
MIT |