Как создать Telegram-бота с интеграцией ChatGPT.

В этом руководстве пошагово объясняется, как создать собственный Telegram-чатбот, способный взаимодействовать с OpenAI ChatGPT. Учебник написан на языке Python и использует пакеты python-telegram-bot и openai.

1) Создание чатбота Telegram

Откройте вашу IDE и создайте файл с именем telegram-bot.py

Мы будем использовать этот пакет https://github.com/python-telegram-bot/python-telegram-bot, который поможет нам создать telegram-бота. Обязательно установите его с помощью

pip3 install python-telegram-bot

После установки вставьте этот код в файл telegram-bot.py:

import logging
import os
from telegram import Update
from telegram.ext import (ApplicationBuilder, CommandHandler, ContextTypes,
                          MessageHandler, filters)

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

async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
    await context.bot.send_message(chat_id=update.effective_chat.id, text="I'm a bot, please talk to me!")

async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE):
    await context.bot.send_message(chat_id=update.effective_chat.id, text=update.message.text)

if __name__ == '__main__':
    application = ApplicationBuilder().token(TELEGRAM_API_TOKEN).build()

    start_handler = CommandHandler('start', start)
    echo_handler = MessageHandler(filters.TEXT & (~filters.COMMAND), echo)
    application.add_handler(start_handler)
    application.add_handler(echo_handler)

    application.run_polling()

Мы определяем два обработчика, один помощник команды (так, если вы набираете /start в telegram) и один обработчик сообщения.

Обработчик сообщений (funcion echo) для целей тестирования выдает только то, что набрал пользователь. Итак, давайте опробуем нашего бота. Но для этого нам необходимо зарегистрировать нашего бота в telegram, чтобы получить API_KEY.

1.1) Зарегистрируйте нашего бота в telegram

Перейдите на сайт https://web.telegram.org/k/ и войдите в систему со своего смартфона. Воспользуйтесь строкой поиска и найдите “BotFather”.

Как создать Telegram-бота с интеграцией ChatGPT.

Начните регистрацию с помощью команды /start.

В ней перечислены все возможные команды, далее мы переходим к команде /newbot для регистрации нового бота.

Теперь попробуйте найти хорошее имя для своего бота, у меня были некоторые трудности:

Как создать Telegram-бота с интеграцией ChatGPT.

После успешной регистрации вы получите сообщение от BotFather о том, что ваш бот зарегистрирован, где вы можете его найти и токен для доступа к нему. Скопируйте этот токен

Как создать Telegram-бота с интеграцией ChatGPT.

Создайте файл .env в том же каталоге, что и файл telegram-bot.py, и добавьте в него следующую строку:

TELEGRAM_API_TOKEN=<your_telegram_api_token>

Замените на ваш фактический API-токен Telegram, предоставленный BotFather.

Теперь мы можем протестировать вашего telegram-бота! В IDE откройте терминал и по пути, где находится ваш скрипт, запустите бота с помощью команды

python3 telegram-bot.py

Откройте ссылку, по которой вы можете найти своего бота, или воспользуйтесь строкой поиска в telegram, чтобы найти его. Нажмите кнопку запуска и напишите что-нибудь.

Как создать Telegram-бота с интеграцией ChatGPT.

Отлично! Мы успешно выполнили часть 1. Теперь нам нужно подключить нашего бота к ChatGPT. Идея проста: бот получает данные от пользователя. Мы будем запрашивать у ChatGPT эти данные и перенаправлять ответ от ChatGPT обратно нашему пользователю. Поехали!

2) Создание клиента CHAT-GPT

Давайте создадим новый python-файл, который будет обрабатывать все ChatGPT Stuff, я назову его

"chatgpt_client.py".

Для запроса chatgpt api мы будем использовать официальный пакет openai python. Установим пакет openai python с помощью

pip3 install openai

Скопируйте этот код в новый созданный файл:

import os
import openai

openai.api_key = os.getenv("OPENAI_API_KEY")

def request_chat_gpt(user_message):
    try:
        completion = openai.ChatCompletion.create(
            model="gpt-3.5-turbo",
            messages=[
                {"role": "user", "content": user_message}
            ]
        )
        return completion.choices[0].message['content']
    except Exception as e:
        print(f"An error occurred: {e}")
        return ""  # Return an empty string or handle the error appropriately

Теперь перейдите на сайт openAI и получите свой токен.

Поместите ключ API в файл .env, добавьте следующую строку:

OPENAI_API_KEY="<your_openai_api_key>"

Замените <ваш_openai_api_key> на ваш реальный ключ OpenAI API.

Чтобы использовать интеграцию openai в обработчике эха, можно заменить строку await context.bot.send_message(chat_id=update.effective_chat.id, text=update.message.text) на следующую:

response = request_chat_gpt(update.message.text)
await context.bot.send_message(chat_id=update.effective_chat.id, text=response)

Конечно же, не забудьте импортировать функцию

from chatgpt_client import request_chat_gpt

В результате ввод данных пользователем будет отправлен в функцию request_chat_gpt, которая, используя API OpenAI, сгенерирует ответ. Затем ответ будет отправлен обратно пользователю с помощью обработчика echo.

Как создать Telegram-бота с интеграцией ChatGPT.

Вот и все! Надеюсь, вам понравилось. В следующий раз мы создадим чат-бот для AirBnB, который сможет отвечать гостям на вопросы, например, о Wifi Passwort или времени выезда, звучит круто, правда?

Спасибо!

+1
1
+1
0
+1
0
+1
0
+1
1

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *