• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Магистрант первого курса создал чат-бот «Таисия» для абитуриентов

Ярослав Мар, магистрант первого курса программы «Прикладная лингвистика: обучение иностранному языку и перевод в цифровой среде», создал чат-бота для будущих студентов. «Таисия» отвечает на вопросы абитуриентов о поступлении и помогает найти всю важную информацию о периоде приемной кампании. О разработке, тестировании и личности бота читайте в интервью с Ярославом.

Магистрант первого курса создал чат-бот «Таисия» для абитуриентов

Фото: Ярослав Мар

Ярослав Мар

магистрант первого курса программы «Прикладная лингвистика: обучение иностранному языку и перевод в цифровой среде», создатель чат-бота «Таисия»

— С чего началась ваша работа над ботом?

Идея создать бот принадлежит Ирине Витальевне Нуже, академическому руководителю программы. Боты на основе искусственного интеллекта сейчас появляются в самых разных отраслях, и я подумал, хорошо, если у нашей программы он тоже будет.

— Какую основную задачу решает бот?

Целевая аудитория — это абитуриенты, которые поступают на программу «Прикладная лингвистика: обучение иностранному языку и перевод в цифровой среде» в 2026 году. В бот заложена база данных и нормативные документы по процессу поступления, поэтому он может оперативно ответить на основные вопросы абитуриента без необходимости писать в Приемную комиссию.

— Расскажите о личности вашего бота

Таисия — вовсе не вымышленный персонаж, а самая настоящая тайская кошка, и у нее действительно голубые глаза. Тайские кошки общительны, а Таисия к тому же очень любит сидеть на спинке кресла во время наших лекций и семинаров, и отогнать ее невозможно. Когда начинается трансляция, где бы ни была Таисия — даже если в этот момент она крепко спит — она прервет время своего отдыха и взберется на спинку кресла, чтобы все слышать и видеть. Ни одной лекции с начала обучения в магистратуре Таисия не пропустила, поэтому она стала идеальным кандидатом на роль помощника.

— Как выбранный тон общения и образ связаны со спецификой программы?

Думаю, уже само имя Таисия связано с лингвистикой и переводом. Это имя древнеегипетского происхождения, было распространено в Греции и славянских странах, и, конечно, не случайно его обладательница — тайская кошка. Эта порода более дружелюбна, чем родственная ей сиамская, но фамильярностей Таисия не любит. Если задать боту вопрос, не относящийся к поступлению, Таисия с мягким мурлыканьем попросит не переводить разговор «на личности». 

«Таисия» сама по себе является примером того, чем занимается программа. Бот работает на стыке языка и технологий: понимает естественную речь, ищет информацию в документах, генерирует ответы в заданном стиле. По сути, это маленький прикладной проект из той самой цифровой среды, о которой говорится в названии программы. Мне кажется, это неплохая демонстрация для абитуриента — еще до поступления он взаимодействует с продуктом, который мог бы создать сам во время и по окончании программы.

— Расскажите, какой стек технологий вы использовали и почему выбрали именно его?

Бот написан на Python с использованием библиотеки python-telegram-bot. Для генерации ответов используется Claude API от Anthropic (модель Haiku) — это позволяет боту отвечать естественно и в образе Таисии, а не шаблонными фразами.

Ключевая часть архитектуры — система RAG (Retrieval-Augmented Generation — генерация, дополненная поиском). Бот не просто «знает» информацию — он ищет релевантные фрагменты в базе знаний и передает их языковой модели как контекст. База знаний строится из PDF-документов (учебные планы, нормативные документы) и страниц сайта программы, которые парсятся автоматически. Для векторного поиска используется ChromaDB с многоязычной моделью эмбеддингов intfloat/multilingual-e5-large — она хорошо работает с русским языком. Деплой автоматизирован через Docker и GitHub Actions.

Выбор был продиктован прежде всего практичностью: Python — стандарт для работы с NLP и ИИ, а RAG-подход позволяет боту оперировать актуальными данными, а не галлюцинировать.

— Расскажите об основных этапах разработки. С какими основными трудностями вы столкнулись и как их преодолевали?

Первый этап — это сбор и загрузка данных: нужно было собрать все релевантные страницы сайта и документы программы в единую базу знаний. Тут возникла первая трудность — парсер извлекал не всю информацию со страниц. Например, имя академического руководителя находилось в боковой панели сайта, которую парсер изначально игнорировал. Пришлось итеративно улучшать извлечение контента.

Вторая серьезная проблема — бот находил информацию, но не использовал ее в ответах, а вместо этого просто отправлял абитуриента на сайт. Оказалось, что дело было в формулировке системного промпта: инструкция «если не знаешь — направь на сайт» доминировала над фактическим контекстом.

Третья задача — поддержание контекста диалога. Абитуриент мог спросить «какие есть курсы?», получить ответ, а потом написать «расскажи подробнее» — и бот не понимал, о чем речь. Пришлось добавить историю диалога.

Для контроля качества я написал автоматические тесты: они проверяют, что система находит конкретные факты — имя руководителя, сроки подачи документов, состав портфолио. Это позволяет после каждого изменения убедиться, что ничего не сломалось.

— Какие знания и принципы из области прикладной лингвистики вы применяли в разработке?

Во-первых, выбор модели эмбеддингов. Для русскоязычного контента критически важно использовать многоязычную модель — я выбрал multilingual-e5-large, которая понимает семантическую близость текстов на русском языке, а не просто совпадение ключевых слов.

Во-вторых, промпт-инжиниринг. Формулировка системного промпта определяет, как модель интерпретирует контекст и строит ответ. Я экспериментировал с разными инструкциями и обнаружил, что даже небольшое изменение формулировки (например, «используй ТОЛЬКО факты из контекста» вместо «если не знаешь, направь на сайт») радикально меняет поведение бота.

В-третьих, учет того, как абитуриенты формулируют вопросы. Люди не пишут «каковы сроки приема документов на 2026/2027 учебный год» — они спрашивают «когда подавать документы?» или «еще не поздно поступить?». Система должна понимать намерение за разными формулировками, и здесь помогает именно семантический поиск, а не поиск по ключевым словам.

— Как вы тестировали бота?

Я использую автоматические тесты на pytest, которые проверяют качество поиска по базе знаний. Каждый тест задает конкретный вопрос и проверяет, что в результатах поиска присутствуют ожидаемые факты: имя академического руководителя, названия курсов, сроки подачи документов, информация о портфолио, стоимость обучения. Есть также тест, проверяющий, что в выдачу не попадают технические ошибки парсинга.

Это позволяет после каждого изменения — будь то обновление документов или доработка алгоритма поиска — быстро убедиться, что бот по-прежнему отвечает корректно. Плюс в CI-пайплайне есть проверка синтаксиса перед деплоем.

— Как вы видите дальнейший потенциал развития бота? Какие функции вы планируете добавить в будущем?

Есть несколько направлений. Во-первых, бот мог бы автоматически отслеживать обновления на сайте программы и обновлять базу знаний без ручного вмешательства. Во-вторых, можно добавить поддержку английского языка — программа связана с переводом, и среди абитуриентов могут быть иностранцы, а мультиязычная модель эмбеддингов это уже позволяет. В-третьих, можно было бы добавить персональный режим в личных сообщениях — сейчас бот работает только в групповом чате, но если дать возможность писать ему напрямую, абитуриент мог бы получить, например, персонализированный чек-лист по сбору портфолио. Правда, это потребует большего расхода токенов, поскольку каждый диалог в личке — это отдельная сессия с языковой моделью. Наконец, архитектура бота универсальна — достаточно заменить базу документов и системный промпт, чтобы адаптировать его для другой магистерской программы Высшей школы экономики.

— Что бы вы порекомендовали другим студентам, которые хотели бы создать свой цифровой продукт?

Начинайте с конкретной задачи, а не с технологии. Не «я хочу сделать бота на нейросетях», а «абитуриентам трудно найти информацию о поступлении — как это решить?». Технология — это инструмент, а не цель.

Второе — не бойтесь итерировать. Первая версия бота была почти бесполезна — она не давала конкретных ответов. Это нормально. Важно быстро получить обратную связь и улучшать продукт.

Третье — пишите тесты. Это звучит скучно, но именно тесты позволяют уверенно менять код, не боясь все сломать. И они экономят время в долгосрочной перспективе.

И последнее — используйте ИИ-инструменты в самой разработке. Я использовал Claude Code как ассистента при написании кода, и это существенно ускорило работу. Мы живем в интересное время, когда ИИ помогает создавать ИИ.

Задать вопросы «Таисии» можно здесь.