Чат - бот "Таролог". От идеи до реализации.

Запрос на создание чат-бота от таролога.
К нам обратились с достаточно нестандартной задачей для нас: создание чат-бота, который будет раскладывать карты таро.
Заказчик пришел со своей идеей и предложил несколько вариантов ее реализации. Задача заключалась в монетизации работы чат-бота, в котором пользователь получал неограниченное количество запросов к боту при месячной оплате доступа. Новым пользователям предложен небольшой “тест-драйв” чат-бота.
Суть заключалась в 2 основных интеграциях (не считая Базы Данных) :
  • онлайн-эквайринг (юкасса, робокасса) и
  • chatgpt от компании openAI.
О них расскажем чуть позже.
1. Формирование и структурирование технического задания
Первоначально запрос был не совсем понятен, так как Заказчик рассказывал достаточно облачную информацию про логику в боте + общее понимание о картах таро (я думаю,что многие даже не представляют что это такое, так что нас можно уже назвать специалистами в этом деле 🙂)
Основную блок- схему нам все-таки предоставили, вот как она выглядит:
Достаточно интересная логика,не так ли?
Информация в принципе была понятна, но были некоторые моменты, которые смущали:
  1. У Заказчика в идее было достаточно много “тестовых” гаданий, было предложено их уменьшить, так как жизненный цикл клиента в боте будет только благодаря бесплатным гаданиям, таким образом заработка с бота будет мало поступать
  2. Расклад виртуальной колоды - изначально было непонятно что это такое и как его выводить без понимания количества карт, которое может находиться в БД.
  3. Работа с chatgpt. Изначально думали про дообучение нейросети, но позже, разобрались с идеей и поняли,что работа будет на основе загруженного промта, который будет отправляться с логикой действий пользователя в бота.
  4. Работа с БД - было неясно как грамотно ее спроектировать,так как самой информации,которая будет храниться в БД - не было.
  5. *на самом деле не ожидали,что база данных будет хранить такое кол-во изображений/ названия/описания карт*, но благо у нас работают профессионалы,которые не побоялись грамотно создать ее.
  6. Начало работы
Начали мы с самого малого - проектирование внутренней архитектуры чат-бота и БД
База данных состояла из 250+ изображений и 300+ описаний карт( так как работа была со строгим поиском в боте, если пользователь решил не выбирать расклад виртуальных карт).
Все описания и изображения в виртуальном раскладе карт отправлялись случайным образом для пользователей, шанс выпадения одинаковых карт в колоде - меньше 1%
  1. Интеграция с chatgpt
Основная проблема заключалась в настройке api chatgpt таким образом,чтобы не было ошибок между запросами бот - нейросеть.
  1. На время разработки работали с нашим аккаунтом openAI, далее Заказчику пришлось создавать свой и оплачивать api доступ для подключения и независимой работы от нас.
  2. Проблема заключалась в том,что промты,которые закладывались в бота были неточными (погрешность составляла от 10 до 30% неправильных ответов по темам и вопросам,которые выбирает и пишет пользователь)
  3. Один из примеров неправильного промта:
Ты профессиональный таролог , я задал вопрос картам, будет ли успешен мой бизнес проект выпали три карты король жезлов, шестёрка пениаклей, четвёрка жезлов перевёрнутая карта, что значит сочетание этих карт”
Этот промт был тестовый без интеграций базы данных и действий пользователя, которые записывались бы в БД и отправлялись в chatgpt
  1. Всегда казалось, чем больше ты объяснишь нейросети что ты хочешь - то более тщательно он тебе опишет твою задачу. Но это не так.
  2. Пришлось прописать более 100 промтов для того,чтобы погрешность упала с 10 до 1% на 1000 запросов пользователя. В любом случае будет идеально, если дообучить нейросеть так, как ты хочешь :) К этому мы стремимся на данный момент.
  3. Интеграция с юкассой
Данная компания достаточно популярна на территории РФ и у них простой и понятный api, поэтому решили интегрироваться вместе с ней.
После того,как Заказчик подписал договор с компанией, мы начали подключаться.
Появились проблемы в интеграции - служба безопасности Юкассы. Мы несколько дней общались с менеджерами по поводу того, что проверка интеграции проходила долго, при этом, были некоторые моменты которые нам нужно было добавить:
  1. По закону, прямой оплаты через телеграм проводить нельзя. На этой основе пришлось делать самописный сайт на Django и проводить через него “шлюз” перехода с бота на лендинг и через лендинг прямую оплату в юкассу.
  2. Мы все это реализовали, но служба безопасности была непреклонна к тому, что видимо заподозрила в данной идеологии работы бота что-то неладное.
  3. Нам подключили в любом случае интеграцию, но, к сожалению, без оплаты по банковской карты. Только через сбер пэй или тинькофф пэй. Заказчика это не устроило и мы начали искать другие виды онлайн-эквайринга.
А должна была быть еще оплата банковской картой 🙁
Интеграция с робокассой
  1. Заказчик нам сам посоветовал попробовать интегрироваться с компанией robokassa. И, как ни странно, это сработало.
  2. Позвонили в робокассу, узнали всю необходимую информацию. Даже ответа на звонок долго ждать не пришлось.
  3. К сожалению для нас, бэкенд робокассы и вся интеграция с ней была описана только на php. Пришлось “попотеть”, чтобы реализовать рабочую версию, так как основной язык программирования который мы используем - python
  4. Подключили бэк и фронт лендинга к робокассе - даже подтверждения о проверки работы от робокассы и “зеленого коридора” на подключение долго ждать не пришлось.
Итог
  1. Как итог, сейчас бот работает успешно, в нем интегрирован gpt 3.5 (пока что)
  2. На данный момент бота используют более 2 000 пользователей.
  3. Бота можете посмотреть здесь
Есть вопросы?
Напишите нам!
Made on
Tilda