В обнове 31 декабря кроме прочих были заявлены Темы\Треды для ботов: чтобы ИИ ботом стало можно пользоваться как веб-версией ГПТ - с удобным переключением между диалогами. Прилагается красивая видеографика как это работает. Однако ни одного примера бота в котором это включили я не нашел, а Perplexity бот из видео вообще не отвечает. Поэтому разбираемся сами как это всё настроить, какие нюансы (большие), и как оно выглядит в быстрой демке: https://t.me/Samo_GPT_Bot

Эта статья - эмпирический разбор нового функционала и пара советов в духе да поможет вам б-г

Сразу отмечу - мой СамоБот бесплатный и слабый: работает на триальных ключах Гемини, и лимитов триала на серьезное использование никому не хватит. Можно в личку скинуть свой бесплатный апи ключ, добавлю его в ротацию ключей, и у всех будет чуть больше запросов в час.

Во-первых про концепцию обновления телеграм ботов

На любом боте переходим в @BotFather, заходим в миниапп (в текстовом режиме настройка не обнаружена), бот сеттингс, включаем тумблер Threaded mode. Включается\Отключается свободно в любой момент, изменения применяются около-мгновенно.

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

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

Так вот, на мой взгляд включение режима Тем\Тредов ломает дизайн пользования почти всех ботов, и на адаптацию вашего функционала к такому режиму может уйти много времени и тестов юзерфлова. Даже многие ИИ боты сложно представить адекватно в таком режиме - там куча настроек, куча выборов моделей, параметров, форматов ответа - это должно работать на каждую тему отдельно или на всего бота сразу? А как юзер ожидает, это будет работать? В общем подумать есть о чем, а пока повеселимся.

Веселье

Также для ИИ-чатинга представлен режим Драфт-сообщений - когда невронка вам генерирует ответ постепенно, вы можете отправлять постепенный ответ через send_message_draft(), а не городить костыли с edit_message(), и в статус чата само ставится уникальное "думает.." вместо "печатает.." итп. Вызов метода send_message_draft() работает только если у бота включен режим Тредов\Тем.

Новый режим Тредов как может работает на старых версиях клиентов телеграм, а если обновиться до нового великолепного дизайна, то ничего не исправится. Карточка "Новая тема" появляется поверх чата в самых случайных местах. Рендер драфт-сообщений крайне экспериментален: на десткоп клиенте никакой плавности и постоянные исчезновения, на андроиде плавность присутствует, но с нюансами.

Обычная ситуация при переключении между Темами.
Обычная ситуация при переключении между Темами.

Если вы решите просто заменить отправку ответов невронки на send_message_draft(), возникнут проблемки: у драфт мессажей нету message_id. Это значит они не существуют как часть переписки, и поэтому исчезают при любых перерисовках юая в клиентских приложениях.


Логируем процесс обработки запроса юзера:

  • сначала присылаем заглушку - сообщение "думаю.." - которая висит пока API невронки не начнет отвечать; у сообщения айди 1486.

  • пошел ответ от API, шлем его в send_message_draft(), юзеру отображается печать текста в новое сообщение

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

  • закрываем\открываем чат или переходим по вкладкам тем: драфт сообщение исчезло, сообщение с айди 1487 осталось единственным.

Никаких способов убрать или зафиксировать драфт ��ообщение через код я не нашел - метод send_message_draft() возвращает в ответ булеан. Я пришел к решению, что нужно так и делать - присылать настоящее send_message() когда ответ целиком готов. Выглядит уродски и так же глючно, но хотя бы делает чатбота жизнеспособным

Ах да, кое-что скрыто в большинстве анонсов, но видно в девелопер апдейтах и @BotFather: при включении на боте Тем\Тредов, все платежи в тг-звездах через бота будут облагаться 15% комиссией.

Выводы

Видимо серьезным ботам следует подождать фиксов или каких то объяснений как этим всем пользоваться корректно. Нам заботливо дали увидеть столь мощный инструмент, осознать масштаб перемен, и оставили время подумать как именно его использовать в наших ботах (и стоит ли вообще)

Еще раз напоминаю, что фил фри пощупать этот функционал в демке: https://t.me/Samo_GPT_Bot
Можно ознакомиться другими моими бесполезными приколами и скандалами тут: https://t.me/yellastrodev

Данный текст не содержит сгенерированного ИИ контента, вообще