Мы собрали бота, который работает как персональный тренер: знает ваш тренажёр, вашу цель и вашу форму на сегодня, ведёт программу 12–24 недели и проговаривает каждый интервал живым голосом. Внутри — не «обёртка над нейросетью», а без малого сотня модулей, которые должны отработать за секунды и ни разу не соврать в цифрах.
Эта статья — разбор устройства бота изнутри. Она нужна по двум причинам. Во-первых, бот работает и его можно потрогать прямо сейчас. Во-вторых, ровно эту архитектуру мы переносим на другие задачи: сопровождение пациента между приёмами, подбор оборудования, обучение сотрудников, работа с клиентом после покупки. Механика одна, предметная область меняется.
Первые тренировки — бесплатно, без карты. Онбординг занимает около трёх минут, дальше бот сразу выдаёт готовую тренировку.
Пользователь проходит трёхминутный онбординг — имя, возраст, цель, тренажёр, опыт, расписание, анкета готовности к нагрузкам — и дальше просто открывает мессенджер, когда пришло время тренироваться. Бот не отдаёт «примерный план на неделю». Он отдаёт конкретную тренировку на сегодня, с параметрами, которые выставляются на панели тренажёра не задумываясь.
Две записи экрана — приложение целиком и одна тренировка от старта до заминки. Нажмите, чтобы развернуть на весь экран со звуком.
Пользователь нажимает одну кнопку. За несколько секунд система проходит фиксированную последовательность — и на каждом шаге есть отдельная логика отказа, потому что «нейросеть не ответила» не может быть причиной не потренироваться.
Telegram и MAX присылают события по-разному. Оба потока приводятся к единому внутреннему формату, каждое событие получает ключ идемпотентности: повторная доставка вебхука не должна списать кредит дважды.
Профиль, доступное оборудование с его характеристиками, история тренировок с оценками, вес и пульс за период, позиция в программе, часовой пояс, остаток пакета, память диалога. Это не «последние десять сообщений» — это структурированное состояние, разложенное по своим таблицам.
Пять компонентов со своими весами: сон, пульс покоя относительно личной медианы за 30 дней, накопленная нагрузка, субъективная оценка и вариабельность ритма. На выходе — балл 0–100, зона и коэффициент дня. При тревожных сочетаниях балл принудительно ограничивается сверху, даже если формально вышло больше.
Периодизация отвечает на вопрос, который абстрактный промпт решить не может: какая сейчас неделя цикла — нагрузочная или разгрузочная, и на какой точке волны находится пользователь. Без этого «разгрузка» существует только на словах.
Ответы анкеты PAR-Q+ превращаются в жёсткие правила для генератора: не выше определённой зоны пульса, без интервалов высокой интенсивности, без ударной нагрузки на суставы. Это не рекомендация модели, а фильтр над ней.
Модель получает контракт: фазы, длительности, допустимые диапазоны под конкретный тренажёр, методологический блок, формат сессии (структура не должна повторяться неделями подряд), запреты. Ответ обязан быть валидным JSON заданной структуры — свободный текст здесь не принимается.
Отдельный слой проверяет результат до показа человеку: сумма фаз совпадает с заявленной длительностью, параметры в пределах модели тренажёра, интенсивность не выше допустимой. Не прошло — перегенерация или откат к безопасному пресету.
Текст интервалов уходит в синтез речи, аудио кэшируется по фрагментам, чтобы не платить за одно и то же дважды. Параллельно собирается состояние для мини-приложения с таймером.
Оценка «легко / норм / тяжело», RPE, а также фактические настройки, которые человек реально выставил на тренажёре: лог интервалов агрегируется и возвращается в промпт следующей тренировки. Если пользователь третий раз подряд крутит сопротивление ниже назначенного — система об этом узнаёт.
Каждый — самостоятельная часть со своей моделью данных, своими отказами и своей стоимостью эксплуатации. Ниже — восемнадцать, которые лучше всего объясняют, почему «сделать такого же бота» это проект, а не вечер работы.
Telegram и MAX различаются форматом кнопок, работой с файлами, лимитами и поведением при блокировке ботом. Прикладная логика об этом не знает — она общается с абстракцией «канал».
Возраст, вес, цель, оборудование с характеристиками, опыт, ограничения, расписание, язык и голос. Плюс отдельное хранилище диалога, чтобы бот помнил разговор недельной давности.
Распределение интенсивности по зонам, принципы прогрессии, соотношение работы и восстановления. Модель не изобретает методику заново на каждый запрос — она применяет заданную.
Три нагрузочных недели плюс разгрузочная, чередование тяжёлых и лёгких дней внутри микроцикла, перестроение после пропусков. Программа на 12–24 недели, а не бесконечная лента одинаковых сессий.
Анти-повтор следит не только за упражнениями, но и за формой тренировки: пирамида, лестница, темповая, фартлек. Ротация детерминированная — по дате и пользователю, а не случайная.
Каталог подходов разных школ, из которого тренер собирает программу. Автоподбор под цель или осознанный выбор пользователя — как в модуле практик осознанности.
Сравнивать пульс покоя с популяционной нормой бессмысленно. Медиана за 30 дней набирается по самому человеку, дальше считается отклонение от его собственной нормы, острая и хроническая нагрузка и субъективная оценка.
Анкета готовности к физической нагрузке превращается в набор запретов, которые генератор не может обойти. Отдельно — модуль анализов крови: показатели с референсами влияют на рекомендации.
Лог фактических настроек интервалов агрегируется и возвращается в промпт. Разрыв между планом и выполнением — самый ценный сигнал персонализации, и его почти никто не собирает.
Система видит сигнал в данных и предлагает изменение — объясняя почему и ссылаясь на конкретные цифры. Решение остаётся за человеком: бот спрашивает, а не меняет программу молча.
Анализ 28 дней истории: если тренировки стабильно не закрываются в конкретный день недели, ментор сам предлагает ставить туда лёгкую десятиминутку, чтобы не рвать ритм.
Еда → калории и БЖУ. Экран тренажёра → распознавание цифр и автосохранение тренировки. Незнакомый тренажёр → определение типа и подбор упражнений. У каждого свой промпт, своя схема ответа и свой лимит по тарифу.
30 голосов, разбивка по фазам, кэш фрагментов. Плюс отдельный роутер: свободная речь превращается в конкретное действие — незрячему пользователю inline-кнопки недоступны, и «работайте через меню» для него тупик.
Базовые движения описаны от фиксированной опоры — стена, стул, пол — и от точек контакта тела: исходное положение, движение, дыхание и способ проверить правильность без зрения.
Подключение спортивных часов по OAuth: сон, пульс покоя и вариабельность приходят сами и питают балл готовности. Погода задаёт жёсткие ограничения для улицы и поправки для зала.
Недельные дивизионы, командные приглашения, асинхронные гонки по прошлым забегам напарника, один прощённый пропуск в месяц. Серия — главный крючок удержания, и её обнуление от одной ошибки — самый частый момент ухода.
В тренировочный день набирается больше десятка поводов написать. Топовые приложения держат два-четыре. Вместо десяти тумблеров — один выбор: лайт, стандарт, максимум. Перегруз пушами означает мьют бота, а мьют означает отток.
Пополнение баланса, пакеты, докупка, тарифные лимиты. Модель выбирается отдельно под каждую задачу и тариф: генерация тренировки, диалог, аналитика и погодный разбор стоят по-разному, и платить за всё по флагманской ставке незачем.
За кадром осталось ещё около восьмидесяти модулей: журнал силовых с расчётом одноповторного максимума, дневник питания и планы приёмов пищи, водный баланс, дыхательные практики, ежедневные игры, реферальная программа, промокоды, депозит дисциплины, аренда оборудования с напоминаниями, адаптация под фазы цикла, замеры тела, рассылки, поддержка с тикетами, архивация неактивных, административная панель и девять фоновых задач по расписанию.
Демо, где бот отвечает текстом от языковой модели, собирается за вечер. Продукт, которым пользуются каждый день и за который платят, отличается вот этим:
| Наивная реализация | Что нужно на самом деле |
|---|---|
| Модель отвечает свободным текстом | Строгая схема ответа, парсер, валидатор и откат к безопасному пресету, если проверка не пройдена |
| Контекст — последние сообщения диалога | Постоянная модель пользователя: профиль, история, метрики, позиция в программе, лимиты тарифа |
| «Средняя нагрузка», общие формулировки | Конкретные параметры под конкретную модель тренажёра, ограниченные физиологическими рамками и анкетой здоровья |
| Персонализация по анкете при регистрации | Замкнутый цикл: назначено → выполнено фактически → агрегация → следующий промпт |
| Каждый ответ — новый запрос к платному API | Кэширование, отдельная модель под каждую задачу и тариф, учёт себестоимости на пользователя |
| Сбой API — бот молчит | Очередь, повтор, деградация функциональности, понятное человеку сообщение вместо тишины |
| Бот пишет, когда есть повод | Управление плотностью уведомлений: перегруз пушами убивает удержание вернее, чем плохой контент |
| Один мессенджер | Общая логика и тонкий адаптер на каждый канал, включая перенос профиля между ними |
| Оплата «где-нибудь на сайте» | Единый баланс, атомарное списание, идемпотентность платежей, фискализация |
| Данные живут в боте | Синхронизация с сайтом: личный кабинет, аналитика, CRM, выгрузки |
Проще говоря: интересная часть работы не в том, чтобы модель что-то написала. Она в том, чтобы результат каждый раз был корректным, воспроизводимым, дешёвым в эксплуатации и не разваливался, когда у пользователя пропала связь ровно посередине интервала.
Фитнес здесь только предметная область. Ядро — «бот, который помнит клиента, принимает решение по правилам и данным, отвечает голосом или текстом и синхронизируется с сайтом» — переносится куда угодно:
Готовый бот SportDoma мы не передаём и не публикуем в открытом доступе — это работающий коммерческий продукт со своей базой пользователей. Для заказчика собирается отдельный экземпляр: своя предметная логика, свои данные, свои платежи, свой сервер и свои доступы. Архитектура и опыт переносятся, чужие данные — нет.
Бот, живущий отдельно от сайта, быстро превращается во вторую базу клиентов, которую никто не сверяет. Мы связываем их сразу:
Технически это REST API на стороне сайта плюс плагин или модуль под вашу CMS. Если сайта пока нет — сделаем и его: разработка сайтов, SEO и реклама наш основной профиль, бот в этой связке становится ещё одним каналом, а не отдельной игрушкой.
Что бот должен делать, кому и вместо чего. На выходе — список функций, разделённый на первый запуск и последующие этапы. Бесплатно.
Собираем самую рискованную часть первой — обычно это качество ответов модели на реальных данных. Смотрим результат до того, как вложены основные деньги.
Логика, база, платежи, админка, интеграция с CMS и CRM. Показываем работающие куски по ходу, а не один раз в конце.
Первые недели — правки формулировок, лимитов и промптов по реальному поведению людей. Это нормальный этап, а не признак ошибки.
Сервер, обновления API мессенджеров, контроль стоимости генерации, новые функции. Мессенджеры меняют правила регулярно — бот без обслуживания однажды просто перестаёт отвечать.
Да, бот открыт. Telegram или MAX — первые тренировки бесплатны, карта не нужна. Пройдите онбординг и посмотрите на выданную тренировку: это и есть результат работы всей описанной выше цепочки.
Нет. SportDoma — работающий продукт с реальными пользователями, его код и данные не передаются. Мы разрабатываем для заказчика отдельного бота под его задачу: своя логика, своя база, свой сервер, свои доступы. Права на результат разработки передаются вам.
Нет, и чаще всего не нужно. Девяносто семь модулей — результат нескольких лет развития продукта, а не стартовая конфигурация. Большинство задач закрывается меньшим набором: например, подбор, запись и оплата — без физиологических расчётов, синтеза речи и геймификации. Первый запуск делается на минимуме, остальное добавляется по мере необходимости.
Цена определяется числом сценариев и интеграций. Простой бот с одним сценарием и приёмом оплаты — заметно дешевле системы с личным кабинетом, распознаванием изображений и синхронизацией с CRM. Ориентир даём после разбора задачи, до этого любая цифра — угадывание.
Складывается из сервера и обращений к платным моделям. Расход на модели прямо зависит от того, как построена система: кэширование, отдельный движок под каждую задачу и лимиты по тарифам снижают счёт в разы. Учёт себестоимости на пользователя закладывается с самого начала — иначе продукт может оказаться убыточным при росте.
Да, поддержка обоих каналов заложена в архитектуру. Прикладная логика пишется один раз, под каждый мессенджер делается адаптер. Добавить второй канал позже дешевле, чем переписывать бота, изначально прибитого гвоздями к одному.
Через REST API и модуль под вашу CMS. Для WordPress, Bitrix и Tilda это отработанная задача. Синхронизируются пользователи, заказы, баланс, каталог и статусы; на сайте появляется личный кабинет, в CRM — заявки из бота.
Вам. База, сервер и доступы к платным сервисам оформляются на заказчика. Обработка персональных данных настраивается по 152-ФЗ, включая размещение базы на серверах в России.
Пять минут в мессенджере объясняют про возможности AI-бота больше, чем любое коммерческое предложение. Запустите SportDoma, пройдите онбординг, получите тренировку — а потом расскажите, что должен делать бот в вашем бизнесе.
Разбор задачи и ориентир по срокам — бесплатно. Разработка ботов для Telegram и MAX, интеграция с сайтом и CRM, сопровождение после запуска.
В тексте указана стоимость создания сайтов от 15 000 ₽, но цена разработки AI-бота для Telegram и MAX не указана. Для уточнения стоимости обратитесь в компанию Webvozdux.
Сроки разработки бота SportDoma в тексте не указаны. Он работает и доступен для тестирования, но точное время создания проекта не раскрывается. Обратитесь к специалистам Webvozdux за информацией.
Да, первые тренировки в боте SportDoma — бесплатные, без привязки карты. Онбординг занимает около трёх минут, после чего бот сразу выдаёт готовую тренировку.
Бот SportDoma работает одновременно в двух мессенджерах — Telegram и MAX. У пользователя единый профиль, одна история тренировок и одна программа, независимо от выбранного приложения.