Вступление: этот гайд решает задачу новичка — сделать работающего Telegram-бота с нейросетью на Python и довести его до запуска на сервере. Гайд универсален: подойдёт для любой современной ОС (Windows, macOS, Linux) с установленным Python 3.10+. Мы не привязываемся к конкретному провайдеру моделей — шаги одинаковы для любого API, который выдаёт вам ключ доступа.


1. Создайте бота в Telegram. Откройте чат с @BotFather, отправьте команду `/newbot`, введите имя и username бота (username должен заканчиваться на `bot`).
Ожидаемый результат: BotFather пришлёт сообщение с токеном вида `123456789:AAH3k...`.
Почему это работает: BotFather — официальный инструмент Telegram для регистрации ботов; токен — это «логин+пароль» вашего бота в одном.
2. Создайте папку проекта и виртуальное окружение. Виртуальное окружение (venv) — изолированная папка, куда ставятся библиотеки проекта, чтобы не ломать системный Python.
mkdir my-ai-bot && cd my-ai-bot
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
Ожидаемый результат: в начале строки терминала появится `(venv)`.
3. Установите библиотеки. Понадобятся библиотека для Telegram API и клиент для нейросети.
pip install python-telegram-bot requests
Ожидаемый результат: строки `Successfully installed python-telegram-bot-... requests-...` в терминале.
Почему это работает: pip — менеджер пакетов Python, он скачивает библиотеки из официального репозитория PyPI.
4. Напишите первый каркас бота. Создайте файл `bot.py`:
import os
import requests
from telegram import Update
from telegram.ext import ApplicationBuilder, MessageHandler, filters, ContextTypes
TELEGRAM_TOKEN = os.environ["TELEGRAM_TOKEN"]
AI_API_KEY = os.environ["AI_API_KEY"]
AI_URL = "https://api.example-ai-provider.com/v1/chat" # возьмите из документации вашего провайдера
async def reply(update: Update, context: ContextTypes.DEFAULT_TYPE):
r = requests.post(AI_URL, headers={"Authorization": f"Bearer {AI_API_KEY}"},
json={"messages": [{"role": "user", "content": update.message.text}]})
await update.message.reply_text(r.json()["reply"])
app = ApplicationBuilder().token(TELEGRAM_TOKEN).build()
app.add_handler(MessageHandler(filters.TEXT, reply))
app.run_polling()
Пример:пользователь пишет «Привет, расскажи анекдот» — бот отправляет текст в модель и возвращает ответ в чат.
Почему это работает: `run_polling()` заставляет бот постоянно «слушать» серверы Telegram — вебсервер и домен не нужны.
5. Запустите бота локально, передав ключи через переменные окружения (так ключи не попадут в код и не утечут в git).
export TELEGRAM_TOKEN="123456789:AAH3k..."
export AI_API_KEY="sk-..."
python bot.py
Ожидаемый результат: в терминале нет ошибок, а в чате бот отвечает на сообщения.
6. Протестируйте сценарии. Напишите боту 3–4 разных сообщения: короткое, длинное, на другом языке.
Ожидаемый результат: ответы приходят за разумное время (обычно 1–5 секунд), без ошибок в терминале.
7. Задеплойте на сервер. Скопируйте проект на VPS, установите зависимости и запустите через `systemd` или менеджер процессов, чтобы бот переживал перезагрузку.
# на сервере Ubuntu
git clone https://github.com/you/my-ai-bot.git && cd my-ai-bot
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
Ожидаемый результат: бот отвечает в Telegram даже после того, как вы закрыли терминал.
Почему это работает: сервер работает 24/7, а polling-подключение боту не нужен «белый» IP или домен.
8. Добавьте файл `requirements.txt`, чтобы деплой был воспроизводимым:
pip freeze > requirements.txt
Чек-лист перед запуском в продакшен:

Нужно ли платить за Telegram-бота?
Нет, Telegram API для ботов бесплатный; платите только за вызовы нейросети. Если бюджет нулевой, посмотрите, как использовать ИИ-модели бесплатно.
Какую модель выбрать для бота?
Начните с недорогой универсальной модели провайдера, а сравнить варианты можно в обзоре лучших нейросетей и моделей.
Чем бот отличается от ИИ-агента?
Бот просто отвечает на сообщения; агент — дополнительно сам выполняет действия (ищет, вызывает инструменты). Если хотите развить проект в эту сторону, пригодится гайд об ИИ-агентах для автоматизации.
Можно ли хостить бота бесплатно?
Да, многие платформы дают бесплатный тариф для небольших приложений; для начала подойдёт и дешёвый VPS — polling-боту не нужен домен.