Туториалы

Telegram-бот с AI на Python: от прототипа до запуска

·4 мин чтения
Как создать Telegram-бота с AI на Python за 30 минут: от нуля до деплоя

Telegram-бот с AI можно собрать быстро, но полезный бот отличается от демо двумя вещами: он знает границы своей задачи и сохраняет контекст так, чтобы пользователю не приходилось повторять одно и то же. Ниже — практический план минимального запуска.

Что нужно до кода

  • Токен Telegram-бота, полученный через BotFather.

  • API-ключ выбранной AI-модели или доступ к внутреннему AI-шлюзу.

  • Описание роли бота: поддержка, запись, генерация текстов, поиск по базе знаний.

  • Правила безопасности: что бот не должен обещать, какие данные нельзя сохранять, когда нужен оператор.

Минимальная архитектура

Для прототипа достаточно обработчика сообщений, функции обращения к модели и простого хранилища истории. Для продакшена добавляют очередь, базу данных, лимиты, админ-панель и мониторинг. Главное — не смешивать бизнес-логику с Telegram-обработчиками: потом бот будет проще расширять.

Пример каркаса

from aiogram import Bot, Dispatcher, types
from aiogram.filters import CommandStart

bot = Bot(token=TELEGRAM_TOKEN)
dp = Dispatcher()

@dp.message(CommandStart())
async def start(message: types.Message):
    await message.answer('Здравствуйте. Опишите задачу, я помогу разобраться.')

@dp.message()
async def handle_message(message: types.Message):
    answer = await ask_ai(user_id=message.from_user.id, text=message.text)
    await message.answer(answer)

async def ask_ai(user_id: int, text: str) -> str:
    # Здесь: загрузить контекст, добавить системную инструкцию, вызвать модель, сохранить ответ.
    return 'AI response'

Системная инструкция

Системная инструкция должна быть конкретной. Плохой вариант: “будь полезным ассистентом”. Хороший вариант: “ты ассистент студии, отвечаешь только про услуги, цены, сроки и запись; если вопрос выходит за рамки, просишь оставить контакт для оператора”. Чем уже задача, тем стабильнее бот.

Контекст и память

Не храните бесконечную историю чата. Для большинства задач достаточно последних сообщений и краткого профиля пользователя: имя, выбранная услуга, город, статус заявки. Всё, что влияет на бизнес-процесс, лучше хранить структурно, а не только в тексте диалога.

Что добавить перед публикацией

  • Лимиты на пользователя и защиту от спама.

  • Логи запросов и ответов без лишних персональных данных.

  • Команду /help и понятный сценарий передачи человеку.

  • Обработку ошибок API, таймаутов и пустых сообщений.

  • Тестовый список диалогов для проверки после каждого изменения промпта.

Деплой

Для небольшого бота подойдёт VPS или PaaS с systemd/supervisor. Webhook удобен для продакшена, polling проще для первого запуска. Важно хранить токены в переменных окружения, а не в коде, и регулярно проверять логи после публикации.

Вывод

Быстрый Telegram-бот — это не только подключение модели. Это сценарий, ограничения, память, логирование и понятная передача сложных случаев человеку. Если заложить эти элементы сразу, прототип можно спокойно развивать в рабочий инструмент.

Читать также