Создайте Telegram-бота с ChatGPT: пошаговое руководство

Этот урок посвящен разработке Telegram-бота на базе ChatGPT, способного обрабатывать пользовательские запросы и генерировать соответствующие ответы.

Создание Telegram-бота

Для начала необходимо создать бота в Telegram. Найдите бота BotFather. Введите команду /start, затем /newbot. Укажите публичное имя бота и имя пользователя (используется в ссылке на бота). После создания бота настройте его описание, фото, кнопки меню и другие параметры. Скопируйте токен бота – он понадобится для подключения. Запишите токен в отдельную переменную в вашем Python-проекте. Также создайте (или используйте существующий) API-ключ через сайт OpenAI и запишите его в отдельную переменную.

Разработка Python-проекта

Теперь создадим Python-проект для бота.

Установка и импорт библиотеки

Установите библиотеку python-telegram-bot через терминал: pip install python-telegram-bot. Импортируйте её в ваш проект:

import telebot

Подключение к боту

Создайте переменную для бота, используя токен:

bot = telebot.TeleBot("YOUR_BOT_TOKEN") # Замените YOUR_BOT_TOKEN на ваш токен

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

Добавим функцию для обработки команды /start:

@bot.message_handler(commands=['start'])
def hello(message):
    bot.send_message(message.chat.id, "Привет! Я твой ChatGPT-бот, готов тебе помочь!")

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

Создадим функцию для обработки текстовых сообщений:

@bot.message_handler(func=lambda message: True, content_types=['text'])
def main(message):
    text = message.text.lower()
    bot.send_message(message.chat.id, text)

Эта функция принимает сообщение и отправляет его обратно пользователю в нижнем регистре. Запуск проекта с помощью bot.polling() обеспечит постоянную работу бота.

bot.polling()

Интеграция с ChatGPT

Добавим функциональность ChatGPT. Установите библиотеку openai: pip install openai. Импортируйте её:

import openai

Модифицируем функцию main для обработки запросов через ChatGPT:

@bot.message_handler(func=lambda message: True, content_types=['text'])
def main(message):
    text = message.text.lower()
    try:
        response = openai.Completion.create(
            engine="text-davinci-003",
            prompt=text,
            max_tokens=150,
            n=1,
            stop=None,
            temperature=0.7,
            api_key="YOUR_OPENAI_API_KEY" #Замените YOUR_OPENAI_API_KEY на ваш API ключ
        )
        reply = response.choices[0].text.strip()
        bot.send_message(message.chat.id, reply)
    except Exception as e:
        bot.send_message(message.chat.id, f"Ой, что-то не так: {e}")

bot.polling()

Тестирование и заключение

Запустите проект. Бот должен отвечать на ваши вопросы, используя ChatGPT. Использование более старых моделей ChatGPT (например, text-davinci-003) может приводить к задержкам и ограниченному количеству возвращаемых токенов. GPT-4 значительно улучшит производительность. В результате мы получили работающий Telegram-бот, интегрированный с ChatGPT, предоставляющий удобный интерфейс для взаимодействия с моделью.

Что будем искать? Например,программа