← stackleo.ru - Леонард Бабаков

кейс 03 · Ops-bot · telegram-бот для edtech

Слушает совещания - и не путает тишину с согласием

Заказчик - EdTech-платформа, около 120 сотрудников. Задача была простой на словах: бот принимает голосовые и записи созвонов, сам раскладывает их по Яндекс Трекеру и Яндекс Вики. Сложность вылезла там, где обычно и вылезает - в разнице между личным статусом одного человека и созвоном, где говорят все сразу.

Личный статус - доверие с проверкой

кнопка-микрофон

Сотрудник наговаривает, что сделал и что нужно сделать. Бот показывает расшифровку и ждёт подтверждения или правки - только после этого текст превращается в задачи и записи для базы знаний. Тем же голосом человек один раз описывает себя: роль, зону ответственности, по каким вопросам к нему идти. Бот сохраняет это карточкой и потом сам отвечает коллегам, кто за что отвечает - вместо гадания в чатах.

Запись совещания - там, где доверие обязано быть осторожным

файл-вложение

Несколько голосов, реальный созвон, без разметки, кто говорит. Раскладывать такое по задачам с той же уверенностью, что и личный статус - рискованно: без разбора по голосам бот не поймёт, кто должен делать задачу, и может засорить боевой Трекер. Решение - конспект и карточки-кандидаты: сами по себе они ничего не создают.

Так это выглядит в Telegram - рабочая механика бота, не иллюстрация

конспект созвона Обсуждали открытый урок для новых учеников в четверг. Решили: ведёт куратор уровня, тема - разговорная практика, без грамматики.
кандидат на задачу Подготовить план открытого урока на четверг
ответственный: не определён · доска: curators · срок: 28.08
создатьответственныйправитьпропустить
кандидат в вики Формат открытого урока - куратор уровня, 30 минут разговорной практики, без грамматики
в википравитьпропустить

Каждая находка приходит своей карточкой. Ничего не попадает в Трекер или Вики без клика человека - а если ответственный назначен неверно или найден не тот факт, карточка правится прямо в переписке, без похода в код.

На том же созвоне живой слушатель задачу прослушал - бот поймал.

Решающие детали

Терминология

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

Отказоустойчивость

Сбой связи и сбой в коде - разные сообщения пользователю. Никогда тишина в ответ на нажатую кнопку.

Память

Незавершённые карточки и заявки на доступ живут в базе, не в оперативной памяти процесса - рестарт сервиса ничего не роняет.

Честная оценка времени

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

Стек

Python python-telegram-bot Whisper · self-hosted GPT-совместимая модель Яндекс Трекер API Яндекс Вики API SQLite → внешняя БД при росте systemd

Что ещё можно прикрутить

продумано, не построено

Правка карточек сотрудников сверху

Сейчас карточку заполняет только сам человек. Админ мог бы находить и поправлять любую карточку напрямую - на случай, если рассказали неполно.

Внешние модели с анонимизацией

Если нужна модель мощнее self-host - реальные имена подменяются на плейсхолдеры перед отправкой во внешний API и возвращаются обратно после ответа. Персональные данные наружу не уходят.

Тот же принцип - на любой отдел и любую школу

Личный статус и разбор совещаний работают одинаково для методистов, кураторов, преподавателей - переносится как модуль, не как разовая стройка под одного клиента.