Увольняем гадалок: Как за 0$ собрать ИИ-бота в Telegram, который делает расклады Таро и толкует сны не хуже людей
Привет всем! Услуги современных «дипломированных» магов, тарологов и толкователей снов сейчас улетают в космос. При этом эзотерика — это огромный и сверхприбыльный рынок с бешеной вовлеченностью. Как разработчику пройти мимо такого кейса?
Я решил проверить возможности современных LLM-моделей и переложить мистику на плечи искусственного интеллекта. Нейросеть ведь прочитала все книги по психоанализу, досконально знает архетипы К. Г. Юнга и помнит значения всех 78 карт Таро.
В итоге получился полноценный эзотерический Telegram-бот на базе ИИ-агентов, который умеет делать глубокий психологический разбор раскладов Таро и детально толковать сны по системе Миллера. Главная фишка кейса — абсолютная бесплатность инфраструктуры. Бот работает на постоянной основе 24/7, имеет собственный домен, базу данных, а его мозг — связка мощных моделей через API, которая не стоит мне ни цента.
Ниже я без купюр разберу архитектурные мины n8n v2, специфику облака Oracle Cloud, а также поделюсь тем, как планирую монетизировать проект с помощью одной простой продуктовой фишки. Поехали!
Архитектура системы и n8n v2
В качестве визуального бэкенда для проектирования логики я выбрал n8n v2. Это no-code/low-code инструмент для автоматизации, который позволил собрать сложнейший асинхронный автомат состояний без написания сотен строк шаблонного кода для Telegram API.
Вся сессионная логика (состояния sonnik_waiting, taro_waiting, processing) завязана на внутренние Data Tables n8n. Это позволило полностью отказаться от разворачивания отдельной PostgreSQL или Redis, сэкономив ресурсы сервера.
Поток запроса выглядит так: пользователь нажимает кнопку ──> Telegram шлет HTTPS Webhook на сервер ──> n8n проверяет состояние в таблице ──> маршрутизатор распределяет логику на ветку Сонника или Таро ──> код собирает промпты ──> ИИ-Агент выдает ответ в HTML-формате
Грабли №1: Как бесплатно выдать боту «мировой» HTTPS-адрес
Telegram категорически отказывается слать вебхуки на незащищенные http:// протоколы или голые IP-адреса. Нужен домен и SSL-сертификат. Решаем задачу в три шага за 0$:
- Сервер: Регистрируем виртуальную машину Oracle Cloud Always Free (1-2 ГБ RAM для n8n хватает с головой).
- Домен: Чтобы не платить регистраторам, используем бесплатный динамический DNS-сервис DuckDNS. Он выдает домен третьего уровня вида yourbot.duckdns.org и привязывает его к белому IP-адресу инстанса Oracle.
- Шифрование: В терминале сервера разворачиваем Nginx в связке с Certbot (Let's Encrypt). Certbot проверяет наш домен и генерирует валидный SSL-сертификат, а Nginx пробрасывает трафик на внутренний порт n8n (5678).
Грабли №2: Архитектурные мины n8n v2 на удаленном сервере
При переносе проекта с локального ПК на боевой Linux-сервер Oracle мы столкнулись с неочевидным поведением n8n v2.
Мина 1: Конфликт типов данных (String vs Number)
Telegram API передает уникальный идентификатор пользователя chat_id как текстовую строку. Однако современные Data Tables в n8n на сервере требуют строгой типизации. Если колонка в базе определена как Number, попытка записать туда строку валит ноду с ошибкой.
- Решение: Принудительное приведение типов на уровне выражений (Expressions):
Мина 2: Падение потока на пустой выборке (Empty Results)
В конце успешной сессии нода delete_rows очищает базу в целях конфиденциальности. Когда пользователь пишет следующее сообщение, нода data_table_get пытается найти его статус, видит пустую таблицу и аварийно останавливает весь воркфлоу, считая это критической ошибкой. Сигнал до обработчика случайного текста просто не доходил.
- Решение: В настройках (Settings) ноды data_table_get активируем тумблер Always Output Data. Теперь нода в любом случае отдаст пустой JSON-объект [{}], который полетит дальше по конвейеру, активируя кнопку «Перезапустить бота».
Умный динамический Merge вместо капризных стандартных нод
Поскольку Сонник и Таро работают в изолированных ветках, на вход ИИ-Агента должен приходить унифицированный JSON. Использование стандартной ноды Merge (Choose Branch) в n8n v2 вызывало задержки валидации. Мы заменили её на автономную ноду Code (Merge_Prompts):
Она отдает ИИ-Агенту чистые переменные, решая проблему пустых ответов (когда LLM путалась в контекстах выполнения веток).
Промпты, психология и гендерный нейтралитет
Интересный вызов подкинул расклад Таро «Вокзал для двоих» (7 карт, описывающих мысли, чувства и поведение обеих сторон).
Изначально ИИ-агенту было жестко приказано соблюдать гендерный нейтралитет и обращаться к пользователю исключительно на «Вы», так как пол человека до старта неизвестен. Но из-за этого для второй стороны (партнера) бот генерировал роботизированные заголовки вроде «Партнер А» / «Партнер Б», либо путал местоимения, выдавая мужчине, гадающему на жену, фразы в духе «Его мысли: Королева Кубков».
Я решил эту проблему точечным изменением структуры промпта в prepare_tarot_prompts. Вместо навязывания жестких местоимений, мы перевели заголовки позиций расклада на универсальный интерактивный формат:
А в системные инструкции добавили строгое табу: Never use terms like "Партнер А" or "Партнер Б". Теперь текст читается как глубокий, дорогой психологический разбор, адаптированный под любую пару.
Бизнес-модель: Зачем делать бота бесплатным?
Поскольку запросы к ИИ-моделям требуют мощностей, содержать полностью бесплатного бота на дистанции — сомнительное удовольствие. Но я внедрил классическую маркетинговую связку: Лид-магнит + Обязательная подписка (ОПП).
Чтобы получить расклад Таро или толкование своего сна абсолютно бесплатно, пользователь должен подписаться на мой эзотерический Telegram-канал. Бот автоматически проверяет подписку через API и только после этого выдает ответ.
В чём выгода? Бот с базой ИИ имеет огромную вирусную ценность. Люди будут приходить за бесплатными гаданиями, автоматически превращаясь в подписчиков канала. Как только живая аудитория на канале вырастет, проект начнет окупаться и приносить чистую прибыль за счет продажи рекламы другим тарологам, астрологам и эзотерикам. Рынок рекламы в этой нише огромный и щедрый.
Проект запущен, работает как часы и полностью готов к нагрузкам.
👉 Протестировать ИИ-мистику на себе можно здесь: @taro_sonnik_ai_bot
Буду рад вашему фидбеку и вопросам по архитектуре n8n в комментариях! Заменит ли ИИ живых гадалок, или у роботов «нет души» для работы с подсознанием? :)