相关博客(程序更新很多次,文章的内容可能和现在的不一样,供参考):ChatGPT
- 如何生成 GPT-4 arkose_token
- 利用 HTTP Client 来调试 go-chatgpt-api
- 一种解决 ChatGPT Access denied 的方法
- ChatGPT 如何自建代理
- 一种取巧的方式绕过 Cloudflare v2 验证
如果有疑问而不是什么程序出错其实可以在 Discussions 里发而不是新增 Issue
汇总贴:linweiyuan#74
部分例子,不是全部,理论上全部基于文本传输的接口都支持
https://github.com/linweiyuan/go-chatgpt-api/tree/main/example (需安装 HTTP Client
插件)
如需设置代理,可以设置环境变量 GO_CHATGPT_API_PROXY
,比如 GO_CHATGPT_API_PROXY=http://127.0.0.1:20171
或者 GO_CHATGPT_API_PROXY=socks5://127.0.0.1:20170
,注释掉或者留空则不启用
如需配合 warp
使用:GO_CHATGPT_API_PROXY=socks5://chatgpt-proxy-server-warp:65535
,因为需要设置 warp
的场景已经默认可以直接访问 ChatGPT
官网,因此共用一个变量不冲突(国内 VPS
不在讨论范围内)
docker-compose
配置文件:
services:
go-chatgpt-api:
container_name: go-chatgpt-api
image: linweiyuan/go-chatgpt-api
ports:
- 8080:8080
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
- TZ=Asia/Shanghai
- GO_CHATGPT_API_PROXY=
- GO_CHATGPT_API_ARKOSE_TOKEN_URL=
restart: unless-stopped
GPT-4 相关模型需要验证 arkose_token
,以下是配置例子
services:
go-chatgpt-api:
container_name: go-chatgpt-api
image: linweiyuan/go-chatgpt-api
ports:
- 8080:8080
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
- TZ=Asia/Shanghai
- GO_CHATGPT_API_PROXY=socks5://chatgpt-proxy-server-warp:65535
- GO_CHATGPT_API_ARKOSE_TOKEN_URL=http://chatgpt-arkose-token-api:65526
depends_on:
- chatgpt-proxy-server-warp
- chatgpt-arkose-token-api
restart: unless-stopped
chatgpt-proxy-server-warp:
container_name: chatgpt-proxy-server-warp
image: linweiyuan/chatgpt-proxy-server-warp
environment:
- LOG_LEVEL=OFF
restart: unless-stopped
chatgpt-arkose-token-api:
container_name: chatgpt-arkose-token-api
image: linweiyuan/chatgpt-arkose-token-api
restart: unless-stopped
我仅仅在 Arch Linux
上进行开发和测试,这是一个滚动更新的版本,意味着系统上所有东西都是最新的,如果你在使用的过程中 yaml
报错了,则可以加上 version: '3'
在 services:
前面
如果遇到 Access denied
,但是你的服务器确实在被支持的国家或地区
,尝试一下这个配置(不保证能解决问题,比如你的服务器在 A 地区,但 A 地不在支持列表内,即使用上了 warp
后是 Cloudflare IP
,结果也会是 403
):
services:
go-chatgpt-api:
container_name: go-chatgpt-api
image: linweiyuan/go-chatgpt-api
ports:
- 8080:8080
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
- TZ=Asia/Shanghai
- GO_CHATGPT_API_PROXY=socks5://chatgpt-proxy-server-warp:65535
- GO_CHATGPT_API_ARKOSE_TOKEN_URL=
depends_on:
- chatgpt-proxy-server-warp
restart: unless-stopped
chatgpt-proxy-server-warp:
container_name: chatgpt-proxy-server-warp
image: linweiyuan/chatgpt-proxy-server-warp
environment:
- LOG_LEVEL=OFF
restart: unless-stopped
如果你知道什么是 teams-enroll-token
,可以通过环境变量 TEAMS_ENROLL_TOKEN
设置它的值
然后利用这条命令来检查是否生效:
docker-compose exec chatgpt-proxy-server-warp warp-cli --accept-tos account | awk 'NR==1'
Account type: Free (没有生效)
Account type: Team (设置正常)
如果要让运行的镜像总是保持最新,可以配合这个一起使用:
services:
watchtower:
container_name: watchtower
image: containrrr/watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: --interval 3600
restart: unless-stopped
这个只会更新新镜像,旧的镜像如果没手动删除还会在本地,如果新镜像不适用,将 <none>
镜像重新打 tag
即可,比如:docker tag <IMAGE_ID> linweiyuan/go-chatgpt-api
,这样就完成了回滚
环境变量
CHATGPT_BASE_URL=https://go-chatgpt-api.linweiyuan.com/chatgpt/backend-api/
config.cfg
[openai]
browserless_endpoint = "https://go-chatgpt-api.linweiyuan.com/chatgpt/backend-api/"
环境变量
API_REVERSE_PROXY=https://go-chatgpt-api.linweiyuan.com/chatgpt/backend-api/conversation
- pengzhile/pandora(不完全兼容)
环境变量
go-chatgpt-api: GO_CHATGPT_API_PANDORA=1
pandora: CHATGPT_API_PREFIX=https://go-chatgpt-api.linweiyuan.com
application.yaml
proxy:
url: https://go-chatgpt-api.linweiyuan.com
Fork 此项目后,可以在 Settings-Secrets and variables-Actions
下控制如下行为:
Secrets
页添加 DOCKER_HUB_TOKEN
即可自行打包推送到个人的 Dockerhub
账户下(如何申请 token)
Variables
页添加 USE_GHCR=1
即可推送到个人的 GHCR
仓库(需要开启仓库的写入权限)
Variables
页添加 PLATFORMS=linux/amd64,linux/arm64
即可同时打包 amd64 和 arm64 的架构的镜像(缺省情况下只会打包
amd64)
Made with contrib.rocks.