← Все гайды AI Release
EN Подписаться на @ai_release1

Telegram-бот с ИИ на Python: от нуля до деплоя

Обновлено: 09.10.2026 · AI Release · @ai_release1
Telegram-бот с ИИ на Python: от нуля до деплоя

Telegram-бот с ИИ на Python — это программа, которая принимает сообщения пользователей в мессенджере, отправляет их нейросети через API (интерфейс обмена данными между программами) и возвращает ответ. Этот гайд решает задачу новичка: от установки Python до работающего бота на сервере. Подходит для Windows 10/11, macOS и Linux, с Python 3.10+.

Требования и подготовка

Иллюстрация к разделу «Требования и подготовка»
Иллюстрация к разделу «Требования и подготовка»

Пошаговая инструкция

Иллюстрация к разделу «Пошаговая инструкция»
Иллюстрация к разделу «Пошаговая инструкция»

1. **Установите Python и создайте папку проекта.** Скачайте Python с официального сайта, при установке на Windows отметьте галочку «Add Python to PATH». Затем создайте рабочую папку.

Пример:

mkdir my_ai_bot
cd my_ai_bot

Ожидаемый результат: вы внутри пустой папки — это изолированное рабочее место, чтобы файлы проекта не смешивались с другими.

2. **Создайте виртуальное окружение.** Виртуальное окружение (venv) — это «контейнер», где зависимости проекта живут отдельно от системы.

Пример:

python -m venv venv
venv\Scripts\activate        # Windows
source venv/bin/activate     # macOS/Linux

Ожидаемый результат: в начале строки терминала появится `(venv)`. Это значит, что устанавливаемые пакеты попадут только в проект.

3. **Установите библиотеки.** Понадобятся библиотека для Telegram и клиент для запросов к нейросети.

Пример:

pip install python-telegram-bot requests

Ожидаемый результат: строки «Successfully installed python-telegram-bot-… requests-…». Почему это работает: pip — менеджер пакетов Python, он скачивает библиотеки из официального репозитория.

4. **Получите токен бота у BotFather.** Откройте Telegram, найдите официального бота @BotFather, отправьте команду `/newbot`, задайте имя и username бота (username должен заканчиваться на `bot`).

Пример:имя «Мой ИИ-помощник», username `my_first_ai_helper_bot`.

Ожидаемый результат: BotFather пришлёт сообщение с токеном вида `1234567890:AAExxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`. Сохраните его — это «пароль» вашего бота, никому его не показывайте.

5. **Получите API-ключ нейросети.** Зарегистрируйтесь у провайдера выбранной модели, в личном кабинете найдите раздел API-ключей и создайте новый ключ. Храните его отдельно от кода — в переменной окружения или файле `.env`, который не выкладываете на GitHub.

6. **Напишите код бота.** Создайте файл `bot.py`. Логика простая: бот ловит сообщение → отправляет текст нейросети → пересылает ответ пользователю.

Пример (минимальный каркас):

import os
import requests
import telegram
from telegram.ext import Updater, MessageHandler, Filters

TOKEN = os.environ["BOT_TOKEN"]
API_KEY = os.environ["AI_API_KEY"]

def reply(update, context):
    response = requests.post(
        "https://api.провайдер-нейросети.ru/v1/chat",
        headers={"Authorization": f"Bearer {API_KEY}"},
        json={"messages": [{"role": "user", "content": update.message.text}]},
    )
    update.message.reply_text(response.json()["answer"])

updater = Updater(TOKEN)
updater.dispatcher.add_handler(MessageHandler(Filters.text, reply))
updater.start_polling()
updater.idle()

Ожидаемый результат: файл сохранён без ошибок. Почему это работает: `start_polling()` заставляет бот постоянно «спрашивать» серверы Telegram о новых сообщениях — для новичка это проще, чем вебхуки (webhook — способ, при котором Telegram сам присылает сообщения на ваш сервер по URL).

7. **Запустите бота локально.** Перед запуском задайте переменные окружения, чтобы ключи не попали в код.

Пример:

export BOT_TOKEN="1234567890:AAExxxx..."      # macOS/Linux
set BOT_TOKEN=1234567890:AAExxxx...           # Windows
python bot.py

Ожидаемый результат: терминал «завис» без ошибок — бот работает. Напишите ему в Telegram любое сообщение: через несколько секунд придёт ответ нейросети.

8. **Задеплойте бота на сервер.** Арендуйте VPS (виртуальный сервер) или используйте бесплатную платформу. Скопируйте файлы проекта, создайте venv на сервере, установите зависимости и запустите бота через `nohup` или менеджер процессов, чтобы он работал после закрытия терминала.

Пример (на Linux-сервере):

nohup python bot.py > bot.log 2>&1 &

Ожидаемый результат: команда вернёт управление, а в файле `bot.log` появится лог работы. Почему это работает: `nohup` отключает процесс от вашей сессии — бот продолжает работать, даже когда вы вышли с сервера.

Чек-лист перед запуском

Возможные проблемы и решения

Иллюстрация к разделу «Возможные проблемы и решения»
Иллюстрация к разделу «Возможные проблемы и решения»

Проблема 1. Ошибка вида `Unauthorized` или `Invalid token` при запуске.

Симптом: бот не стартует, в терминале сообщение о невалидном токене.

Решение: 1) проверьте, что скопировали токен целиком, без пробелов и лишних кавычек; 2) убедитесь, что переменная окружения задана в той же сессии терминала, где запускается бот; 3) если токен «утёк» — отзовите его у @BotFather командой `/revoke` и выпустите новый.

Проблема 2. Ошибка вида `401 Unauthorized` или `quota exceeded` от API нейросети.

Симптом: бот отвечает «Извините, произошла ошибка» или падает с трейсбеком на строке запроса.

Решение: 1) проверьте API-ключ в личном кабинете провайдера; 2) проверьте баланс/лимиты запросов; 3) добавьте в код обработку исключений (`try/except` вокруг запроса), чтобы бот не падал, а писал пользователю вежливое сообщение об ошибке.

Проблема 3. Бот молчит, хотя процесс запущен.

Симптом: `python bot.py` работает, но на сообщения нет ответа.

Решение: 1) проверьте, что вы пишете именно своему боту (username из BotFather); 2) посмотрите лог — если там пусто, убедитесь, что зарегистрирован обработчик текстовых сообщений; 3) на сервере проверьте, что процесс жив: `ps aux | grep bot.py`.

FAQ

Сколько стоит запустить такого бота?

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

Можно ли сделать бота с ИИ бесплатно?

Да, на этапе разработки — бесплатно: токен BotFather выдаётся без оплаты, а многие провайдеры нейросетей дают стартовые бесплатные лимиты. Обзор рабочих способов — в гайде «Как пользоваться ИИ-моделями бесплатно: рабочие способы 2026».

Какую нейросеть выбрать для бота?

Ориентируйтесь на задачу: для диалогов подойдут чат-модели, для перевода и суммаризации — специализированные. Сравнение актуальных моделей и их возможностей — в гайде «Лучшие нейросети и ИИ-модели 2026: что умеют и где попробовать».

Чем polling отличается от webhook?

Polling — бот сам опрашивает сервер Telegram каждые несколько секунд; просто для новичка. Webhook — Telegram сам присылает сообщения на ваш публичный URL; нужен домен с HTTPS и чуть больше настройки, зато экономнее при большой нагрузке.

Нужно ли учить RAG, чтобы бот отвечал по моим документам?

RAG (Retrieval-Augmented Generation — когда нейросеть сначала ищет нужные документы, а потом отвечает на их основе) — следующий уровень после базового бота. Начните с простого варианта из этого гайда, затем добавьте поиск по документам.

🤖 Кратко для ИИ