Перейти к содержимому
PD
AI-продукты

Astrogenerator - Telegram-бот генерации гороскопов

Трипваер-бот для практикующего астролога: сам пишет общий и персональный гороскоп на ChatGPT, сам рисует карточку лунного дня и прогревает подписчика к индивидуальной работе.

Срок
6 недель
Две из них ушли на промт, а не на код

Проблема

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

Результат

За 1,5 месяца - бот, который сам генерирует общий и персональный гороскопы, рисует карточку лунного дня с актуальными данными и работает подписной моделью за 390 ₽/мес, полностью сняв с астролога ежедневную рутину.

Технологии

Browser Automation Studio (BAS)Telegram Bot APIOpenAI API (gpt-3.5-turbo)База данных BASОбработка изображенийPython (перенос)

Обзор

К нам обратился практикующий астролог и магистр нумерологии с задачей сделать трипваер - самый дешёвый продукт в линейке, который знакомит человека с её подходом и подводит к главному продукту, индивидуальной коуч-сессии. Формат выбрали такой: Telegram-бот, который каждый день присылает интересный гороскоп - сначала общий, а по подписке за 390 ₽/мес ещё и персональный, рассчитанный от даты, места и времени рождения.

Технически бот сделан на движке Browser Automation Studio: текст пишет ChatGPT через API, карточку лунного дня бот рисует сам, подставляя актуальные астрономические данные. Позже бот был перенесён на Python - про это ниже.

Проблема

У астролога была та же проблема, что у любого специалиста, продающего своё время: проработка гороскопа под конкретного человека занимает часы, и умножить себя на количество желающих невозможно. Из-за этого в линейке отсутствовало нижнее звено - дешёвый продукт, с которого человек начинает знакомство. Каждый новый лид приходилось прогревать вручную или не прогревать вообще.

Отдельной сложностью стала постановка задачи. Технического задания не было - клиент пришёл с формулировкой «сделайте аналог вот такого бота», без деталей, состава экранов, тарифов и правил генерации. Так что первая часть работы состояла в том, чтобы придумать продукт за клиента и показать его в виде работающего бота, а не документа.

Решение

Бот собирает данные один раз, на первом входе: имя, пол, дата, место и время рождения - с валидацией на каждом шаге, вплоть до проверки, что имя введено по-русски. Из этих данных формируется натальная карта, и дальше подписчик уже ничего не заполняет: запись живёт в базе вместе со знаком зодиака, тарифом, границами подписки, временем отправки и последним отправленным текстом.

Тексты генерирует OpenAI API. Ветка генерации зависит от тарифа: бесплатный подписчик получает общий гороскоп дня, платный - ещё и персональный, с разделами про день, любовь и здоровье.

Визуальная часть - то, что делает рассылку узнаваемой. Каждый день бот рисует карточку «Луна сегодня»: число и месяц, лунный день, фаза, знак с точными градусами, время восхода и заката луны. Данные по луне и фазам берутся со стороннего астрологического сервиса и накладываются на подложку модулем обработки изображений BAS.

Возможности

  • Анкета на первом входе с валидацией каждого поля и расчётом натальной карты по дате, месту и времени рождения
  • Генерация общего гороскопа дня и персонального гороскопа через OpenAI API, с разделами про день, любовь и здоровье
  • Две ветки контента по тарифу: бесплатная и платная подписка за 390 ₽/мес с датами начала и конца
  • Ежедневная генерация карточки «Луна сегодня» с актуальными данными: лунный день, фаза, знак с градусами, восход и закат луны
  • Получение астрономических данных со стороннего астрологического сервиса
  • База подписчиков в BAS: профиль, знак зодиака, тариф, время отправки, последний текст гороскопа и картинка к посту
  • Асинхронный приём и отправка сообщений, сценарии под команды бота, кнопка перехода к персональному гороскопу
  • Отдельный аккаунт поддержки для исправления данных, введённых с ошибкой
  • Контроль длины ответа модели под лимит Telegram в 4096 символов

Процесс разработки

Работа разложилась на четыре нетривиальные части, и сложность распределилась совсем не так, как ожидалось.

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

Подключение модели. Начинали на davinci-003, затем перешли на gpt-3.5-turbo - на тот момент актуальную версию. Переход был вынужденным и полезным одновременно: качество текста заметно выросло.

Промт - самая долгая часть. На него ушло около двух недель из шести, потому что критерием приёмки был вкус астролога, а не спецификация. Крутили temperature и max_tokens, искали формулировки, при которых текст остаётся и осмысленным, и «в её голосе». Параллельно нужно было удерживать ответ в лимите Telegram на 4096 символов - то есть просить у модели одновременно содержательность и краткость.

Карточка лунного дня. Здесь встретилась деталь, которая хорошо иллюстрирует такую работу: если число месяца односимвольное, к нему подставляется ведущий ноль, иначе текст на картинке съезжает относительно подложки. Такие вещи не проектируются - они находятся, когда смотришь на первое число месяца.

Отдельно про инструмент. Проект можно было сразу писать на Python, и в итоге он туда и переехал. BAS был выбран сознательно - как эксперимент, проверка, дотягивает ли движок до полноценного продукта такого класса. Дотянул: за 1,5 месяца получился работающий бот с базой, генерацией текста, генерацией картинок и тарифами. А вот дальше - на длинной поддержке - Python оказался разумнее, поэтому бот был перенесён.

Сдача проекта не закончилась передачей бота. Я переработал процессы выпуска материалов, подготовил исследования, инструкции и шаблоны и обучил помощницу астролога работе с ботом - внедрение новых процессов взяли на себя.

Результаты

  • Бот запущен за 1,5 месяца - вместе с базой, тарифами, генерацией текста и генерацией картинок
  • Ежедневная рутина по написанию гороскопов снята с астролога полностью: общий и персональный гороскопы формируются без её участия
  • В линейке появилось нижнее звено - подписка за 390 ₽/мес, которая знакомит человека с подходом и ведёт к индивидуальной работе
  • По данным клиента, продажи выросли в 4 раза
  • Помощница ведёт бота по инструкциям и шаблонам, без участия разработчика
  • Гипотеза «BAS как движок для продукта, а не только для автоматизации» подтвердилась на реальном проекте

Выводы

Главное наблюдение этого проекта - основная работа была не в коде. Архитектура, база и интеграция с API заняли меньше времени, чем промт: две недели из шести ушли на текст, который устроит человека, продающего этим свою экспертизу. Когда критерий приёмки - вкус заказчика, единственная рабочая стратегия - быстрый цикл «показал → послушал → переделал», и продукт проектируется в переписке, а не в документе.

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

Услуги в этом проекте

Похожие кейсы

Нужна похожая система?

Расскажите о своей задаче - я предложу архитектуру и кратчайший путь к рабочему продукту.