Этот урок посвящен разработке 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, предоставляющий удобный интерфейс для взаимодействия с моделью.