Полный гайд: как без опыта создать сложного ИИ-бота в Telegram с нуля

как создать бота в телеграм? Технологии и медиа

Я не программист. Моя стихия: управление проектами, тексты и коммуникации. Раньше мне казалось, что создание Telegram-бота с подключенной нейросетью: это удел людей, которые годами изучали код.

Но недавно я успешно запустил бота, который генерирует изображения с помощью продвинутой модели Nano Banana 2. Оказалось, что сегодня вам не нужно заучивать синтаксис языка Python. Достаточно понимать логику, знать о подводных камнях, а сам код за вас напишут ChatGPT или Gemini. Главное: правильно ставить им задачи.

В этой статье я собрал весь свой опыт в единый пошаговый гайд. Мы пройдем путь от пустой папки на компьютере до запуска полноценного продукта на удаленном сервере.

Шаг 1: Фундамент и ключи доступа

Для начала нашему боту нужна база в Telegram и «мозги» на серверах нейросети.

  1. Регистрируем бота: Идем в Telegram к официальному @BotFather, отправляем команду /newbot, придумываем имя и получаем API-токен (длинную строку символов).
  2. Получаем доступ к ИИ: Для генерации картинок я использую платформу kie.ai (она стабильно работает и дает доступ к модели nano-banana-2). Регистрируемся там и в личном кабинете создаем свой API-ключ.

Главная проблема новичков:

Утечка ключей. Никогда не вставляйте токены прямо в основной текст вашего кода (файл main.py). Если вы случайно скинете этот код в публичный чат или на GitHub, боты-шпионы найдут ключи за секунды, и ваш баланс у провайдера нейросетей спишут в ноль.

Решение: Создайте в папке с проектом файл с названием .env. Это ваш невидимый сейф. Впишите туда: BOT_TOKEN=ваш_токен и KIE_API_KEY=ваш_ключ. В основном коде просто просите библиотеку python-dotenv доставать ключи оттуда.

Шаг 2: Рабочая среда и правильные библиотеки

Забудьте про встроенный «Блокнот». Скачайте бесплатный редактор кода VS Code (Visual Studio Code). Откройте в нем пустую папку вашего будущего проекта.

Далее мы будем использовать ИИ как нашего персонального разработчика. Вы просто пишете промпт (запрос), а он выдает код. Но чтобы код работал, нужно задать правильные рамки.

Что нужно просить у ИИ-кодера:

  • Писать код на Python с использованием библиотеки aiogram 3.x. Она работает асинхронно: бот не зависнет, если ему напишут 100 человек одновременно.
  • Использовать библиотеку aiohttp для отправки запросов к kie.ai.

Главная проблема:

Конфликт версий. Если просто начать скачивать библиотеки на компьютер, они перемешаются. Бот перестанет работать через неделю из-за обновлений.

Решение: Попросите вашу нейросеть-помощника написать команду для создания «виртуального окружения» (venv). Это изолированная папка внутри проекта, где будут храниться библиотеки только для этого бота.

Шаг 3: Память бота (База данных)

Бот без базы данных: это рыбка с кратковременной памятью. Он не запомнит, кто к нему обращался, и вы не сможете ограничить количество бесплатных запросов (а за каждую генерацию на kie.ai вы платите из своего кармана).

Попросите ИИ добавить в код базу данных SQLite. В ней нужно создать таблицу пользователей: их ID, баланс, счетчик использований за сегодня и дату последнего захода.

Главная проблема:

Блокировка базы (Database is locked). Если использовать стандартную библиотеку sqlite3, бот попытается записать двух пользователей одновременно и выдаст ошибку.

Решение: Строго укажите ИИ использовать асинхронную библиотеку aiosqlite. Она умеет выстраивать запросы в аккуратную очередь, и бот будет работать стабильно.

Шаг 4: Логика диалога (Машина состояний)

Представьте, что бот спрашивает: «Что нарисовать?». Вы отвечаете: «Красную машину». Как бот поймет, что это ответ на его вопрос, а не просто сообщение?

Для этого используется FSM (Машина состояний). Вы просите нейросеть прописать статусы. Например, waiting_for_prompt. Когда пользователь нажимает кнопку «Создать фото», бот переводит его в этот статус. Теперь любой текст будет восприниматься как задание для генерации.

Главная проблема:

Пользователь застрял. Человек передумал генерировать картинку, но бот упорно ждет текст и не реагирует на другие команды.

Решение: Обязательно попросите ИИ добавить кнопку «Отмена» или команду /cancel, которая сбрасывает состояние пользователя и возвращает его в главное меню.

Шаг 5: Общение с нейросетью (API запросы)

Теперь нашему боту нужно научиться отправлять ваши пожелания в сервис kie.ai и получать оттуда готовые картинки. Процесс генерации, особенно в сложных моделях вроде Nano Banana 2, занимает время.

Поэтому логика работы должна быть такой (прямо так и формулируйте задачу для своего ИИ-помощника при написании кода):

  1. Создание задачи: Бот отправляет текстовый промпт в kie.ai и получает в ответ task_id (номер задачи), а не саму картинку. Пользователю в этот момент бот пишет: «Рисую шедевр, подождите 30 секунд…».
  2. Проверка статуса (Polling): Бот начинает раз в 3–5 секунд стучаться в API kie.ai с вопросом: «Задача с таким-то task_id уже готова?».
  3. Получение результата: Как только статус меняется на success, бот забирает ссылку на картинку и отправляет её в чат пользователю.

Главная проблема:

Зависание при ошибках API. Серверы нейросетей иногда падают или перегружаются. Если бот не дождется ответа и в коде не прописана обработка ошибок (try/except), он просто «умрет» (выключится).

Решение: Требуйте от ИИ-кодера прописывать обработку исключений. Если сервер kie.ai вернул ошибку или картинка не сгенерировалась за 60 секунд, бот должен прервать попытки, извиниться перед пользователем («Серверы перегружены, попробуйте позже») и продолжить работу, а не закрываться.

Шаг 6: Работа с фото и S3-хранилищем (Продвинутый уровень)

Если вы хотите, чтобы бот не только рисовал по тексту, но и обрабатывал фотографии пользователей (например, стилизовал портреты или менял лица), возникает новая сложность.

Вы не можете напрямую отправить фото из Telegram в kie.ai. Сначала фото нужно где-то сохранить в интернете и получить на него публичную ссылку, которую уже и «скормить» нейросети. Хранить картинки на самом сервере бота быстро станет дорого и неэффективно.

Решение — объектное хранилище S3. Это облачный диск (я использую S3 от российского хостинга Beget), который идеально подходит для картинок.

Логика (объясняем ИИ-кодеру):

  1. Пользователь присылает фото в Telegram.
  2. Бот скачивает его к себе во временную папку.
  3. Бот загружает фото в S3-облако (используя библиотеку boto3) и получает прямую ссылку.
  4. Временный файл на сервере бота удаляется, чтобы не забивать память.
  5. Ссылка из S3 отправляется в kie.ai вместе с текстовым заданием пользователя.

Шаг 7: Запуск на сервере (Деплой на FirstVDS)

Когда код полностью готов и протестирован на вашем компьютере, бота нужно переселить в интернет. Если закрыть ноутбук — бот отключится. Нам нужен сервер, который работает 24/7.

Я арендую недорогие виртуальные серверы (VPS) на платформе FirstVDS. Базового тарифа на операционной системе Ubuntu (Linux) для старта хватит с головой.

Алгоритм переезда (Деплой):

  1. С помощью программ (например, FileZilla или MobaXterm) вы переносите файлы вашего бота на арендованный сервер FirstVDS.
  2. В терминале сервера вы снова создаете виртуальное окружение и устанавливаете все библиотеки из файла requirements.txt (ваш ИИ-помощник подскажет, как его сгенерировать).

Главная проблема:

Бот выключается при закрытии терминала. Если просто запустить бота на сервере командой python main.py, он остановится, как только вы закроете программу на своем компьютере.

Решение:

Использование systemd. Это системная служба Linux. Вы просите свой ИИ-помощник: «Напиши мне инструкцию, как создать файл службы .service для моего бота на Ubuntu». ИИ даст вам пару строчек конфигурации. Вы создаете этот файл на сервере FirstVDS, и теперь система Linux сама будет запускать вашего бота в фоновом режиме. Более того, если бот случайно упадет из-за критической ошибки, systemd автоматически его перезапустит.

Что в итоге?

Создание Telegram-ботов с нейросетями больше не является закрытым клубом для программистов. Сегодня ИИ — это ваш личный senior-разработчик. Ваш главный навык теперь заключается не в том, чтобы заучивать синтаксис кода, а в том, чтобы уметь разбивать большую задачу на мелкие шаги, грамотно ставить ТЗ нейросети и не бояться ошибок в консоли.

Если вам близок такой подход к технологиям и вы хотите первыми узнавать о новых неочевидных фишках в мире ИИ и автоматизации — заглядывайте в мой канал. Там я делюсь своими реальными проектами и обучалками по нейросетям.

Подписывайтесь, будем приручать технологии вместе: Медяный пишет | MAX

Оцените статью
Цифровая память и нейросети | блог Алексея Медяного
×

Долго думал, где проводить: в MAX или Telegram. В итоге решил разыграть по одной подписке на обеих площадках!

🤖
Gemini Pro 6 месяцев
ChatGPT 1 месяц