Репозиторий курса по диалоговым системам. Материалы и лабораторные работы по разработке современных диалоговых агентов.
Цель курса — дать практические навыки разработки диалоговых систем, охватывая полный цикл: от работы с API языковых моделей до интеграции в Telegram-бота. В ходе курса вы научитесь:
- Работать с API языковых моделей (Mistral AI) и настраивать параметры генерации
- Генерировать эмбеддинги и анализировать семантическую близость текстов
- Извлекать и обрабатывать данные с веб-сайтов
- Создавать пайплайны обработки документов и хранить данные в векторных БД
- Использовать LangChain для создания агентов с инструментами
- Добавлять механизмы памяти и управления состоянием (LangGraph)
- Интегрировать все компоненты в Telegram-бота
Ознакомьтесь с доступными предметными областями в каталоге domain_selection/ и выберите направление для лабораторных работ.
| # | Тема | Технологии |
|---|---|---|
| 1 | API языковых моделей | Mistral API, параметры генерации |
| 2 | Эмбеддинги | mistral-embed, cosine similarity, plotly |
| 3 | Парсинг HTML → PDF | BeautifulSoup, Playwright |
| 4 | PDF пайплайн и векторный поиск | docling, LanceDB, tiktoken |
| 5 | LangChain и AI-агенты | LangChain, Tools, Tavily Search |
| 6 | Память и состояние | LangGraph, MessagesState, checkpointing |
| 7 | Поисковый агент по документам | LangGraph, LanceDB, RAG |
| 8 | Telegram-бот | aiogram 3.x, uvloop, orjson |
- Python 3.12 или выше
- uv — менеджер пакетов (установка)
- API ключи (в файле
.envв корне проекта):MISTRAL_API_KEY— получить на console.mistral.ai (раздел API Keys)TAVILY_API_KEY— получить на app.tavily.com (нужен для lab5)BOT_TOKEN— получить у @BotFather в Telegram (нужен для lab8)
Пример файла .env:
MISTRAL_API_KEY=your_mistral_api_key
TAVILY_API_KEY=your_tavily_api_key
BOT_TOKEN=your_telegram_bot_tokengit clone https://github.com/ChS23/dialogue-systems-course.git
cd dialogue-systems-course
# Установка зависимостей
uv sync
# Установка браузера для lab3
uv run playwright install chromium
# Запуск любой лабораторной
uv run python lab1_api/lab1_api.pydialogue-systems-course/
├── pyproject.toml # Все зависимости проекта
├── uv.lock # Зафиксированные версии
├── .env # API ключи (не в git)
├── lab1_api/ # Работа с Mistral API
├── lab2_embedding/ # Эмбеддинги и сходство
├── lab3_html_to_pdf/ # Парсинг веб-страниц
├── lab4_pdf_pipeline/ # PDF → чанки → LanceDB
├── lab5_web_search/ # LangChain, агенты, веб-поиск
├── lab6_memory_history/ # Память и управление состоянием
├── lab7_document_search/ # RAG-агент по документам
├── lab8_tg_bot/ # Telegram-бот (курсовая)
├── langfuse/ # Инструкция по трассировке Langfuse
├── domain_selection/ # Выбор предметной области
└── compose/ # Docker Compose (Ollama)
Langfuse — open-source платформа для наблюдаемости LLM-приложений: отслеживание вызовов моделей, задержек, стоимости и качества ответов.
Подробная инструкция по настройке и примеры интеграции с LangChain/LangGraph — в langfuse/README.md.