# ChatGPT接入到telegram电报群教程


By [distracting-thoughts](https://paragraph.com/@distracting-thoughts) · 2023-11-07

---

**推广**
------

推荐以下翻墙必备工具

推荐链接教程翻墙机场VPN[注册链接](https://bit.ly/3Z6clFW)[自用机场推荐，翻墙VPN，秒开4K，解锁ChatGPT、奈飞流媒体](https://www.techxiaofei.com/post/vpn/chuanyunjian/)

美国虚拟信用卡[注册链接](https://bit.ly/3JQ5F8O)[美国虚拟信用卡，可订阅ChatGPT Plus会员](https://www.techxiaofei.com/post/common/fomepay/)

云服务器VPS推荐[注册链接](http://bit.ly/3GlfucW)[国内无法使用ChatGPT？教你使用云服务器一键部署自己的ChatGPT网站](https://www.techxiaofei.com/post/chatgpt/webpro/)

**背景**
------

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

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

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

![](https://storage.googleapis.com/papyrus_images/cc57675be8c7988b111f98f49295a564b0376cf7aff1253826fdd90a24ddb399.png)

**ChatGPT接入到telegram流程**
------------------------

### **1\. Github代码**

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

它可以支持：

*   微信
    
*   公众号
    
*   Telegram
    
*   QQ
    
*   Gmail
    

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

[https://github.com/techxiaofei/bot-on-anything](https://github.com/techxiaofei/bot-on-anything)

![](https://storage.googleapis.com/papyrus_images/72d680fc0daf4fbdc4e1b7b123b256e8bf95a9d0f4d174d181ee136027f5b3f7.png)

这份代码是从`https://github.com/zhayujie/bot-on-anything`Fork的一个仓库，原仓库对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/](https://platform.openai.com/)

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

![](https://storage.googleapis.com/papyrus_images/4eebc99334b9f76e3a59e521f06e1b9165d9c9ef0714b202b3997d4673f6de22.png)

**部署服务**
--------

### **1.运行环境**

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

### **VPS/云服务器**

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

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

![](https://storage.googleapis.com/papyrus_images/f7bfa7d665c18a14135ea6a551d7826eb15b8941701567e184a6e2d5f4f7b08f.png)

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

![](https://storage.googleapis.com/papyrus_images/f1b76dab03af7b9d94ec7dc111a583f6f4e9dfb443fcef827865d7cd0d4960ae.png)

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

项目代码克隆：

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

![](https://storage.googleapis.com/papyrus_images/5cdac7fa7e569abf0a6efcbde7b5bb26f2664dcc7dc6e6a338d6af9c983d06c9.png)

### **2.配置说明**

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

cp config-template.json config.json

![](https://storage.googleapis.com/papyrus_images/1d34f6cc0151a413e6f1ccad1b604b6bc4114c1b29ed0e09ce1d7f6967e63631.png)

### **3.获取token**

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

1.  开启聊天后输入`/newbot`
    
2.  然后输入名字我们就叫`botxiaofei`吧.
    
3.  然后需要以bot结尾的username，`botxiaofei_bot`.
    

![](https://storage.googleapis.com/papyrus_images/d3fd7397248729e7ccea444fd781dbfa38bdd03e80e7522bb82749e1bcaedb2d.png)

蓝色的链接就是机器人，点击进去可以聊天，红色的就是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
    

![](https://storage.googleapis.com/papyrus_images/6f7aed552fb84928bfc5d7ebab2823e1b24a7ca434c7dfb8c2971a986077c40e.png)

**结语**
------

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

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

**结语**
------

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

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

[![]({{DOMAIN}}/editor/youtube/play.png)](https://www.youtube.com/watch?v=Ux-C77lAPgM)

---

*Originally published on [distracting-thoughts](https://paragraph.com/@distracting-thoughts/chatgpt-telegram)*
