ChatGPT接入Telegram Bot教程

一次简单的开发经历

Posted by l0tus on 2023-02-20
Estimated Reading Time 3 Minutes
Words 834 In Total
Viewed Times

目前主流的方法有两种,其中一种已经失效

接入openai.com官方的API keys

这种方式实现的是单句问答,无上下文,也是目前唯一可实现的方式。

前提

拥有一台海外vps(为什么是海外,因为telegram bot在收发指令时会先经过telegram服务器再发送到自己的vps,如果再国内则会被墙)

创建tg bot

1、tg搜素BotFather
2、/start
3、/newbot
4、输入bot的name,按照自己喜欢的起,这里以空格为例
4、输入bot的用户名,必须以_bot结尾,这里以W4t3r_Blank_bot为例
5、done,复制API,添加bot

配置vps环境

假设目前您的vps是一片空白没有任何配置,那么最首先需要做的就是一些配置文件
XShell连接vps
分别安装
git
sudo apt-get install git
golang
sudo apt-get install golang
nodejs
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install nodejs
amd64架构的linux系统似乎会自带vim,如果没有的话也需要装一下vim
sudo apt install vim
安装pm2守护进程
npm install pm2 -g

导入github项目

分别执行以下三条命令
git clone https://github.com/harshitethic/chatgpt-bot-telegram.git
cd chatgpt-bot-telegram
npm install

获取自己openai.com的API KEY

去这个链接获取API key:https://platform.openai.com/account/api-keys
前提是有自己的openai账号,具体注册请参照网上其他教程
在API keys的界面下点击 Create new secret key,复制,记录这个API

修改.env文件

安装完后进入chatgpt-bot-telegram文件夹,执行vim .env
将chatgpt的API和bot的API分别写入对应的位置
保存,退出(:,wq,enter

执行

pm2 start index.js
这条命令执行完之后bot已经开始运作了,可以进行对话,交互的语句开头加上/ask 即可对话,但是无上下文,只能单句对话。回答也很官方莫得感情。

后台守护

利用screen工具
首先关闭进程,pm2 stop all
再分别执行以下两条指令
apt-get install screen
screen -S chatgpt
这样一来相当于是起了一个新的screen,在这里面再执行上面启动bot的命令即可后台守护执行,这样在关闭vps链接以后bot也可以照常运作。

接入GPT对话网页cookie(已失效)

原理和上述完全一致

获取对话cookie

https://chat.openai.com/chat
f12,请求里找到cookie,复制粘贴备用

导入github文件

这个库是https://github.com/m1guelpf/chatgpt-telegram,其中源文件需要到readme里面给的releases page去下载对应系统版本的文件,我这里是linux-amd64版本,arm架构和macos用户自己下载对应的版本。
传入vps的方法是用Xftp,其他如果不是Xshell用户可以用自带的文件传输功能进行传输

修改.env

这里的.env起始文件叫做env.example。TELEGRAM_ID建议不写可以做到多人使用,TELEGRAM_TOKEN写bot API。保存退出。
cp env.example .env
重命名为.env

.config

根目录下新建.config文件mkdir .config,cd进入该文件,vim chatgpt.json,这里面写网页cookie
{ "openaisession": "cookie" }

执行

进入文件目录,./chatgpt-telegram

后台守护

同上

结果

并不能执行捏,大家就不需要尝试这种方法了(

extra

vps推荐:https://my.vultr.com/


如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !