Как создать бота-гадалку в Telegram: пошаговое руководство с кодом и ИИ

Гайд по созданию бота-гадалки в Telegram: Tarot, нумерология и ИИ без кода или на Python. Запустите свой мистический бизнес сегодня!

Сегодня всё больше пользователей интересуются эзотерикой, Таро и нумерологией․ Telegram‑бот‑гадалка позволяет предлагать персональные прогнозы, не выходя из мессенджера․ В этой статье мы подробно разберём, как написать гадалку в Telegram с нуля, используя как код, так и без‑кодовые конструкторы․


Содержание

  1. Регистрация бота через BotFather
  2. Выбор способа разработки
  3. Пример кода на Python (python‑telegram‑bot)
  4. Интеграция с ИИ‑генерацией предсказаний (ChatGPT)
  5. Тестирование и запуск
  6. Добавление бота в чаты и каналы
  7. Советы по продвижению и монетизации
  8. Часто задаваемые вопросы

Регистрация бота через BotFather

Первый шаг – получить токен доступа к Bot API․

  1. Откройте Telegram и найдите бота @BotFather․
  2. Отправьте команду /newbot и следуйте инструкциям:
    • Придумайте имя бота (например, Гадалка Мира);
    • Укажите username, оканчивающийся на _bot или bot (например, garadka_bot)․
  3. BotFather пришлёт вам токен вида 123456789:AAHFsfksJdK․․․ ․ Сохраните его – он понадобится для подключения к API․
  4. Опционально: настроьте описание, foto и команды через /setcommands (например, start – запустить бота, tarot – гадание на Таро)․

Важно! Никогда не публикуйте токен в открытых репозиториях или чатах․


Выбор способа разработки

Существует три основных пути:

  • Код самостоятельно – полный контроль над логикой, возможность интеграции с любыми API (Таро, нумерология, ИИ)․
  • Конструкторы без кода (BotPenguin, Smartbot Pro, ManyChat и др․) – быстрый старт, визуальный редактор сценариев․
  • Гибридный подход – базовый бот в конструкторе + вебхуки для вызова внешних сервисов (например, ChatGPT)․

Для демонстрации мы рассмотрим вариант самостоятельной разработки на Python, так как он наиболее гибок и подходит для добавления ИИ‑генерации предсказаний․


Пример кода на Python (python‑telegram‑bot)

Установим необходимые зависимости:

pip install python-telegram-bot==20․3 requests openai

Ниже – минимальный рабочий пример бота‑гадалки, который:

  • Отвечает на /start и /help;
  • По команде /tarot вытягивает случайную карту из колоды Таро и даёт краткое толкование;
  • По команде /ai запрашивает у ChatGPT персональное предсказание на основе введённого пользователем вопроса․

Структура проекта

  • bot․py – основной файл с логикой бота;
  • tarot․json – файл с описанием карт (можно хранить в базе, но для простоты используем JSON);
  • ․env – файл с переменными окружения (токен Telegram, ключ OpenAI)․

Файл tarot․json

[
 {"name":"Шут","meaning":"Начало нового пути, спонтанность, риск"},
 {"name":"Маг","meaning":"Воля, умение реализовывать идеи, ресурсы"},
 {"name":"Жрица","meaning":"Интуиция, тайны, внутренний голос"},
 {"name":"Императрица","meaning":"Изобилие, творчество, забота"},
 {"name":"Император","meaning":"Авторитет, структура, контроль"},
 {"name":"Иерофант","meaning":"Традиции, обучение, совет"},
 {"name":"Влюблённые","meaning":"Выбор, отношения, гармония"},
 {"name":"Колесница","meaning":"Победа, движение вперёд, решимость"},
 {"name":"Сила","meaning":"Внутренняя сила, смелость, сострадание"},
 {"name":"Отшельник","meaning":"Уединение, поиск истины, мудрость"},
 {"name":"Колесо Фортуны","meaning":"Перемены, судьба, циклы"},
 {"name":"Справедливость","meaning":"Баланс, честность, закон"},
 {"name":"Повешенный","meaning":"Жертва, новый взгляд, пауза"},
 {"name":"Смерть","meaning":"Преобразование, конец одного этапа, начало другого"},
 {"name":"Умеренность","meaning":"Гармония, умеренность, исцеление"},
 {"name":"Дьявол","meaning":"Зависимости, материализм, тени"},
 {"name":"Башня","meaning":"Внезапные изменения, разрушение, прозрение"},
 {"name":"Звезда","meaning":"Надежда, вдохновение, духовное руководство"},
 {"name":"Луна","meaning":"Иллюзии, интуиция, подсознание"},
 {"name":"Солнце","meaning":"Радость, успех, ясность"},
 {"name":"Суд","meaning":"Переоценка, возрождение, ответственность"},
 {"name":"Мир","meaning":"Завершение, целостность, accomplishment"}
]

Файл bot․py

import os
import json
import random
import logging
from telegram import Update, ForceReply
from telegram․ext import Application, CommandHandler, MessageHandler, filters, ContextTypes
import openai
from dotenv import load_dotenv

load_dotenv # загружаем переменные из ․env

TELEGRAM_TOKEN = os․getenv("TELEGRAM_TOKEN")
OPENAI_API_KEY = os․getenv("OPENAI_API_KEY")
openai․api_key = OPENAI_API_KEY

with open("tarot․json", "r", encoding="utf-8") as f:
 TAROT_DECK = json․load(f)
logging․basicConfig(
 format="%(asctime)s ⎯ %(name)s ⎯ %(levelname)s ⎯ %(message)s", level=logging․INFO
)
logger = logging․getLogger(__name__)

async def start(update: Update, context: ContextTypes․DEFAULT_TYPE) -> None:
 user = update․effective_user rf"Привет, {user․mention_html}! Я гадалка‑бот․ "
 "Воспользуйся командами:"
 "
    " "
  • /tarot – случайное гадание на Таро
  • " "
  • /ai – задать вопрос и получить предсказание от ИИ
  • " "
  • /help – справка
  • " "
", reply_markup=ForceReply(selective=True), ) async def help_command(update: Update, context: ContextTypes․DEFAULT_TYPE) -> None: await update․message․reply_text( "/start – запустить бота " "/tarot – гадание на Таро " "/ai – задать вопрос ИИ " "/help – эта справка" ) async def tarot(update: Update, context: ContextTypes․DEFAULT_TYPE) -> None: card = random․choice(TAROT_DECK) await update․message․reply_text( f"🃏 Ваша карта: {card['name']} " f"🔮 Значение: {card['meaning']}", ) async def ai(update: Update, context: ContextTypes․DEFAULT_TYPE) -> None: await update․message․reply_text( "Напиши свой вопрос, а я попрошу ИИ дать предсказание․" ) context․user_data["awaiting_ai_question"] = True async def handle_message(update: Update, context: ContextTypes․DEFAULT_TYPE) -> None: if context․user_data․get("awaiting_ai_question"): question = update․message․text․strip if not question: await update․message․reply_text("Пожалуйста, введите вопрос․") return try: response = openai․ChatCompletion․create( model="gpt-3․5-turbo", messages=[ {"role": "system", "content": "Ты опытный эзотерик и таролог․ Давай краткое, вдохновляющее предсказание на основе вопроса пользователя․"}, {"role": "user", "content": question}, ], max_tokens=150, temperature=0․7, ) answer = response["choices"][0]["message"]["content"]․strip await update․message․reply_text(f"🔮 Предсказание ИИ: {answer}") except Exception as e: logger․error(f"Ошибка OpenAI: {e}") await update․message․reply_text("Не удалось получить ответ от ИИ․ Попробуйте позже․") finally: context․user_data["awaiting_ai_question"] = False else: await update․message․reply_text("Я не понял команду․ Используйте /help для списка команд․") def main -> None: application = Application․builder․token(TELEGRAM_TOKEN)․build application․add_handler(CommandHandler("start", start)) application․add_handler(CommandHandler("help", help_command)) application․add_handler(CommandHandler("tarot", tarot)) application․add_handler(CommandHandler("ai", ai)) application․add_handler(MessageHandler(filters․TEXT & ~filters․COMMAND, handle_message)) application․run_polling if __name__ == "__main__": main

Запустите бота:

python bot․py

Теперь ваш гадалка‑бот готов принимать команды в Telegram․


Интеграция с ИИ‑генерацией предсказаний (ChatGPT)

В примере выше используется API OpenAI․ Если у вас нет доступа к GPT‑3․5, можно воспользоваться бесплатными аналогами (например, HuggingFace Inference API с моделью google/flan-t5-xl) или локальными моделями через llama․cpp․ Главное – сформировать промпт, который просит модель дать короткое, позитивное и вдохновляющее предсказание, основанное на вопросе пользователя․

Пример промпта для открытой модели:

Ты опытный таролог․ Пользователь спрашивает: "{{question}}"․
Дай короткое (2‑3 предложения) предсказание, которое будет мотивировать и дать ощущение направления․

Тестирование и запуск

  1. Запустите бота локально (python bot․py) и проверьте команды в личном чате с ботом․
  2. Убедитесь, что ответы приходят быстро (менее 2‑3 секунд)․ При задержках проверьте лимиты API и сетевое подключение․
  3. Для продакшена рекомендуется разместить бота на VPS, Heroku, Render или в Docker‑контейнере, настроив вебхук вместо long‑polling․
  4. Настройте логирование (например, вывод в файл bot․log) для отслеживания ошибок․

Добавление бота в чаты и каналы

После успешного тестирования:

  • Перейдите в профиль бота в Telegram, нажмите «Добавить в группу» или «Добавить в канал»․
  • Выберите нужную группу/канал и предоставьте боту права администратора (минимум – право отправлять сообщений и читать историю)․
  • В канале бот может работать только в режиме «admin with rights to post messages» – пользователи будут получать ответы в личных сообщениях, если бот не является администратором канала․

Для удобства можно добавить кнопку «Начать гадание» через InlineKeyboardButton, которая будет отправлять команду /tarot․


Советы по продвижению и монетизации

  • SEO в Telegram: используйте ключевые слова в описании бота и в названии (например, «Гадалка Таро», «Онлайн‑гадалка», «AI предсказания»)․
  • Кросс‑постинг: разместите анонс бота в тематических чатах про эзотерику, нумерологию, личностный рост․
  • Премиум‑функции: предлагайте платные расширенные расклады (например, «Кельтский крест», «Годовой прогноз») через платёжные боты (Stars, Payments API)․
  • Реферальная программа: давайте бонус за приглашение друзей (например, одно бесплатное премиум‑гадание)․
  • Аналитика: подсчитывайте количество запросов, популярные темы вопросов – это поможет улучшать контент и подбирать новые расклады․

Часто задаваемые вопросы

Нужен ли мне опыт программирования?

Не обязательно․ Если вы не хотите писать код, используйте конструкторы (BotPenguin, Smartbot Pro) и подключите внешние сервисы через вебхуки или готовые модули «Таро» и «ИИ»․

Можно ли работать без интернета?

Для базовых гаданий на Таро достаточно локальной колоды (JSON/CSV)․ Для ИИ‑предсказаний требуется доступ к API, поэтому нужен интернет․

Как обеспечить конфиденциальность пользователей?

Не сохраняйте личные данные без согласия․ Если вы храните вопросы и ответы, делайте это в зашифрованном виде и предоставляйте возможность удалить историю․

Сколько стоит хостинг бота?

Минимальный VPS стоит от $3‑5 в месяц․ Бесплатные варианты (Render free tier, Heroku hobby) подходят для тестирования, но могут иметь ограничения по времени работы․

Можно ли добавить другие системы гадания?

Да․ Вы можете добавить нумерологию, руны, И‑цзин, астрологические транзиты – достаточно подготовить соответствующие данные и логику выбора․


Создание гадалки‑бота в Telegram – отличный способ объединить интерес к эзотерике с современными технологиями․ Мы рассмотрели:

  • Регистрацию бота через BotFather;
  • Выбор пути разработки (код, конструкторы, гибрид);
  • Пример рабочего кода на Python с интеграцией Таро и ИИ;
  • Советы по тестированию, запуску и продвижению․

Теперь у вас есть все инструменты, чтобы запустить собственного магического помощника и радовать пользователей персональными предсказаниями прямо в их любимом мессенджере․ Удачи в магическом кодировании!