使用ChatGPT或者Github Copilot转换成OpenAI API

2023年真的是AI的元年。在这一年,ChatGPT席卷了整个互联网,Github Copilot也在开发者社区掀起了一阵热潮。由于OpenAI API的价格昂贵,很多人都在寻找替代方案。本文将介绍如何使用ChatGPT或者Github Copilot来转换成OpenAI API。

截止2024年01月13号。目前转换出openai api有两种可用方案:

  1. 通过Github Copilot转换
  2. 通过ChatGPT对话转换

以上两种方案都是通过官方的接口逆向而来,并不代表能够一直使用下去。 只是说在你开通了Github Copilot或者ChatGPT Plus的情况下,可以通过这两种方式来转换成OpenAI API。

通过Github Copilot转换(推荐)

推荐使用Github Copilot来转换的原因是价格上更加的实惠,只需要10美元一个月,就可以使用Github Copilot Chat

官方本来是只有GPT3.5的代码补全的,但是后面突然可以使用Github Copilot Chat,简直太良心了,希望以后Chat功能不会额外收费。

使用的开源项目是: copilot-gpt4-service

安装

这个项目用法也非常简单,使用docker一键启用,然后就可以通过http://localhost:8080来访问了。

docker run -d \
  --name copilot-gpt4-service \
  --restart always \
  -p 8080:8080 \
  -e HOST=0.0.0.0 \
  aaamoon/copilot-gpt4-service:latest

注意,上面只是启动了一个代理转发服务,实际使用的时候还需要自己获取到Copilot Token,然后在请求的时候带上这个Token。

获取 Github Copilot Plugin Token 的方式目前有两种方式:

  1. 通过安装 Github Copilot CLI 授权获取(推荐)。
  2. 通过第三方接口授权获取,不推荐,因为不安全。

配置

通过 Github Copilot CLI 授权获取配置

Linux/MacOS平台获取

# 如下脚本会自动安装 Github Copilot CLI 并通过授权获取 Github Copilot Plugin Token 
bash -c "$(curl -fsSL https://raw.githubusercontent.com/aaamoon/copilot-gpt4-service/master/shells/get_copilot_token.sh)"

Windows 平台获取

下载这个批处理文件, get_copilot_token.bat ,然后双击运行即可。

使用方法

使用获取到的ghu_xxxxx作为COPILOT_TOKEN,然后通过http://localhost:8080来访问, 以下是bash的例子:

curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $COPILOT_TOKEN" \
  -d '{
     "model": "gpt-4",
     "messages": [{"role": "user", "content": "Say this is a test!"}],
     "temperature": 0.7
   }'

通过ChatGPT转换

因为ChatGPT Plus收费比Github Copilot贵两倍,所以优先级靠后。

安装

这里面使用的开源项目是ninja。ninja同样是使用docker一键启动,然后就可以通过http://localhost:7999来访问了。

docker run --rm -it -p 7999:7999 --name=ninja \
  -e LOG=info \
  -v ~/.gpt4/:/root/.gpt4/ \
  ghcr.io/gngpp/ninja:latest run

使用方法

  1. 使用的时候需要先获取到ChatGPT Plus的Token,然后在请求的时候带上这个Token。 访问: https://chat.openai.com/api/auth/session 就能看到自己的access token了。
  2. 需用通过网页聊天窗口触发一次GPT 4的聊天,获取到arkose token。 具体方法如下:
    1. ChatGPT 官网发送一次 GPT-4 会话消息,浏览器 F12 下载 https://tcr9i.chat.openai.com/fc/gt2/public_key/35536E1E-65B4-4D96-9D97-6ADB7EFF8147 接口的HAR日志记录文件,
    2. 使用启动参数 —arkose-gpt4-har-dir 指定HAR目录路径使用(不指定路径则使用默认路径~/.gpt4,可直接上传更新HAR),同理GPT-3.5和其他类型也是一样方法。支持WebUI上传更新HAR,请求路径:/har/upload,可选上传身份验证参数:—arkose-har-upload-key

最后访问方法如下:

curl http://localhost:7999/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -d '{
     "model": "gpt-4",
     "messages": [{"role": "user", "content": "Say this is a test!"}],
     "temperature": 0.7
   }'

总结

得到API接口之后,你就有非常高的自由度了,比如丢到很多第三方chat客户端。例如:opencat、chatx之类的。体验怎么都吊打官方的ChatGPT界面。