先自锤标题党,本文介绍的 GPT-4 API 目前还只能调用 /v1/chat/completions
以及 /v1/models
和 v1/embeddings
接口。至于 v1/audio/speech
、 v1/fine_tuning
、 v1/files
、 v1/images
、 v1/moderations
等接口是不支持的。但是胜在免费,而且其文字能力确实强大而又出众。
本文只需要用到一个仓库,是 Yanyutin753 开发的 gpt4-copilot-java ,目前还没有放出源码,只能在 Release 中下载打包好的 fat jar 包运行或者直接 docker 运行使用。
感谢始皇提供的 Cocopilot 以及公车 ghu_ThisIsARealFreeCopilotKeyByCoCopilot
(已失效)。
部署
docker 运行过于简单,这里不再赘述。大致说明一下 fat jar 直接运行的方法:
1 | # 下载 fat jar 包 |
使用
不妨设 gpt4-copilot-java 运行的地址为 https://your_gpt4-copilot-java.com
。使用公车作为 API Key 进行请求:
1 | # 请求 /v1/chat/comletions 接口 |
1 | # 请求 v1/embeddings 接口 |
1 | # 请求 /v1/models 接口 |
即为 https://your_gpt4-copilot-java.com/cocopilot
做 API BASE URL ,再使用 ghu_ThisIsARealFreeCopilotKeyByCoCopilot
做 API Key 请求即可。为了使用方便,可以与上一篇博客一样接入 One-api 进行使用。
lvguanjun/copilot_to_chatgpt4
如果你需要同时薅很多家 copilot 中转商,又不希望同时搭多个 gpt4-copilot-java ,那么可以使用 lvguanjun/copilot_to_chatgpt4 这个仓库。
首先,为了防止被人白嫖,也为了自己的IP安全,可以先搭建一个 HTTP 代理:
1 | { |
在 GitHub 中新建一个仓库,仓库中新建名为 vercel.json
的文件,并填入以上内容。再去 Vercel 中新建 Project ,选择刚刚新建的这个仓库即可。这样你就获得了一个由 Vercel 提供的通用 HTTP 代理,只需要在你需要访问的地址前加上https://your-vercel-project.vercel.app/proxy/
即可通过 Vercel 代理访问目标地址,如https://proxy-nineninesix.vercel.app/proxy/www.google.com
即为通过 Vercel 访问https://www.google.com
。
接下来,我以 Serv00 免费 FreeBSD 主机为例记录 lvguanjun/copilot_to_chatgpt4 的部署过程:
首先在 Panel 中放行一个端口,然后将仓库代码克隆到 Serv00 上:
1 | git clone -b endpoint https://github.com/lvguanjun/copilot_to_chatgpt4 c2g4 && cd c2g4 |
接着按照源仓库的README准备虚拟环境:
1 | python3 -m venv venv |
接着使用 Panel 自带的编辑器或者 vim 编辑 config.py 的内容,主要修改WHITE_TOKEN_URLS
的值:
1 | # 切记不要带 /proxy 路径,该仓库不支持识别此路径,直接用 /* 覆盖全路径即可。 |
保存后,新建一个启动脚本,方便使用 pm2 管理:
1 | cat > run.sh << EOF |
测试运行:
1 | chmod +x run.sh && bash run.sh |
使用pm2管理运行:
1 | chmod +x run.sh && ~/.npm-global/bin/pm2 start ./run.sh --name copilot_to_chatgpt4 |
拼接Key的规则:https://your-vercel-project.app/proxy/地址||秘钥
,如https://your-vercel-project.app/proxy/1.1.1.1/copilot_internal/v2/token||mxY5Oc8i8qUHoaiyfgeiuqgefoufmdZwyUqJmlz+MVIXNOabdfkhdaqL0tkQyajSOihkkP/tXbvBUMZhQE08GTfGW4p9GdSHRaNLijJCNVc=.kJfupjFfQeriLXvBDGiA7g==