Задача
Первое сообщение незнакомому человеку или следующий ответ в затухающей переписке — то место, где многие застревают. Обычный чат-бот что-то напишет, но он не видит ни анкеты, ни переписки, поэтому текст получается общим.
Продукт начался в августе 2025 года как эксперимент: может ли ассистент, который видит то же, что и пользователь, давать достаточно конкретные советы — и готовы ли за это платить? Оказалось, что полезного нужно немного: короткая оценка ситуации и одно подходящее сообщение. Ассистент не должен додумывать то, чего нет на скриншоте, а нечитаемая картинка не должна стоить пользователю ничего.
Объём первой версии
- Вошло
- Три сценария: первое сообщение по скриншоту анкеты, ответ с учётом всей сохранённой переписки и быстрый разбор скриншота чата. Баланс токенов с пробными начислениями и оплатой в Telegram Stars. Мини-приложение для истории, правки и баланса.
- Не вошло
- Подключение к приложениям знакомств и отправка сообщений за пользователя, нативное мобильное приложение и любая автоматизация от его имени. Цены пока проверяются как гипотезы.
Что сделано
- СкриншотПользователь отправляет скриншот боту или загружает его в мини-приложении — либо вставляет последнее сообщение собеседника.
- РаспознаваниеОдин вызов мультимодальной модели читает картинку и возвращает структурированные данные: анкета, переписка или ни то ни другое. Неподходящая картинка отклоняется без списания.
- АнализАссистент описывает этап общения, интерес собеседника по шкале от 1 до 10, риски и следующий шаг.
- СообщениеОдин вызов текстовой модели пишет одно сообщение — по анализу, а для ответа ещё и по сохранённой переписке.
- Правка и сохранениеВ мини-приложении пользователь правит черновик перед сохранением; сохранённый текст становится частью истории для следующего ответа.
Моя роль
- Сделано мной
- Продукт с первой версии: сценарии и промпты, AI-конвейер и его оценка, бэкенд и модель данных, бот, мини-приложение, биллинг токенов и оплата, развёртывание и эксплуатация.
- С AI-агентами
- Большая часть кода написана с AI-агентами по моим правилам: архитектура и ограничения, ревью кода, тесты и релизы — мои.
Ключевые решения
- Мультимодальная модель вместо OCR
- Первая версия использовала отдельный OCR-сервис и разбирала его текст. Его заменил один мультимодальный вызов на скриншот: он сразу определяет тип картинки и возвращает поля, а OCR-сервис удалён.
- Явные сценарии вместо универсального движка
- Когда-то каждый сценарий описывался в YAML для настраиваемого движка. Я заменил его явным кодом для каждого сценария — его проще читать, тестировать и менять.
- Одно сообщение и анализ
- Ранние версии писали два сообщения в разном тоне. С октября 2026 года ассистент пишет одно сообщение и показывает анализ, на котором оно основано.
- Смена модели — по заранее заданному тесту
- Перед сменой модели распознавания я записал критерии успеха и прогнал корпус примерно из 55 случаев через обе модели. Порог не прошла ни одна, текущая показала результат выше — и от смены я отказался.
- Списание только за полезный результат
- Баланс проверяется до загрузки скриншота; за нечитаемую картинку или непригодный ответ деньги не списываются. Вызов модели повторяется в пределах бюджета времени, каждая попытка записывается вместе со стоимостью.
Проверка
- Более 6000 модульных тестов бэкенда, в том числе тест, который держит бизнес-ядро независимым от Telegram.
- Полный приёмочный прогон — 14 изолированных режимов плюс наборы тестов мини-приложения и фронтенда.
- В рабочую среду попадает только образ, который сначала выпущен и проверен в бета-среде.
- Изменения промптов и моделей проходят через лабораторию промптов с фиксированным корпусом и критериями, записанными до прогона.
Статус
Публичная бета: бот открыт, сценарии и цены ещё проверяются, публичных цифр использования нет. У продукта отдельные бета-среда и рабочая среда. До широкого запуска нужно оформить пользовательские условия и согласие; дальше — выход за пределы Telegram, в мобильное приложение.
Технологии
- Бот и API
- Python, aiogram 3 и FastAPI в одном процессе, APScheduler
- Мини-приложение
- Vue 3, TypeScript, Vite
- Данные
- PostgreSQL, Redis
- AI
- Через OpenRouter: один мультимодальный вызов для чтения скриншота, один текстовый — для сообщения; шаблоны промптов на Jinja2
- Оплата
- Telegram Stars; баланс токенов с пробными, подписочными и пакетными начислениями
- Инфраструктура
- Docker Compose с отдельными бета-средой и рабочей средой