如何使用ChatGpt集成构建电报机器人。
#python #telegram #bot #chatgpt

本教程解释了如何构建可以与OpenAI Chatgpt互动的自定义电报聊天机器人。该教程用Python编写,并使用Python-Telegram-bot和Openai套件。

1)创建电报聊天机器人

打开您的IDE并创建一个名为telegram-bot.py

的文件

我们将使用此https://github.com/python-telegram-bot/python-telegram-bot软件包,该软件包将帮助我们创建电报机器人。确保使用

安装它

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()

我们定义了两个处理程序,一个命令助手(因此,如果您在电报中输入 /启动)和一个消息处理程序。< /p>

用于测试目的的消息处理程序(funcion Echo)仅回馈用户键入的内容。因此,让我们尝试一下机器人。但是,在我们可以做到这一点之前,我们需要在电报上注册机器人以获取API_KEY。

1.1)在电报上注册我们的机器人

前往https://web.telegram.org/k/并使用智能手机登录。使用搜索栏搜索“ botfather”。

Image description

使用/start 命令开始注册。

它列出了所有可能的命令,我们将使用/newbot 注册新的bot。

现在尝试为您的机器人找到一个好名字,我有一些挣扎:

Image description
成功注册后,您将收到Botfather的一条消息,即您的机器人已注册,您可以在其中找到它以及令牌访问它。复制此令牌

Image description

在与telegram-bot.py文件相同的目录中创建一个.env文件,然后添加以下行:

TELEGRAM_API_TOKEN=<your_telegram_api_token>

用Botfather提供的实际电报API令牌替换<your_telegram_api_token>


我们现在可以测试您的电报机器人!在您的IDE中,打开一个终端和脚本的路径,使用

启动bot

python3 telegram-bot.py

打开链接,您可以在其中找到机器人或使用电报上的搜索栏找到它。单击开始按钮,让我们写点东西。

Image description
甜的!我们已经成功实现了第1部分。我们现在需要做的是将机器人与Chatgpt联系起来。这个想法很简单,机器人正在吸引用户输入。我们将使用此输入查询chatgpt,并将答案从chatgpt重定向回我们的用户。放手!

2)创建CHAT-GPT客户端

让我们创建一个将处理所有chatgpt东西的新的python文件,我将其称为

gatgpt_client.pyâ。

我们将使用官方的Openai Python软件包来查询Chatgpt API。让我们使用

安装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 comletion.choices[0].message['content']
    except Exception as e:
        print(f"An error occurred: {e}")
        return ""  # Return an empty string or handle the error appropriately

现在move to the openAI website并获取您的令牌。

将API键放入.env文件中,添加以下行:

OPENAI_API_KEY="<your_openai_api_key>"

用实际的OpenAI API键替换<your_openai_api_key>

要在Echo处理程序中使用OpenAI集成,我们可以用以下内容替换Line 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函数,该功能将使用OpenAI API生成响应。然后,响应将通过echo处理程序发送回用户。

Image description

那就是全部!希望你喜欢这个。下次我们要建立一个Airbnb聊天机器人,该聊天机器人可以用wifi passwort或结帐时间等自定义知识响应客人,听起来很酷吗?

如果您不想错过这篇文章,请访问我的网站并订阅新闻通讯,我真的很感谢您!

https://jhayer.tech