Общая логика
Схема представляет Telegram-бота с тремя основными функциями через агрегатор нейросетей OpenRouter:
- Непрерывный текстовый диалог с ИИ в роли строгого тренера по привычкам.
- Генерация изображений по текстовому описанию пользователя.
- Анализ загруженного изображения с выводом его описания.
После запуска бот показывает главное меню. Пользователь выбирает нужную функцию, проходит необходимый этап ввода данных, после чего запрос отправляется в OpenRouter. Для операций с изображениями предусмотрены переходы к повторному запуску функции и возврат в меню. При ошибках интеграции отображается отдельное сообщение с возможностью вернуться в меню.
Серый фрейм содержит пояснение назначения демонстрационной схемы и визуально объединяет связанные элементы. Сам фрейм не выполняет действий бота.
Запуск и главное меню
После запуска пользователь попадает в меню с тремя вариантами:
- переход к диалогу с ИИ;
- создание изображения;
- анализ изображения.
Кнопки меню работают как переходы к соответствующим функциональным веткам. Текущее сообщение при нажатии кнопки обновляется, поэтому навигация не приводит к избыточному накоплению одинаковых сообщений.
Меню также доступно как отдельная команда интерфейса бота.
Группа: диалог с ИИ
Ввод сообщения
Перед отправкой запроса бот просит пользователя написать вопрос или сообщение для тренера привычек.
Ограничения ввода:
- минимальная длина — 5 символов;
- максимальная длина — 1000 символов;
- при нарушении ограничения показывается сообщение об ошибке;
- предусмотрена кнопка прерывания формы.
После получения текста бот автоматически передает его в блок интеграции.
Обработка запроса
Для ответа используется OpenRouter и текстовая модель openai/gpt-4o-mini.
В системной инструкции модели задана роль персонального тренера по дисциплине и привычкам. ИИ должен:
- помогать формулировать и отслеживать цели;
- при необходимости уточнять цель по принципу SMART;
- реагировать на ежедневные отчеты пользователя;
- поддерживать геймификацию через подсчет серии или прогресса;
- строго реагировать на пропуски и оправдания;
- напоминать о первоначальной мотивации пользователя;
- обращаться на «ты»;
- отвечать кратко, примерно в двух-трех предложениях;
- завершать сообщение открытым вопросом о следующем шаге.
Ответ должен состоять из трех смысловых частей:
- реакция на действие пользователя;
- мотивационный комментарий или требовательное напоминание;
- вопрос, который побуждает продолжить работу.
Интеграция работает в циклическом режиме: последующие сообщения пользователя снова обрабатываются этим же блоком. Включено сохранение истории диалога, поэтому модель получает контекст предыдущего общения. Конкретный срок хранения истории в схеме отдельно не задан.
Также включены:
- потоковая передача ответа;
- индикатор набора текста;
- автоматическая обработка всех последующих сообщений в рамках диалога.
В схеме присутствует текстовый блок, который выводит результат модели, однако он отключен. Поэтому отображение ответа, судя по настройке, должно выполняться самой интеграцией или платформой автоматически.
Для завершения циклического режима пользователь должен перейти к другой функции через меню либо вызвать другую команду. Специальное слово для остановки в настройках не задано.
Группа: генерация изображения
Получение описания
Сначала бот просит пользователя прислать текстовое описание будущего изображения.
Ограничения:
- от 5 до 1000 символов;
- при некорректной длине показывается предупреждение;
- ввод можно прервать специальной кнопкой.
Полученный текст сохраняется во внутреннюю переменную и передается в следующий этап.
Генерация
Для создания изображения используется OpenRouter с моделью google/gemini-2.5-flash-image.
Текст пользователя передается в параметр промпта. Интеграция настроена на:
- циклическую обработку;
- сохранение диалога;
- потоковый режим;
- повторную попытку при ошибке;
- перенаправление ошибок в отдельный экран.
После завершения генерации бот автоматически переходит к отображению результата. В настройках генерации включен режим, при котором изображение не загружается в Telegram непосредственно на этапе интеграции, а передается дальше в следующий блок через URL результата.
Отображение результата
Готовое изображение отправляется пользователю отдельным медиасообщением.
На экране доступны два действия:
- повторно запустить создание изображения;
- вернуться в главное меню.
Таким образом, пользователь может последовательно создавать несколько изображений, не проходя стартовый экран заново.
Группа: анализ изображения
Получение фотографии
Бот просит пользователя отправить изображение для анализа.
Для ввода установлена проверка типа данных:
- принимается именно фотография;
- при отправке другого типа сообщения выводится ошибка;
- пересылка изображения разрешена;
- форму можно прервать.
После получения фотографии бот передает ее идентификатор в следующий этап анализа.
Анализ изображения
Для обработки используется OpenRouter с моделью openai/gpt-5-image-mini.
Вопрос к модели зафиксирован в настройках: определить, что изображено на фотографии. В запрос передается идентификатор полученного файла.
Интеграция настроена на:
- сохранение истории диалога;
- циклическую обработку;
- потоковый режим;
- повторную попытку при сбое;
- переход на общий экран ошибки при неудачной обработке.
Вывод результата
После анализа пользователь получает текстовое описание изображения, оформленное отдельным сообщением.
Из результата доступны действия:
- отправить другую фотографию на анализ;
- вернуться в главное меню.
Обработка ошибок
Ошибки предусмотрены для операций генерации и анализа изображений.
При сбое OpenRouter или другой проблеме обработки бот показывает предупреждение о невозможности выполнить запрос и предлагает вернуться в меню. Возможности повторить операцию непосредственно с экрана ошибки нет — для нового запроса пользователь возвращается в главное меню и запускает нужную функцию заново.
Для текстового диалога отдельная ветка ошибки в схеме не задана.
Интеграции и необходимые условия
В схеме используется одна внешняя интеграция:
- OpenRouter:
- отправка текстовых сообщений;
- генерация изображений;
- анализ изображений.
Для работы потребуется:
- настроенное подключение к OpenRouter;
- действующий API-ключ OpenRouter;
- наличие средств на балансе или активного способа оплаты, если выбранные модели работают на платной основе;
- доступность указанных моделей в аккаунте OpenRouter;
- учет возможных ограничений и стоимости обработки текста, генерации и анализа изображений;
- корректно настроенный Telegram-бот с правами на прием фотографий и отправку текстовых сообщений и изображений.
Дополнительно необходимо учитывать лимиты Telegram и OpenRouter: размер входных изображений, допустимые форматы файлов, ограничения по длине сообщений, скорость запросов и возможные квоты моделей.
