本教程解释了如何构建可以与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”。
使用/start 命令开始注册。
它列出了所有可能的命令,我们将使用/newbot 注册新的bot。
现在尝试为您的机器人找到一个好名字,我有一些挣扎:
成功注册后,您将收到Botfather的一条消息,即您的机器人已注册,您可以在其中找到它以及令牌访问它。复制此令牌
在与telegram-bot.py
文件相同的目录中创建一个.env
文件,然后添加以下行:
TELEGRAM_API_TOKEN=<your_telegram_api_token>
用Botfather提供的实际电报API令牌替换<your_telegram_api_token>
。
我们现在可以测试您的电报机器人!在您的IDE中,打开一个终端和脚本的路径,使用
启动botpython3 telegram-bot.py
打开链接,您可以在其中找到机器人或使用电报上的搜索栏找到它。单击开始按钮,让我们写点东西。
甜的!我们已经成功实现了第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 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
现在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
处理程序发送回用户。
那就是全部!希望你喜欢这个。下次我们要建立一个Airbnb聊天机器人,该聊天机器人可以用wifi passwort或结帐时间等自定义知识响应客人,听起来很酷吗?
如果您不想错过这篇文章,请访问我的网站并订阅新闻通讯,我真的很感谢您!