← На главнуюEnglish

Кейс · Потребительский продукт с нуля

Dating Assistant — от скриншота к сообщению, которое хочется отправить

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

Моя роль
Продукт целиком: AI-конвейер, бэкенд, бот, мини-приложение, оплата и эксплуатация
Статус
Публичная бета; в разработке с августа 2025
Формат
Telegram-бот и мини-приложение

Задача

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

Продукт начался в августе 2025 года как эксперимент: может ли ассистент, который видит то же, что и пользователь, давать достаточно конкретные советы — и готовы ли за это платить? Оказалось, что полезного нужно немного: короткая оценка ситуации и одно подходящее сообщение. Ассистент не должен додумывать то, чего нет на скриншоте, а нечитаемая картинка не должна стоить пользователю ничего.

Объём первой версии

Вошло
Три сценария: первое сообщение по скриншоту анкеты, ответ с учётом всей сохранённой переписки и быстрый разбор скриншота чата. Баланс токенов с пробными начислениями и оплатой в Telegram Stars. Мини-приложение для истории, правки и баланса.
Не вошло
Подключение к приложениям знакомств и отправка сообщений за пользователя, нативное мобильное приложение и любая автоматизация от его имени. Цены пока проверяются как гипотезы.

Что сделано

  1. СкриншотПользователь отправляет скриншот боту или загружает его в мини-приложении — либо вставляет последнее сообщение собеседника.
  2. РаспознаваниеОдин вызов мультимодальной модели читает картинку и возвращает структурированные данные: анкета, переписка или ни то ни другое. Неподходящая картинка отклоняется без списания.
  3. АнализАссистент описывает этап общения, интерес собеседника по шкале от 1 до 10, риски и следующий шаг.
  4. СообщениеОдин вызов текстовой модели пишет одно сообщение — по анализу, а для ответа ещё и по сохранённой переписке.
  5. Правка и сохранениеВ мини-приложении пользователь правит черновик перед сохранением; сохранённый текст становится частью истории для следующего ответа.

Моя роль

Сделано мной
Продукт с первой версии: сценарии и промпты, 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 с отдельными бета-средой и рабочей средой

Обсудим похожую задачу?

Напишите на почту или в Telegram — расскажу подробнее о любом решении из этого кейса.