Cloudflare 来使用 ChatGPT 接口的程序accessToken(谷歌和微软账号暂不支持登录,但可正常使用其他接口)GPT-3.5 和 GPT-4 对话增删改查及分享apiKeyapiKey 余额查询ChatGPT 转 API,接口 /imitate/v1/chat/completions,利用 accessToken 模拟 apiKey,实现伪免费使用 API
,从而支持集成仅支持 apiKey 调用的第三方客户端项目范例(URL 和参数基本保持着和官网一致,部分接口有些许改动),部分例子,不是全部,理论上全部基于文本传输的接口都支持
https://github.com/linweiyuan/go-chatgpt-api/tree/main/example (需安装 HTTP Client 插件)
汇总贴:https://github.com/linweiyuan/go-chatgpt-api/issues/74
如果有疑问而不是什么程序出错其实可以在 Discussions 里发而不是新增 Issue
群聊:https://github.com/linweiyuan/go-chatgpt-api/discussions/197
如需设置代理,可以设置环境变量 PROXY,比如 PROXY=http://127.0.0.1:20171
或者 PROXY=socks5://127.0.0.1:20170,注释掉或者留空则不启用
如果代理需账号密码验证,则 http://username:password@ip:port 或者 socks5://username:password@ip:port
如需配合 warp 使用:PROXY=socks5://chatgpt-proxy-server-warp:65535,因为需要设置 warp
的场景已经默认可以直接访问 ChatGPT 官网,因此共用一个变量不冲突(国内 VPS 不在讨论范围内,请自行配置网络环境,warp
服务在魔法环境下才能正常工作)
家庭网络无需跑 warp 服务,跑了也没用,会报错,仅在服务器需要
GPT-4 相关模型目前需要验证 arkose_token,如果配置 ARKOSE_TOKEN_URL 则使用在线服务获取 arkose_token
,不设置或者留空则由程序内部自己生成(推荐优先使用这种,减轻公共服务压力,或者自定义 BX 参数)
如果还是 403:
访问这个网站:Health Status,在 Arkose Labs
中挑选其中一条绿色的链接配置到 ARKOSE_TOKEN_URL 即可
或者配合 xyhelper/xyhelper-arkose 一起使用,详情查看文档
或者配合 linweiyuan/chatgpt-arkose-token-api 一起使用,不一定能用,比较挑环境,原因未知
services:
go-chatgpt-api:
container_name: go-chatgpt-api
image: linweiyuan/go-chatgpt-api
ports:
- 8080:8080
environment:
- TZ=Asia/Shanghai
- PROXY=socks5://chatgpt-proxy-server-warp:65535
- ARKOSE_TOKEN_URL=http://chatgpt-proxy-server-arkose:8081/token
depends_on:
- chatgpt-proxy-server-warp
- chatgpt-proxy-server-arkose
restart: unless-stopped
chatgpt-proxy-server-arkose:
container_name: chatgpt-proxy-server-arkose
image: linweiyuan/chatgpt-proxy-server-arkose
environment:
- PROXY=socks5://chatgpt-proxy-server-warp:65535
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
restart: unless-stopped
根据你的网络环境不同,可以展开查看对应配置,下面例子是基本参数,更多参数查看 compose.yaml
服务器不定时维护,不保证高可用,利用这些服务导致的账号安全问题,与本项目无关
go-chatgpt-api:
container_name: go-chatgpt-api
image: linweiyuan/go-chatgpt-api
ports:
- 8080:8080
environment:
- TZ=Asia/Shanghai
restart: unless-stopped
如何验证:curl https://chat.openai.com | grep '<p>' | awk '{$1=$1;print}'
go-chatgpt-api:
container_name: go-chatgpt-api
image: linweiyuan/go-chatgpt-api
ports:
- 8080:8080
environment:
- TZ=Asia/Shanghai
- PROXY=socks5://chatgpt-proxy-server-warp:65535
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
restart: unless-stopped
目前 warp 容器检测到流量超过 1G 会自动重启,如果你知道什么是 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=http://go-chatgpt-api:8080/chatgpt/backend-api/
config.cfg
[openai]
browserless_endpoint = "http://go-chatgpt-api:8080/chatgpt/backend-api/"
环境变量
API_REVERSE_PROXY=http://go-chatgpt-api:8080/chatgpt/backend-api/conversation
环境变量
CHATGPT_API_PREFIX=http://go-chatgpt-api:8080
application.yaml
proxy:
url: http://go-chatgpt-api:8080
环境变量
BASE_URL=http://go-chatgpt-api:8080/imitate
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 的架构的镜像
Made with contrib.rocks.
Content type
Image
Digest
sha256:cc891cbed…
Size
7.8 MB
Last updated
about 3 years ago
docker pull kevinwang15/go-chatgpt-api