先决条件

  • 电报账号和电报机人。如果您没有电报机人,您可以按照下面步骤轻松创建一个。
  • 一个OpenAI帐号。您可以在此处创建一个。
  • 系统上安装了Python 3.7或更高版本
  • 使用 pip 安装的请求、剧作家和 dotenv 库

让我们开始吧!

第一步:导入必须的库

在我们开始构建我们的电报机器之前,我们需要导入必须的库。

请求剧作家dotenvos
定时器
点安装

第二步:设置环境变量

首先,是时候设置我们的环境变大了。

load_dotenv

第 4 步:定义 ChatGPT 方法

获取输入框
is_logged_inroot
发信息
获取最后一条消息

这是代码:

获取最后一条消息

该方法首先检索具有此类的最后一个元素的内部文本,然后等待一秒钟并再次检索具有此类的最后一个元素的内部文本。如果两个文本相同,则返回文本。如果不同,则说明上一条消息发生了变化,它会再次调用自己来获取最新的消息。

这是必要的,因为 ChatGPT 可能需要一些时间来生成响应,因此我们需要确保只返回完整的响应,而不是 ChatGPT 仍在生成的响应。

第 5 步:定义 send_and_receive 方法

发送和接收发送消息
发送和接收
  • 该方法将消息作为输入并使用 send_message 方法将其发送到 ChatGPT。
  • 它会等待 ChatGPT 的响应一段时间(时间越长,等待的时间就越长)。
  • 如果它收到响应,它将返回它。
  • 如果在这段时间内没有收到响应,它将重试几次(重试次数越多,等待响应的时间越长)
  • 第三次重试后,将放弃并返回错误信息。

第 6 步:定义电报方法

send_message_to_telegramchat_idmessage_id
check_chat_idchat_idCHAT_ID
check_for_new_updates

它是这样工作的:

send_and_receivesend_message_to_telegram

第 7 步:收听消息

check_for_new_updates_periodicallycheck_for_new_updatesend_and_receivesend_message_to_telegram

这是代码:

第 8 步:启动我们的应用程序

启动浏览器
user_data_dirheadless

运行此脚本时,将发生以下情况:

  1. 将调用 start_browser 函数启动浏览器,导航到 OpenAI Chat 网站,并检查用户是否登录。
  2. 如果用户未登录 OpenAI Chat,将打印一条消息要求用户登录。
  3. 如果用户已登录,将调用 check_for_new_updates_periodically 函数以启动我们代码的主循环,该循环侦听电报消息并做出相应响应。

结果

A conversation about apples

结论

总之,本文向您展示了如何使用 playwright 库和电报 API 为 ChatGPT 创建电报机器人。我们详细解释了每个步骤,并为每个步骤提供了代码片段。

我们希望本教程对您有所帮助,并且您现在对如何为 ChatGPT 创建电报机器人有了更好的了解。请记住,您可以自定义代码以满足您的需要,并试验不同的设置和选项以了解它们如何影响您的机器人的行为。

还值得一提的是 本文的大部分内容由 ChatGPT 撰写,由 OpenAI 训练的大型语言模型。 ChatGPT 能够理解代码并提供清晰的解释和示例,因此对于想要了解更多有关创建机器人和其他应用程序的开发人员来说,它是一个很好的工具。您可以访问 https://beta.openai.com/docs/chat/overview 亲自尝试一下。

The Great Reveal

您可以在此处查看该项目的回购协议。

目前为止就这样了。
再见! 🖖