Телеграм-бот с ChatGPT на Python за 15 минут
Соберём бота, который отвечает на сообщения через GPT. Понадобятся Python 3.10+, токен бота от BotFather и API-ключ. Модель меняется одной строкой: можно поставить Claude или DeepSeek.
Шаг 1. Создайте бота
Напишите @BotFather в Телеграме, отправьте /newbot, придумайте имя. BotFather пришлёт токен вида 123456:ABC….
Шаг 2. Установите библиотеки
pip install python-telegram-bot openai
Шаг 3. Код бота
Сохраните как bot.py. Ключи берутся из переменных окружения, чтобы не попасть в код.
import os
from openai import AsyncOpenAI
from telegram import Update
from telegram.ext import ApplicationBuilder, ContextTypes, MessageHandler, filters
ai = AsyncOpenAI(base_url="https://api.klinch.cloud/v1", api_key=os.environ["KLINCH_API_KEY"])
async def answer(update: Update, context: ContextTypes.DEFAULT_TYPE):
r = await ai.chat.completions.create(
model="gpt-6.1-sol", # или claude-sonnet-5-5, deepseek-v4-pro
messages=[
{"role": "system", "content": "Отвечай коротко и по делу."},
{"role": "user", "content": update.message.text},
],
max_tokens=800,
)
await update.message.reply_text(r.choices[0].message.content)
app = ApplicationBuilder().token(os.environ["TELEGRAM_TOKEN"]).build()
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, answer))
app.run_polling()
Шаг 4. Запуск
export TELEGRAM_TOKEN="123456:ABC…"
export KLINCH_API_KEY="kl_live_…"
python bot.py
На Windows вместо export в PowerShell используйте $env:TELEGRAM_TOKEN="…".
Что дальше
- Храните историю диалога в
context.user_data, чтобы бот помнил разговор. - Для дешёвых массовых ответов поставьте DeepSeek, для сложных вопросов Claude.
- Разверните бота на любом VPS: ему нужен только исходящий доступ к Телеграму и к адресу API.