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`.
Сколько стоит запустить такого бота?
Затраты складываются из VPS (есть бесплатные тарифы у некоторых платформ) и оплаты запросов к нейросети по тарифам провайдера. Точные цены смотрите в актуальных прайсах провайдеров — они регулярно меняются.
Можно ли сделать бота с ИИ бесплатно?
Да, на этапе разработки — бесплатно: токен BotFather выдаётся без оплаты, а многие провайдеры нейросетей дают стартовые бесплатные лимиты. Обзор рабочих способов — в гайде «Как пользоваться ИИ-моделями бесплатно: рабочие способы 2026».
Какую нейросеть выбрать для бота?
Ориентируйтесь на задачу: для диалогов подойдут чат-модели, для перевода и суммаризации — специализированные. Сравнение актуальных моделей и их возможностей — в гайде «Лучшие нейросети и ИИ-модели 2026: что умеют и где попробовать».
Чем polling отличается от webhook?
Polling — бот сам опрашивает сервер Telegram каждые несколько секунд; просто для новичка. Webhook — Telegram сам присылает сообщения на ваш публичный URL; нужен домен с HTTPS и чуть больше настройки, зато экономнее при большой нагрузке.
Нужно ли учить RAG, чтобы бот отвечал по моим документам?
RAG (Retrieval-Augmented Generation — когда нейросеть сначала ищет нужные документы, а потом отвечает на их основе) — следующий уровень после базового бота. Начните с простого варианта из этого гайда, затем добавьте поиск по документам.