ChatGPT接入到telegram电报群教程

推广

推荐以下翻墙必备工具

推荐链接教程翻墙机场VPN注册链接自用机场推荐,翻墙VPN,秒开4K,解锁ChatGPT、奈飞流媒体

美国虚拟信用卡注册链接美国虚拟信用卡,可订阅ChatGPT Plus会员

云服务器VPS推荐注册链接国内无法使用ChatGPT?教你使用云服务器一键部署自己的ChatGPT网站

背景

我之前的教程已经教了大家怎么注册ChatGPT,同时教大家怎么接入微信、微信公众号等平台,如果还没有注册的小伙伴可以看我之前的教程。https://www.techxiaofei.com/post/chatgpt/register/

这篇教程来教大家怎么把基于GPT3.5模型的chatGPT接入到telegram来提问交流,同时可以添加到群上匹配被艾特和关键字自动回复。

可以看到我这里已经成功接入ChatGPT。我要一步一步教大家也能轻松接入ChatGPT随时随地可以和ChatGPT对话。

ChatGPT接入到telegram流程

1. Github代码

首先,我们需要使用到github上的一份第三方代码,这份代码将 chatGPT 接入各类 消息应用。这个chatGPT是真实的GPT3.5模型,而不是向网上的很多人一样只是拿3.0模型来糊弄人

它可以支持:

  • 微信

  • 公众号

  • Telegram

  • QQ

  • Gmail

等等,未来还会支持更多的平台。

这份代码是从https://github.com/zhayujie/bot-on-anythingFork的一个仓库,原仓库对telegram的支持非常简单,只能支持到私聊,把机器人加入群聊之后所有的信息都会自动回复,消息会很乱。

"channel": {
    "type": "telegram",
    "telegram":{
      "bot_token": "YOUR BOT TOKEN ID",
      "single_chat_users": ["ALL_USERS"],
      "group_chat_list": ["ALL_GROUP"],
      "group_chat_prefix": ["@techxiaofei","@botxiaofei"],
      "group_chat_keyword": ["大神", "群主"]
    }
}

我对代码做了一些改造,区分私聊和群聊,私聊都会回复。而群聊只有特定前缀的消息或者特定关键字的消息才会回复。

  • 前缀过滤就是比如艾特我或者艾特机器人的消息他都会回复,同时向chatGPT发消息的时候会过滤掉这个前缀。

  • 关键字过滤就是,如果这句话里面有提到我的名字,比如小飞群主等等关键字,chatGPT才会自动回复。

  • 只允许我自己或者我授权的群组才能让机器人回复,也可以支持所有人和所有群组

极大的解放了我在粉丝群里面的工作量。

如果对chatGPT接入telegram有其他的需求,加入群向我提需求,只要是技术上能支持的,我都会尽力去做。这也是以后我会持续更新并使用的一个电报机器人。

2. OpenAPI地址

需要一个chatGPT账号并生成一个API Key,这个API secret Key是为了验证你的身份。

这个非常简单,我们打开openai的平台地址:https://platform.openai.com/

登录之后点击右上角的头像,点击Manage Account->API Keys->Create New Secret Key, 然后复制下来保存备用。

部署服务

1.运行环境

下面我们在云服务器上部署这个chatGPT接入telegram电报的服务,当然我们需要一台云服务器。

VPS/云服务器

如果你还没有云服务器或者VPS,可以点此地址购买:http://bit.ly/3GlfucW

它们的VPS非常便宜,可以用来搭建科学上网,搭建个人网站,也可以用来接入ChatGPT。如果你的预算充足,也可以直接购买云服务器

我们先复制下项目地址,点击Code->Https->点击复制图标

然后我们登录到云服务器:

项目代码克隆:

git clone https://github.com/techxiaofei/bot-on-anything
cd bot-on-anything/

2.配置说明

核心配置文件为 config.json,在项目中提供了模板文件 config-template.json ,可以从模板复制生成最终生效的 config.json 文件:

cp config-template.json config.json

3.获取token

我们需要在telegram搜索BotFather来创建一个新的机器人。

  1. 开启聊天后输入/newbot

  2. 然后输入名字我们就叫botxiaofei吧.

  3. 然后需要以bot结尾的username,botxiaofei_bot.

蓝色的链接就是机器人,点击进去可以聊天,红色的就是token,复制下来备用。

4.config配置

我已经在json文件里面删除了其他平台的配置,只保留telegram的配置即可:

{
  "model": {
    "type" : "chatgpt",
    "openai": {
      "api_key": "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",
      "model": "gpt-3.5-turbo",
      "conversation_max_tokens": 1000,
      "character_desc": "你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。"
    }
  },

  "channel": {
    "type": "telegram",

    "telegram": {
      "bot_token": "6274785511:AAHmverVxH9NUAexWGndPhtwjwcxxtudjPU",
      "single_chat_users": ["ALL_USERS"],
      "group_chat_list": ["ALL_GROUP"],
      "group_chat_prefix": ["@techxiaofei","@botxiaofei"],
      "group_chat_keyword": ["大神", "群主"]
    }

  }
}

配置文件在最外层分成 model 和 channel 两部分。

model部分为模型配置,其中的: type 指定了选用哪个模型:

  • chatgpt - 是gpt3.5 模型,我们默认填这个就好

  • openai - 是gpt3.0 模型

api_key 是你从openai官网生成的。 proxy 服务器在外网就不需要填写。

channel部分包含了应用渠道的配置type 字段指定了接入哪个应用。telegram就是电报。

  • single_chat_users 可以向机器人私聊的用户,默认为ALL_USERS所有用户,可以填自己的用户ID避免其他人向机器人提问,用户ID,不需要带@,比如techxiaofei

  • group_chat_list 机器人可以支持在那些群里回复,默认为ALL_GROUP所有group,可以填自己的群名避免其他人把机器人加到其他群。(可以通过BotFather设置/setjoingroups来限制别人把机器人加到其他群里)

  • group_chat_prefix 聊天前缀匹配,一般用来匹配@特定人,匹配成功后会去掉前缀再发送给chatgpt,前缀匹配需要带@,比如@techxiaofei

  • group_chat_keyword 聊天关键字匹配,匹配到关键字就会回复。

4.安装依赖

升级pip包管理工具和openai

pip3 install --upgrade pip
pip3 install --upgrade openai

安装电报机器人依赖

pip install pyTelegramBotAPI

4.运行程序

配置修改完成,依赖也安装好了,我们就可以运行程序了。

在项目目录下运行 python3 app.py,终端显示如下则表示已成功运行:

[INFO][2023-02-16 01:39:53][app.py:12] - [INIT] load config: ...
[INFO][2023-02-16 01:39:53][wechat_mp_channel.py:25] - [WX_Public] Wechat Public account service start!
Bottle v0.12.23 server starting up (using AutoServer())...
Listening on http://0.0.0.0:80/
Hit Ctrl-C to quit.

4.聊天

现在你就可以在私聊窗口跟机器人聊天了。

当然也可以把机器人加入到群聊,这个只能在手机上操作,点击机器人右上角头像,点击添加到群组或者频道,选择你想要添加的群组,点击添加机器人位管理员,就可以了。

最后一步

之前我们python3 app.py只有在你开启窗口的时候才会运行,关闭窗口之后就会停掉。我们需要程序在后台自动运行,这样即使我们关掉云服务器窗口也能继续运行。

那么我们需要开启后台运行的命令:

touch nohup.out
nohup python3 app.py & tail -f nohup.out

此时可通过 ctrl+c 关闭日志,不会影响后台程序的运行。使用 ps -ef | grep app.py | grep -v grep 命令可查看运行于后台的进程,如果想要重新启动程序可以先 kill 掉对应的进程。日志关闭后如果想要再次打开只需输入 tail -f nohup.out

如何杀进程

第一行先查出来PID,然后第二行kill你查到的PID就可以。

每次重启之前先kill掉进程

ps -ef | grep app.py | grep -v grep
kill -9 PID

结语

今天的ChatGPT接入telegram的教程就完成了,如果你对这个机器人有新的想法需求,可以直接在群里艾特我,技术可行的情况下我会花时间去实现它。

我会把所有相关的命令和链接放在评论区,有需要的小伙伴自取。下个视频我会继续教大家更多有用的教程。

结语

今天的ChatGPT接入telegram的教程就完成了,如果你对这个机器人有新的想法需求,可以直接在群里艾特我,技术可行的情况下我会花时间去实现它。

我会把所有相关的命令和链接放在评论区,有需要的小伙伴自取。下个视频我会继续教大家更多有用的教程。

Subscribe to distracting-thoughts
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.