Кейс · Разработка AI-ботов для Telegram и MAX

AI-тренер в мессенджере: как устроен бот SportDoma и что происходит между вашим «поехали» и первым интервалом

Мы собрали бота, который работает как персональный тренер: знает ваш тренажёр, вашу цель и вашу форму на сегодня, ведёт программу 12–24 недели и проговаривает каждый интервал живым голосом. Внутри — не «обёртка над нейросетью», а без малого сотня модулей, которые должны отработать за секунды и ни разу не соврать в цифрах.

Эта статья — разбор устройства бота изнутри. Она нужна по двум причинам. Во-первых, бот работает и его можно потрогать прямо сейчас. Во-вторых, ровно эту архитектуру мы переносим на другие задачи: сопровождение пациента между приёмами, подбор оборудования, обучение сотрудников, работа с клиентом после покупки. Механика одна, предметная область меняется.

Первые тренировки — бесплатно, без карты. Онбординг занимает около трёх минут, дальше бот сразу выдаёт готовую тренировку.

Система в цифрах · сборка 7.73
Строк серверного кода76 133
Функциональных модулей97
Таблиц в базе данных49
Команд и сценариев в боте51
Фоновых задач по расписанию9
МессенджеровTelegram · MAX
01 · Со стороны экрана

Что человек получает в переписке

Пользователь проходит трёхминутный онбординг — имя, возраст, цель, тренажёр, опыт, расписание, анкета готовности к нагрузкам — и дальше просто открывает мессенджер, когда пришло время тренироваться. Бот не отдаёт «примерный план на неделю». Он отдаёт конкретную тренировку на сегодня, с параметрами, которые выставляются на панели тренажёра не задумываясь.

Тренировка 14 из 96 · велотренажёрГотовность 78/100
0:00
РазминкаДыхание ровное, разговаривать легко
8 мин · сопротивление 3
RPM 70–75
8:00
Интервал × 62 мин работа / 90 сек восстановление
21 мин · сопротивление 7
RPM 85–90 · RPE 7
29:00
ЗаминкаПульс должен опуститься ниже 110
6 мин · сопротивление 2
RPM 60
Нагрузка снижена на 12% относительно плана: вчера тренировка отмечена как «тяжело», а утренний пульс выше личной нормы на 6 ударов.
Тренировка на велотренажёре в боте SportDoma: фазы, длительность, сопротивление и RPM
Так тренировка приходит в чат: фазы, время и параметры под конкретный тренажёр.
Карточка готовности 0–100 в боте SportDoma с разбивкой по сну, пульсу покоя и нагрузке
Утренний балл готовности с разбивкой по компонентам — от него зависит объём сегодняшней работы.
  • Голос вместо экрана. Бот проговаривает каждый интервал — 30 вариантов голоса, можно бежать и не смотреть в телефон.
  • Таймер-приложение внутри мессенджера. Кольцо обратного отсчёта, сигналы на смене фазы, пауза, кнопки оценки нагрузки, Wake Lock — экран не гаснет посреди подхода.
  • Фотография вместо ввода. Снимок тарелки превращается в калории и БЖУ, снимок экрана тренажёра — в сохранённую тренировку, снимок незнакомого тренажёра — в подобранные под него упражнения.
  • Утренний балл готовности 0–100. Считается из пяти взвешенных компонентов: сон, пульс покоя против личной медианы за 30 дней, накопленная нагрузка, самочувствие и вариабельность ритма. Красная зона — тренировка автоматически становится восстановительной.
  • Улица и зал. GPS-трекинг бега и велосипеда с темпом и дистанцией, оздоровительная ходьба, погодные ограничения для уличных тренировок.
  • Полная озвучка для незрячих. Команды формулируются от точек контакта тела, а не от картинки; тесты проходятся голосом; интервалы дублируются вибрацией. Совместимо с VoiceOver и TalkBack.
  • Два мессенджера одновременно. Telegram и MAX — один профиль, одна история, одна программа.
Мини-приложение SportDoma с кольцом-таймером тренировки и кнопками оценки нагрузки
Мини-приложение ведёт тренировку по интервалам и не даёт экрану погаснуть.
Бот SportDoma распознал блюдо по фотографии и рассчитал калории и БЖУ
Фото тарелки → калории и БЖУ в дневнике питания. Тот же механизм читает экран тренажёра.

Две записи экрана — приложение целиком и одна тренировка от старта до заминки. Нажмите, чтобы развернуть на весь экран со звуком.

Мини-приложение: профиль, программа, графики прогресса, дневники питания и воды.
Тренировка от старта до заминки: кольцо таймера, смена фаз, голосовые команды, оценка нагрузки.
02 · Под капотом

Девять шагов между сообщением и тренировкой

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

  1. Приём события и защита от дублей

    Telegram и MAX присылают события по-разному. Оба потока приводятся к единому внутреннему формату, каждое событие получает ключ идемпотентности: повторная доставка вебхука не должна списать кредит дважды.

  2. Сборка контекста пользователя

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

  3. Расчёт готовности

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

  4. Позиция в мезоцикле

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

  5. Ограничения по здоровью

    Ответы анкеты PAR-Q+ превращаются в жёсткие правила для генератора: не выше определённой зоны пульса, без интервалов высокой интенсивности, без ударной нагрузки на суставы. Это не рекомендация модели, а фильтр над ней.

  6. Генерация под строгой схемой

    Модель получает контракт: фазы, длительности, допустимые диапазоны под конкретный тренажёр, методологический блок, формат сессии (структура не должна повторяться неделями подряд), запреты. Ответ обязан быть валидным JSON заданной структуры — свободный текст здесь не принимается.

  7. Валидация и физиологические границы

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

  8. Озвучка и сборка интерфейса

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

  9. Обратная связь замыкает цикл

    Оценка «легко / норм / тяжело», RPE, а также фактические настройки, которые человек реально выставил на тренажёре: лог интервалов агрегируется и возвращается в промпт следующей тренировки. Если пользователь третий раз подряд крутит сопротивление ниже назначенного — система об этом узнаёт.

03 · Состав системы

Из чего собраны эти 97 модулей

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

Транспорт

Два мессенджера, один мозг

Telegram и MAX различаются форматом кнопок, работой с файлами, лимитами и поведением при блокировке ботом. Прикладная логика об этом не знает — она общается с абстракцией «канал».

Модель пользователя

Профиль и память, а не переписка

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

Методология

Научная база вместо «пяти интервалов»

Распределение интенсивности по зонам, принципы прогрессии, соотношение работы и восстановления. Модель не изобретает методику заново на каждый запрос — она применяет заданную.

Периодизация

Где человек в цикле прямо сейчас

Три нагрузочных недели плюс разгрузочная, чередование тяжёлых и лёгких дней внутри микроцикла, перестроение после пропусков. Программа на 12–24 недели, а не бесконечная лента одинаковых сессий.

Форматы

Структура сессии тоже не должна повторяться

Анти-повтор следит не только за упражнениями, но и за формой тренировки: пирамида, лестница, темповая, фартлек. Ротация детерминированная — по дате и пользователю, а не случайная.

Техники

Библиотека методов тренинга

Каталог подходов разных школ, из которого тренер собирает программу. Автоподбор под цель или осознанный выбор пользователя — как в модуле практик осознанности.

Готовность

Балл 0–100 с личной базовой линией

Сравнивать пульс покоя с популяционной нормой бессмысленно. Медиана за 30 дней набирается по самому человеку, дальше считается отклонение от его собственной нормы, острая и хроническая нагрузка и субъективная оценка.

Безопасность

PAR-Q+ как жёсткий фильтр

Анкета готовности к физической нагрузке превращается в набор запретов, которые генератор не может обойти. Отдельно — модуль анализов крови: показатели с референсами влияют на рекомендации.

Обратная связь

Что человек сделал, а не что ему назначили

Лог фактических настроек интервалов агрегируется и возвращается в промпт. Разрыв между планом и выполнением — самый ценный сигнал персонализации, и его почти никто не собирает.

Проактивность

Тренер, который сам начинает разговор

Система видит сигнал в данных и предлагает изменение — объясняя почему и ссылаясь на конкретные цифры. Решение остаётся за человеком: бот спрашивает, а не меняет программу молча.

Паттерны

«Среды у нас не идут»

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

Зрение

Три сценария по фотографии

Еда → калории и БЖУ. Экран тренажёра → распознавание цифр и автосохранение тренировки. Незнакомый тренажёр → определение типа и подбор упражнений. У каждого свой промпт, своя схема ответа и свой лимит по тарифу.

Голос

Синтез и голосовое управление

30 голосов, разбивка по фазам, кэш фрагментов. Плюс отдельный роутер: свободная речь превращается в конкретное действие — незрячему пользователю inline-кнопки недоступны, и «работайте через меню» для него тупик.

Доступность

Упражнения на ощупь

Базовые движения описаны от фиксированной опоры — стена, стул, пол — и от точек контакта тела: исходное положение, движение, дыхание и способ проверить правильность без зрения.

Внешние данные

Часы и погода

Подключение спортивных часов по OAuth: сон, пульс покоя и вариабельность приходят сами и питают балл готовности. Погода задаёт жёсткие ограничения для улицы и поправки для зала.

Удержание

Лиги, крю, тень друга, заморозка серии

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

Антиотток

Пресеты плотности уведомлений

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

Экономика

Кошелёк и маршрутизация движков

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

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

04 · Честно о сложности

Почему «прикрутить нейросеть к боту» — это не то же самое

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

Наивная реализацияЧто нужно на самом деле
Модель отвечает свободным текстомСтрогая схема ответа, парсер, валидатор и откат к безопасному пресету, если проверка не пройдена
Контекст — последние сообщения диалогаПостоянная модель пользователя: профиль, история, метрики, позиция в программе, лимиты тарифа
«Средняя нагрузка», общие формулировкиКонкретные параметры под конкретную модель тренажёра, ограниченные физиологическими рамками и анкетой здоровья
Персонализация по анкете при регистрацииЗамкнутый цикл: назначено → выполнено фактически → агрегация → следующий промпт
Каждый ответ — новый запрос к платному APIКэширование, отдельная модель под каждую задачу и тариф, учёт себестоимости на пользователя
Сбой API — бот молчитОчередь, повтор, деградация функциональности, понятное человеку сообщение вместо тишины
Бот пишет, когда есть поводУправление плотностью уведомлений: перегруз пушами убивает удержание вернее, чем плохой контент
Один мессенджерОбщая логика и тонкий адаптер на каждый канал, включая перенос профиля между ними
Оплата «где-нибудь на сайте»Единый баланс, атомарное списание, идемпотентность платежей, фискализация
Данные живут в ботеСинхронизация с сайтом: личный кабинет, аналитика, CRM, выгрузки

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

05 · Ваш проект

Тот же механизм — под вашу задачу

Фитнес здесь только предметная область. Ядро — «бот, который помнит клиента, принимает решение по правилам и данным, отвечает голосом или текстом и синхронизируется с сайтом» — переносится куда угодно:

  • Клиники и реабилитация. Ведение пациента между приёмами, домашние протоколы упражнений, напоминания о приёме препаратов, сбор жалоб перед визитом, сводка врачу.
  • Фитнес-клубы и студии. Программы для клиентов между занятиями с тренером, продление абонементов, заполнение свободных слотов, возврат ушедших.
  • Аренда и продажа оборудования. Подбор по фото и параметрам, расчёт стоимости, бронирование, напоминания о сроке аренды, допродажа расходников.
  • Онлайн-школы и обучение персонала. Индивидуальный трек, проверка заданий, тесты голосом, аттестация, отчёт руководителю.
  • Сервис и техподдержка. Диагностика по фото неисправности, подбор запчасти, оформление заявки, статус ремонта.
  • Интернет-магазины. Подбор товара в диалоге, восстановление брошенных корзин, статус заказа, повторные покупки по циклу расходования.

Готовый бот SportDoma мы не передаём и не публикуем в открытом доступе — это работающий коммерческий продукт со своей базой пользователей. Для заказчика собирается отдельный экземпляр: своя предметная логика, свои данные, свои платежи, свой сервер и свои доступы. Архитектура и опыт переносятся, чужие данные — нет.

06 · Связка с сайтом

Бот и сайт как одна система

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

  • Единый профиль. Человек регистрируется на сайте или в боте — учётная запись одна. Привязка по телефону, e-mail или одноразовому коду.
  • Личный кабинет на сайте. То, что неудобно смотреть в переписке: история, графики, документы, счета. WordPress, Bitrix, Tilda, самописный движок — подключаемся к тому, что уже есть.
  • Оплата в одном месте. Баланс общий: пополнил на сайте — потратил в боте, и наоборот. Фискализация и чеки по 54-ФЗ.
  • Заявки в CRM. Диалог с ботом становится сделкой с историей, а не отдельным чатом, о котором отдел продаж не знает.
  • Контент в обе стороны. Каталог, цены, статьи и акции с сайта доступны боту; результаты работы бота — отзывы, кейсы, вопросы клиентов — возвращаются на сайт как контент.
  • Аналитика. Сквозные метрики: источник трафика → регистрация в боте → оплата. Плюс метрики самого бота: удержание по неделям, себестоимость генерации на пользователя.
Графики прогресса в SportDoma: динамика веса и количество тренировок по неделям
Данные бота доступны человеку в виде графиков, а владельцу продукта — в виде выгрузок и метрик.
Административная панель бота SportDoma: список пользователей, тарифы и настройки
Заказчик получает панель управления: пользователи, тарифы, лимиты, рассылки, логи — а не чёрный ящик.

Технически это REST API на стороне сайта плюс плагин или модуль под вашу CMS. Если сайта пока нет — сделаем и его: разработка сайтов, SEO и реклама наш основной профиль, бот в этой связке становится ещё одним каналом, а не отдельной игрушкой.

07 · Как идёт работа

От разговора до рабочего бота

  1. Разбор сценария

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

  2. Прототип ключевого сценария

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

  3. Разработка и связка с сайтом

    Логика, база, платежи, админка, интеграция с CMS и CRM. Показываем работающие куски по ходу, а не один раз в конце.

  4. Запуск и настройка на живых пользователях

    Первые недели — правки формулировок, лимитов и промптов по реальному поведению людей. Это нормальный этап, а не признак ошибки.

  5. Сопровождение

    Сервер, обновления API мессенджеров, контроль стоимости генерации, новые функции. Мессенджеры меняют правила регулярно — бот без обслуживания однажды просто перестаёт отвечать.

08 · Вопросы

Частые вопросы о разработке AI-бота

Можно посмотреть, как это работает, до обращения?

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

Вы продаёте исходники этого бота?

Нет. SportDoma — работающий продукт с реальными пользователями, его код и данные не передаются. Мы разрабатываем для заказчика отдельного бота под его задачу: своя логика, своя база, свой сервер, свои доступы. Права на результат разработки передаются вам.

Обязательно делать бота такой же сложности?

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

Сколько стоит разработка и от чего зависит цена?

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

Сколько стоит эксплуатация?

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

Бот будет работать и в Telegram, и в MAX?

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

Как бот свяжется с моим сайтом?

Через REST API и модуль под вашу CMS. Для WordPress, Bitrix и Tilda это отработанная задача. Синхронизируются пользователи, заказы, баланс, каталог и статусы; на сайте появляется личный кабинет, в CRM — заявки из бота.

Кому принадлежат данные пользователей?

Вам. База, сервер и доступы к платным сервисам оформляются на заказчика. Обработка персональных данных настраивается по 152-ФЗ, включая размещение базы на серверах в России.

Попробовать и обсудить

Сначала потрогайте бота — потом поговорим о вашем

Пять минут в мессенджере объясняют про возможности AI-бота больше, чем любое коммерческое предложение. Запустите SportDoma, пройдите онбординг, получите тренировку — а потом расскажите, что должен делать бот в вашем бизнесе.

Разбор задачи и ориентир по срокам — бесплатно. Разработка ботов для Telegram и MAX, интеграция с сайтом и CRM, сопровождение после запуска.

Частые вопросы

Сколько стоит разработка такого AI-бота?

В тексте указана стоимость создания сайтов от 15 000 ₽, но цена разработки AI-бота для Telegram и MAX не указана. Для уточнения стоимости обратитесь в компанию Webvozdux.

Какие сроки разработки бота SportDoma?

Сроки разработки бота SportDoma в тексте не указаны. Он работает и доступен для тестирования, но точное время создания проекта не раскрывается. Обратитесь к специалистам Webvozdux за информацией.

Можно ли протестировать бота бесплатно?

Да, первые тренировки в боте SportDoma — бесплатные, без привязки карты. Онбординг занимает около трёх минут, после чего бот сразу выдаёт готовую тренировку.

Какие мессенджеры поддерживает бот?

Бот SportDoma работает одновременно в двух мессенджерах — Telegram и MAX. У пользователя единый профиль, одна история тренировок и одна программа, независимо от выбранного приложения.

yandex
socseti
jad
jad
jad
sayt2
avito2