自定义ChatGPT代理接口
本文最后更新于 2024-07-06,文章内容可能已经过时。
PandoraNext 项目已经停止更新了,新教程是使用 ninja 项目。
bncr
插件的 ChatGPT
使用的公开的 fakeopen api
代理是 zhile 大佬很久之前的,而且新项目里面已经说了, fakeopen api
已经是历史了,现在需要我们自己搭建他的项目搞一个代理接口。
搭建PandoraNext项目(已失效,向下看Ninja教程)
方便点,直接使用 Dokcer 进行搭建了;项目地址:https://github.com/pandora-next/deploy
创建项目文件存储地址,可自行更换。
启动PandoraNext
配置相关文件
tokens.json
可以不用管,主要配置一下 config.json
登录 Github账号,获取 license_id
, https://dash.pandoranext.com
主要是将网页获取的 license_id
填入 config.json
中,并且配置 proxy_api_prefix
,我随便设置了一个 v1conversation
。
tokens.json
文件不用管。
重启一下项目
搭建 Ninja
安装教程在项目的 wiki 中,教程给了 Docker 命令和 compose 两种方式,两种方式稍微有一点区别。
我是在 OpenWrt
中开启了全局代理,所以直接使用第一个命令就可以了。
这里目前只能完成 Access Token
获取和 GPT3.5
聊天,其他的例如 login
、GPT4
需要验证码,可以阅读项目文档完成。
配置网络
这里把
PandorNext
换成ninja
就好了,操作逻辑是一样的,就是打通两个容器的网络。
如果你已将 PandoraNext
配置到公网,可以忽略此步骤,如果未将 PandoraNext
配置到公网,需要将 pandoraNext
和 bncr
放入同一个 docker network
中,让 bncr
可以访问 PandoraNext
。
通过 默认的
bridge
网络也可以连通,但是机器重启后IP
会发生变动
- 创建
docker network
默认的
bridge
网络应该是172.17.0.0/16
,继续向下创建应该不会重复,重复自己调整一下。
上面的命令意思是:
- 创建一个名字叫做
docker_network
的网络,子网是172.18.0.0/24
,网关是172.18.0.1
- 将
bncr
容器加入到docker_network
网络,并且分配一个固定ip是172.18.0.2
- 将
PandoraNext
容器加入到docker_network
网络,并且分配一个固定ip是172.18.0.3
请注意,这里的 容器名称 需要根据自己真实的容器名称去更改。
查看网络详情
IP 和教程有点不一样,无伤大雅。
修改 ChatGPT 插件
插件在这里:https://github.com/RedLightsDistrict/Bncr_plugins/blob/main/Bncr_ChatGPT.js
修改一下:apiReverseProxyUrl
这里配置是 Ninja
的访问地址 + 代理地址,图中多了一份 /v1conversation
, Ninja
项目无需理会,去掉就好了。
-
Ninja_URL
就是在bncr
中能访问到Ninja
的地址,可以是公网,也可以是上一步配置的docker network
中分配的地址。 -
7999端口分情况配置,如果是公网,请使用创建是映射后的端口,如果是分配的网络,请固定7999。
不知道就还是7999
-
/backend-api/conversation
固定。
测试
写在后面
Ninja
项目提供了 Session Token
和 Refresh Token
获取 Access Token
的方法,可以将插件进行修改完成自动更新 Token
。下面是我在 Koishi
写的插件调用的接口。