TelegramGPT-4PythonБотыTutorial

Интеграция GPT-4 в Telegram-бота за 10 минут

Пошаговое руководство по созданию умного Telegram-бота с использованием GPT-4 через API LLM_КИ. Код, примеры и лучшие практики.

Команда LLM_КИ
5 сентября 2025
8 мин

В этой статье мы создадим Telegram-бота, который использует GPT-4 для ответов на вопросы пользователей.


Что нам понадобится


  • API-ключ LLM_КИ
  • Токен Telegram-бота от @BotFather
  • Python 3.8+
  • Библиотеки: openai, python-telegram-bot

  • Шаг 1: Установка зависимостей


    Код (bash):

    pip install openai python-telegram-bot

    Код (text):

    Шаг 2: Создание бота


    Код (python):

    import os

    import logging

    from telegram import Update

    from telegram.ext import Application, CommandHandler, MessageHandler, filters, ContextTypes

    import openai


    # Настройка логирования

    logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO)

    logger = logging.getLogger(__name__)


    # Настройка OpenAI клиента для LLM_КИ

    client = openai.OpenAI(

    api_key="sk-llmki-ai-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",

    base_url="https://llmki.ru/v1"

    )


    async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:

    """Обработчик команды /start"""

    await update.message.reply_text(

    'Привет! Я бот с GPT-4. Задай мне любой вопрос!'

    )


    async def handle_message(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:

    """Обработчик текстовых сообщений"""

    user_message = update.message.text


    try:

    # Отправляем запрос к GPT-4 через LLM_КИ

    response = client.chat.completions.create(

    model="openai/gpt-4o",

    messages=[

    {"role": "system", "content": "Ты helpful ассистент. Отвечай кратко и по делу."},

    {"role": "user", "content": user_message}

    ],

    max_tokens=1000,

    temperature=0.7

    )


    bot_response = response.choices[0].message.content

    await update.message.reply_text(bot_response)


    except Exception as e:

    logger.error(f"Ошибка при обращении к GPT: {e}")

    await update.message.reply_text("Извините, произошла ошибка. Попробуйте позже.")


    def main() -> None:

    """Запуск бота"""

    application = Application.builder().token("YOUR_TELEGRAM_BOT_TOKEN").build()


    application.add_handler(CommandHandler("start", start))

    application.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_message))


    application.run_polling()


    if __name__ == '__main__':

    main()

    Код (text):

    Шаг 3: Получение токенов


  • **API-ключ LLM_КИ**: Зарегистрируйтесь на [llmki.ru](https://llmki.ru/register) и получите бесплатный API-ключ
  • **Telegram Bot Token**: Напишите [@BotFather](https://t.me/BotFather) и создайте нового бота

  • Шаг 4: Запуск


    Замените `sk-llmki-ai-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx` и `YOUR_TELEGRAM_BOT_TOKEN` на реальные значения и запустите:


    Код (bash):

    python bot.py

    Код (text):

    Дополнительные возможности


    Контекст разговора


    Для сохранения контекста между сообщениями добавьте хранение истории:


    Код (python):

    user_contexts = {}


    async def handle_message(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:

    user_id = update.effective_user.id

    user_message = update.message.text


    # Получаем или создаем контекст пользователя

    if user_id not in user_contexts:

    user_contexts[user_id] = [

    {"role": "system", "content": "Ты helpful ассистент. Отвечай кратко и по делу."}

    ]


    # Добавляем сообщение пользователя

    user_contexts[user_id].append({"role": "user", "content": user_message})


    # Ограничиваем длину контекста (последние 10 сообщений)

    if len(user_contexts[user_id]) > 21: # system + 10 пар user/assistant

    user_contexts[user_id] = user_contexts[user_id][:1] + user_contexts[user_id][-20:]


    try:

    response = client.chat.completions.create(

    model="openai/gpt-4o",

    messages=user_contexts[user_id],

    max_tokens=1000,

    temperature=0.7

    )


    bot_response = response.choices[0].message.content


    # Добавляем ответ бота в контекст

    user_contexts[user_id].append({"role": "assistant", "content": bot_response})


    await update.message.reply_text(bot_response)


    except Exception as e:

    logger.error(f"Ошибка при обращении к GPT: {e}")

    await update.message.reply_text("Извините, произошла ошибка. Попробуйте позже.")

    Код (text):

    Смена модели


    Добавьте команду для выбора модели:


    Код (python):

    user_models = {}


    async def set_model(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:

    """Команда для смены модели"""

    if context.args:

    model = context.args[0]

    user_id = update.effective_user.id


    available_models = [

    "openai/gpt-4o",

    "anthropic/claude-3.5-sonnet",

    "google/gemini-pro",

    "meta/llama-3.1-70b"

    ]


    if model in available_models:

    user_models[user_id] = model

    await update.message.reply_text(f"Модель изменена на {model}")

    else:

    await update.message.reply_text(f"Доступные модели: {', '.join(available_models)}")

    else:

    await update.message.reply_text("Использование: /model <название_модели>")


    # Добавить в main():

    application.add_handler(CommandHandler("model", set_model))

    Код (text):

    Заключение


    Всего за несколько шагов мы создали полнофункционального Telegram-бота с GPT-4. API LLM_КИ позволяет легко интегрировать различные языковые модели с минимальными изменениями в коде.


    Что дальше?


  • Добавьте обработку изображений с помощью GPT-4V
  • Интегрируйте базу данных для хранения пользовательских настроек
  • Реализуйте систему ролей и персонализации ответов
  • Добавьте поддержку голосовых сообщений

  • Попробуйте сами и делитесь результатами!

    Другие статьи

    СтудентыУчёба
    Как LLM_КИ помогает студентам: учёба без перерасхода
    Конспекты, планы, перефраз и проверка фактов на дешёвых моделях. Готовые промпты и лайфхаки экономии.
    16 ноября 20257 мин
    Читать
    БытСемья
    Как LLM_КИ помогает мамам: быт, меню и списки дел
    Меню на неделю, списки покупок, идеи занятий и вежливые ответы в чатах. Три простых сценария с готовыми шаблонами.
    14 ноября 20256 мин
    Читать
    Статья не найдена — Блог LLM_КИ