Files
task-6a1d75c5fd30e81cf3126ae7/README.md
T
2026-06-04 15:59:19 +00:00

2.6 KiB
Raw Blame History

FAQ‑бот (ChromaDB + MCPtool)

Что делает проект

  • Загружает локальные .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

Установка

# 1. Откатить Ollama embedding model
ollama pull nomic-embed-text

# 2. Установить зависимости
pip install -r requirements.txt

Запуск

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».