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