add README.md
This commit is contained in:
@@ -1,2 +1,49 @@
|
|||||||
# task-6a1d75c5fd30e81cf3126ae7
|
# FAQ‑бот (ChromaDB + MCP‑tool)
|
||||||
|
|
||||||
|
## Что делает проект
|
||||||
|
|
||||||
|
* Загружает локальные `.md` файлы с материалами курса в **Chroma**.
|
||||||
|
* Создаёт инструмент `search_course_docs(query, k=3)` для поиска по этим материалам.
|
||||||
|
* Реализует один MCP‑подобный HTTP‑инструмент `fetch_course_meta(query)` – возвращает метаданные расписания из статического JSON.
|
||||||
|
* Агент на базе **LangChain** маршрутизирует запросы: если вопрос относится к содержимому курса, он использует Chroma; если к расписанию/метаданным – MCP‑tool.
|
||||||
|
|
||||||
|
## Структура репозитория
|
||||||
|
```
|
||||||
|
├── data/ # исходные .md файлы
|
||||||
|
│ ├── faq1.md
|
||||||
|
│ └── faq2.md
|
||||||
|
├── meta.json # статический JSON с расписанием
|
||||||
|
├── main.py # точка входа, CLI и агент
|
||||||
|
├── requirements.txt # зависимости
|
||||||
|
└── README.md
|
||||||
|
```
|
||||||
|
|
||||||
|
## Установка
|
||||||
|
```bash
|
||||||
|
# 1. Откатить Ollama embedding model
|
||||||
|
ollama pull nomic-embed-text
|
||||||
|
|
||||||
|
# 2. Установить зависимости
|
||||||
|
pip install -r requirements.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
## Запуск
|
||||||
|
```bash
|
||||||
|
python main.py
|
||||||
|
```
|
||||||
|
Вы увидите три готовых вопроса и сможете задать свой.
|
||||||
|
|
||||||
|
## Как работает агент
|
||||||
|
1. **Chroma** хранит векторные представления всех блоков текста из `data/*.md`.
|
||||||
|
2. При запросе агент сначала пытается понять, относится ли он к материалам курса (проверка ключевых слов «материал», «конспект» и т.п.).
|
||||||
|
3. Если да – вызывает `search_course_docs`, получает 3 наиболее релевантных фрагмента и формирует ответ.
|
||||||
|
4. Иначе – вызывает MCP‑tool `fetch_course_meta` и возвращает данные о расписании.
|
||||||
|
|
||||||
|
## Тестовые вопросы
|
||||||
|
1. *Какой материал по теме «LangChain» доступен в конспектах?*
|
||||||
|
2. *Кто преподавал лекцию 12 июня?*
|
||||||
|
3. *Что нужно сделать, чтобы подключить Ollama embeddings?*
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Важно:** проект не использует Tavily и не дублирует задание «Chroma + Tavily web search».
|
||||||
|
|||||||
Reference in New Issue
Block a user