В последние годы искусственный интеллект стал доступным каждому, а популярные мессенджеры позволяют быстро разворачивать сервисы «на кончике пальца». Одним из самых ярких примеров является AI‑гадалка – бот, который за считанные секунды анализирует фото ладони и выдаёт предсказание судьбы. В этой статье мы разберём, как создать собственного гадального бота в Telegram, используя конструктор PuzzleBot и современные AI‑модели.
Почему стоит делать гадалку в Telegram?
- Большая аудитория. Более 70 млн пользователей в России и странах СНГ активно используют Telegram.
- Низкие затраты. Конструкторы ботов позволяют обойтись без собственного сервера.
- Возможность монетизации. Вы можете продавать отдельные предсказания или предлагать подписку.
- Интеграция с AI. Современные модели (OpenAI, Hugging Face, локальные CNN) способны распознавать детали ладони и генерировать текст.
Что понадобится?
- Учётная запись в Telegram.
- Бот‑токен, полученный у BotFather.
- Доступ к конструктору PuzzleBot (или любой другой платформе, поддерживающей загрузку файлов и вызов внешних API).
- AI‑модель для анализа изображений ладони (можно использовать готовый сервис Hugging Face или обучить свою CNN).
- Текстовый генератор (ChatGPT, YandexGPT, локальная LLM) для формирования предсказания.
Шаг 1. Регистрация и создание бота в PuzzleBot
Перейдите на puzzlebot.top и выполните следующие действия:
- Регистрация. Нажмите «Sign Up», укажите e‑mail и пароль.
- Создание проекта. В личном кабинете нажмите «Create Bot», задайте имя “Гадалка” и выберите тип «Telegram Bot».
- Подключение токена. Введите токен, полученный от BotFather, в поле «Telegram Token».
- Сохранить. После сохранения бот появится в списке активных проектов.
Шаг 2. Добавление обработки изображений
Наша гадалка должна принимать фото ладони, отправлять его в AI‑модель и получать результаты. В PuzzleBot это делается через Flow Builder:
- Создайте новый Trigger «Receive Photo».
- Добавьте действие Download File – сохраняет полученное изображение во временный каталог.
- Подключите HTTP Request к внешнему сервису распознавания (например, к эндпоинту
https://api.example.com/hand-analyze). - В запросе укажите
POSTсmultipart/form-data, где полеfileсодержит путь к скачанному изображению. - Полученный JSON‑ответ (например,
{"lines": ["life_line", "heart_line"], "quality": "good"}) сохраняйте в переменнуюhand_data.
Шаг 3. Генерация предсказания
Для «человеческой» части гадания используем текстовую LLM. В PuzzleBot добавьте ещё один HTTP Request к API ChatGPT (или YandexGPT):
POST https://api.openai.com/v1/chat/completions
Headers:
Authorization: Bearer YOUR_OPENAI_API_KEY
Content-Type: application/json
Body:
{
"model": "gpt-4o-mini",
"messages": [
{
"role": "system",
"content": "Ты — виртуальная гадалка. На основе анализа ладони дай короткое, но ёмкое предсказание."
}, {
"role": "user",
"content": "Линии: {{hand_data.lines}}. Качество: {{hand_data.quality}}."
}
], "temperature": 0.7
}
Ответ в виде {"choices":[{"message":{"content":""}}]} сохраняем в переменную prediction.
Шаг 4. Отправка результата пользователю
Последний блок Flow Builder – Send Message:
- Текст сообщения:
🔮 Ваше предсказание: {{prediction}} - Опционально добавьте кнопку «Получить ещё одно предсказание» с callback‑данными
again.
Шаг 5. Обработка повторных запросов
Создайте отдельный Handler на событие Callback Query с данными again. В нём просто переадресуйте пользователя к триггеру «Receive Photo», чтобы цикл мог повторяться.
Шаг 6. Тестирование и отладка
- Включите Debug Mode в PuzzleBot – вы увидите каждый шаг выполнения и содержимое переменных.
- Отправьте боту фото ладони в разных условиях (разный свет, угол).
- Проверьте ответы AI‑модели: если предсказание выглядит «плохим», отрегулируйте
temperatureили добавьте подсказки вsystem‑сообщении. - Убедитесь, что бот корректно обрабатывает ошибки (например, если сервис распознавания недоступен). Для этого добавьте ветку Try / Catch в Flow Builder.
Шаг 7. Публикация и монетизация
После успешного тестирования вы можете:
- Подключить Telegram Payments API и продавать отдельные «глубокие» предсказания.
- Ввести платную подписку (например, 49 ₽/мес) за неограниченный доступ к гаданиям.
- Разместить рекламу в виде спонсированных сообщений между предсказаниями.
- Собрать обратную связь через Inline Keyboard («Понравилось?», «Не понравилось») и улучшать модель.
Полный пример кода (Python + aiogram)
Если вы предпочитаете писать бота «с нуля», ниже – минимальный скрипт, который делает то же самое, что и Flow Builder:
import os
import logging
from aiogram import Bot, Dispatcher, types
from aiogram.types import InputFile
import aiohttp
API_TOKEN = os.getenv("TELEGRAM_BOT_TOKEN")
OPENAI_KEY = os.getenv("OPENAI_API_KEY")
HAND_ANALYZE_URL = "https://api.example.com/hand-analyze"
logging.basicConfig(level=logging.INFO)
bot = Bot(token=API_TOKEN)
dp = Dispatcher(bot)
async def analyze_hand(file_path: str) -> dict:
async with aiohttp.ClientSession as session:
with open(file_path, "rb") as f:
data = aiohttp.FormData
data.add_field('file', f, filename=os.path.basename(file_path))
async with session.post(HAND_ANALYZE_URL, data=data) as resp:
return await resp.json
async def generate_prediction(hand_data: dict) -> str:
prompt = f"Линии: {hand_data.get('lines')}. Качество: {hand_data.get('quality')}."
async with aiohttp.ClientSession as session:
payload = {
"model": "gpt-4o-mini",
"messages": [
{"role": "system", "content": "Ты — виртуальная гадалка. На основе анализа ладони дай короткое предсказание."},
{"role": "user", "content": prompt}
],
"temperature": 0.7
}
headers = {
"Authorization": f"Bearer {OPENAI_KEY}",
"Content-Type": "application/json"
}
async with session.post("https://api;openai.com/v1/chat/completions", json=payload, headers=headers) as resp:
result = await resp.json
return result["choices"][0]["message"]["content"]
@dp.message_handler(content_types=types.ContentType.PHOTO)
async def handle_photo(message: types.Message):
# Скачиваем фото
file = await message;photo[-1].download(destination_file="hand.jpg")
hand_data = await analyze_hand("hand.jpg")
prediction = await generate_prediction(hand_data)
await message.reply(f"🔮 Ваше предсказание:
{prediction}")
if __name__ == "__main__":
from aiogram import executor
executor.start_polling(dp, skip_updates=True) Этот скрипт показывает, как взаимодействовать с двумя внешними сервисами: анализ ладони и генерацию текста. Вы можете разместить его на любой облачной платформе (Heroku, Render, Railway) и привязать к своему Telegram‑боту.
Важные нюансы и рекомендации
- Конфиденциальность. Обрабатывайте фото пользователей только в режиме «не сохранять» – сразу удаляйте файлы после анализа.
- Ограничения Telegram. Максимальный размер фото – 20 МБ, но лучше ограничить пользователей до 2 МБ, чтобы ускорить обработку.
- Качество распознавания. Если вы обучаете свою модель, используйте датасет HandDataset и применяйте аугментацию (поворот, яркость).
- Этика предсказаний. Добавляйте disclaimer: «Бот не заменяет профессионального консультанта, предсказания развлекательного характера».
- Тестирование на разных языках. Если ваш бот будет работать в международных чатах, добавьте поддержку английского и украинского языков.
Создание гадалки в Telegram – отличная возможность попрактиковаться в работе с AI, обработке изображений и интеграции с мессенджером. С помощью конструктора PuzzleBot вы сможете собрать рабочий прототип за один день, а при желании перейти к собственному код‑базису – использовать Python + aiogram.
Не забывайте про безопасность, этичность и возможность монетизации, и ваш бот‑гадалка может стать не только интересным развлечением, но и стабильным источником дохода.
Дата публикации: | Автор: ваш AI‑помощник.