65.9K
CodeProject 正在变化。 阅读更多。
Home

设置您自己的 Telegram 机器人和 ChatGPT:初学者指南

starIconstarIconstarIconstarIconstarIcon

5.00/5 (2投票s)

2023年5月30日

CPOL

3分钟阅读

viewsIcon

11446

通过这个为初学者设计的循序渐进指南,了解如何创建你自己的由 OpenAI 的 ChatGPT 驱动的对话 Telegram 机器人。

引言

欢迎来到迷人的软件开发世界!本文专为对使用 ChatGPT(OpenAI 开发的先进语言模型)创建自己的 Telegram 机器人感兴趣的初学者而设计。无论您是爱好者、崭露头角的软件开发人员,还是仅仅是热爱技术的人,本指南都适合您。

目录

  1. Telegram 机器人和 ChatGPT 简介
  2. 设置 Telegram 机器人和 OpenAI API
  3. 将 ChatGPT 与你的 Telegram 机器人集成
  4. 运行你的机器人

Telegram 机器人和 ChatGPT 简介

Telegram Messenger 是一种全球可访问的即时通讯服务。 2015 年 6 月,Telegram 推出了一个创建机器人的平台。 Telegram 机器人本质上是响应他们收到的消息或命令的程序。他们可以做各种各样的事情,从提供天气更新到发送提醒。在我们的例子中,我们将构建一个聊天机器人,一个可以与用户进行对话的机器人。

为了驱动我们的聊天机器人,我们将使用 ChatGPT(它的 API 版本)。 这是一个由 OpenAI 训练的强大的语言模型,可以生成类似人类的文本。 通过将 ChatGPT 与我们的 Telegram 机器人集成,我们可以轻松创建一个像 ChatGPT 一样强大的机器人,但可以在您的消息应用程序中使用!

设置 Telegram 机器人和 OpenAI API

第一步是创建一个 Telegram 机器人。我们需要在 Telegram 注册我们的机器人,并获得一个可以用来发送和接收消息的令牌。

以下是步骤:

  1. 打开 Telegram 并搜索带有验证标记的 "BotFather" 机器人。

  2. 开始聊天并输入 /newbot 以创建一个新机器人。
  3. 按照说明命名您的机器人。
  4. 完成后,BotFather 会给你一个令牌。安全保管好此令牌。
  5. 转到 https://platform.openai.com/apps 并选择 API 选项。
  6. 单击 Personal,然后单击 View API keys
  7. Create new key

将 ChatGPT 与你的 Telegram 机器人集成

现在,是时候让我们的机器人变得聪明了!我们将使用 telebot 和 OpenAI

  1. 首先,安装必要的库。打开你的终端并输入
    pip install telebot openai
  2. 创建一个新的 Python 脚本(我将其命名为 bot.py),并粘贴代码
    import telebot
    import openai
    
    bot = telebot.TeleBot ('<Your telegram bot token>')
    
    openai.api_key = '<Your openai API token>'
    
    def generate_answer(text):
        try:
            response = openai.ChatCompletion.create(
                model="gpt-3.5-turbo",
                messages=[
                    {"role": "user", "content": text},
                ]
            )
    
            result = ''
            for choice in response.choices:
                result += choice.message.content
    
        except Exception as e:
            return f"Oops!! Some problems with openAI. Reason: {e}"
    
        return result
    
    
    @bot.message_handler(content_types=['text'])
    def send_text(message):
        answer = generate_answer(message.text)
        bot.send_message(message.chat.id, answer)
    
    bot.polling()

我们定义了一个名为 generate_answer 的函数。此函数接收我们的机器人在对话期间收到的文本,并对 OpenAI 进行 API 调用。我们使用 gpt-3.5-turbo 来生成响应。 你每分钟最多可以发送 3 个请求。如果你想删除它,请购买高级订阅。 请记住,如果你使用的是高级 ChatGPT 订阅,你不能在 API 中使用它,因为它是一个独立的产品,你需要为其购买额外的订阅)。

对于 I/O 消息,我们使用来自 telebot 库的装饰器 @bot.message_handler。我们定义了文本内容并定义了一个函数,该函数从 Telegram 聊天中解脱消息,从 OpenAI API 生成响应,并使用 bot.send_message 将答案返回给聊天。要执行机器人,我们使用 bot.polling() 命令。

运行你的机器人

你现在可以运行你的机器人了! 在你的终端中,导航到包含你的 Python 脚本的目录并运行

python <your_script>.py

你的机器人现在已启动! 你可以在 Telegram 上与它交谈,它将使用 ChatGPT 的强大功能进行响应。

结论

请记住,这是一个非常基本的示例。你可以使用 Telegram 机器人和 ChatGPT 做更多的事情。你可以添加更多命令,使用来自 OpenAI 的不同引擎等等。所以继续探索和实验!

祝您编码愉快!

历史

  • 2023年5月30日:初始版本
© . All rights reserved.