← All guides AI Release
RU Subscribe to @ai_release1

An AI-powered Telegram bot in Python: from scratch to deploy

Updated: 09.10.2026 · AI Release · @ai_release1
An AI-powered Telegram bot in Python: from scratch to deploy

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

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

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

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

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

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

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

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

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

FAQ

Нужно ли платить за Telegram-бота?

Нет, Telegram API для ботов бесплатный; платите только за вызовы нейросети. Если бюджет нулевой, посмотрите, как использовать ИИ-модели бесплатно.

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

Начните с недорогой универсальной модели провайдера, а сравнить варианты можно в обзоре лучших нейросетей и моделей.

Чем бот отличается от ИИ-агента?

Бот просто отвечает на сообщения; агент — дополнительно сам выполняет действия (ищет, вызывает инструменты). Если хотите развить проект в эту сторону, пригодится гайд об ИИ-агентах для автоматизации.

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

Да, многие платформы дают бесплатный тариф для небольших приложений; для начала подойдёт и дешёвый VPS — polling-боту не нужен домен.

🤖 AI summary