1. Архитектура и проектирование чат-бота по ТЗ клиента
Архитектура и проектирование чат-бота по ТЗ клиента
Почему одни разработчики берут за бота 10 000 рублей, а другие — 80 000 за точно такой же по функционалу? Ответ кроется не в навыках программирования, а в умении правильно спроектировать архитектуру ещё до написания первой строки. Именно этап проектирования отделяет любителя от профессионала, который мыслит категориями бизнес-ценности, а не кнопок и сообщений.
Когда клиент приходит с запросом «мне нужен бот для нутрициолога», он редко понимает, что стоит за этим предложением. Ваша задача — превратить расплывчатое пожелание в техническое задание (ТЗ), по которому можно собрать работающий продукт. ТЗ — это документ, описывающий что именно бот должен делать, как он будет общаться с пользователем, какие данные собирать и куда их передавать.
Первый контакт: как вытянуть из клиента нужную информацию
Большинство заказчиков не умеют формулировать ТЗ. Они говорят: «Хочу бота, который будет считать калории». На этом этапе ваша роль — бизнес-аналитик. Задавайте наводящие вопросы:
Каждый ответ — это кирпичик в архитектуре. Например, если клиент хочет, чтобы бот запоминал историю пользователя между сессиями, вам нужна база данных. Если бот должен работать с тысячами пользователей одновременно — нужна масштабируемая инфраструктура.
Схема диалога: карта всего пути пользователя
После сбора требований переходите к визуализации. Схема диалога (dialog flow) — это карта, показывающая все возможные пути взаимодействия пользователя с ботом. Рисуйте её в любом удобном инструменте: Miro, Figma, Draw.io или даже на бумаге.
Для бота-нутрициолога базовая схема выглядит так:
Каждый шаг — это отдельный блок (или сцена) в архитектуре бота. Между блоками существуют переходы — условия, при которых бот переключается с одного шага на другой. Например, если пользователь указал диабет, бот переходит к дополнительному блоку расчёта хлебных единиц (ХЕ).
Структура данных: что бот должен помнить
Определите, какие данные бот будет собирать, хранить и обрабатывать. Разделите их на три категории:
| Категория | Примеры | Зачем хранить | |-----------|---------|---------------| | Входные данные | вес, рост, возраст, пол | для расчёта нормы калорий | | Контекстные данные | текущий шаг диалога, выбранные блюда | чтобы не спрашивать повторно | | Исторические данные | прошлые меню, предпочтения | для персонализации при повторных визитах |
Если бот работает в Telegram, часть данных можно хранить в переменных сессии (они живут, пока открыт диалог), а часть — во внешней базе данных через API.
Структура ТЗ: шаблон для быстрого старта
Готовое ТЗ для типового бота включает:
> Клиент платит не за кнопки и сообщения — он платит за решение своей бизнес-задачи. Чем точнее вы эту задачу сформулируете, тем дороже будет стоить ваша работа.
Ловушки проектирования
Самая частая ошибка начинающих — приступить к сборке до утверждения ТЗ. Клиент начинает добавлять «ещё одну мелочь» по ходу, и проект расползается. Защитите себя: фиксируйте ТЗ письменно, согласовывайте с клиентом и закладывайте в договор механизм управления изменениями — любое дополнение к ТЗ после утверждения оценивается отдельно.
Ещё одна ловушка — перегрузка первого экрана. Если при запуске бота пользователь видит 15 кнопок и длинный текст, он закроет диалог. Первый экран — не более 3–4 кнопок и 2–3 предложения текста. Всё остальное — по шагам.
Правильно спроектированная архитектура экономит часы на этапе сборки и защищает от переделок. Именно она становится вашим главным конкурентным преимуществом на фрилансе.