diff --git a/README.md b/README.md index db48395..af50295 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,52 @@ -# task-6a1d75c5fd30e81cf3126ae7 +# FAQ‑Bot – ChromaDB + MCP Tool -Повторный экзамен: FAQ-бот — ChromaDB + один MCP-tool \ No newline at end of file +## Overview +This project implements an FAQ‑bot that answers questions about local course notes stored in Markdown files using **ChromaDB** for retrieval and a single **MCP‑style tool** for metadata queries. + +- **Local knowledge** – 2–3 `.md` files in `data/`. +- **Vector store** – ChromaDB with Ollama embeddings. +- **Tool** – `fetch_course_meta` that performs a GET request to a local JSON file (mock MCP server). +- **Agent** – LangGraph agent that routes the query to the appropriate source and labels the answer with `source: chroma | mcp_meta`. +- **CLI** – 3 example questions (2 for Chroma, 1 for meta) and an interactive mode. + +## Setup +```bash +# Pull Ollama model +ollama pull nomic-embed-text + +# Install dependencies +pip install -r requirements.txt + +# Start local mock MCP server (JSON file) +python -m http.server 8000 --directory mock +``` + +## Running the Bot +```bash +python main.py --question "What is the course schedule?" +``` + +## Example Questions +1. **Chroma** – *"What topics are covered in week 3?"* +2. **Chroma** – *"How many hours per week are required?"* +3. **Meta** – *"What is the course schedule?"* + +## Project Structure +``` +├── data/ # Markdown FAQ files +├── mock/ # JSON mock MCP server +├── src/ +│ ├── agent.py # LangGraph agent definition +│ ├── chunker.py # Chroma loader +│ ├── cli.py # CLI interface +│ ├── config.py # Config & constants +│ ├── init_loader.py # Bulk loader +│ ├── qdrant_store.py # Vector store helper +│ ├── rag_tools.py # Search & meta tools +│ ├── tools.py # MCP wrapper +│ └── vector_store.py # Chroma store +└── requirements.txt +``` + +## License +MIT \ No newline at end of file