这篇文章教你怎么自己编写代码,把你的Github Copilot订阅的API接出来用。
大致流程是:
- 发起 Device Flow 请求,获取
device_code和user_code(XXXX-XXXX)。 - 在浏览器访问 https://github.com/login/device,输入
user_code。 - 轮询换取
access_token(ghu_开头的 token)。 - 用
access_token获取短效Copilot token。 - 用
Copilot token调用 Chat Completions API。
1. 发起 Device Flow 请求
| |
返回:
| |
client_id 可以是自己注册的 GitHub OAuth App 的 ID,或者也可以直接用已知的 Copilot 客户端 ID(见下)。
应用 client_id VS Code Copilot Iv1.b507a08c87ecfe98 GitHub CLI 178c6fc778ccc68e1d6a
2. 打开浏览器
访问 https://github.com/login/device,输入上一步得到的user_code,完成登录。
3. 轮询换取 access_token
| |
返回:
| |
4. 获取 Copilot token
| |
返回:
| |
此处只需保存token字段的值即可
另外注意到(虽然没什么好注意的):
- 个人Pro版,学生包,企业版等copilot在
sku字段会不同- endpoints字段有API的地址,稍后会用到,但是其亦可以从
proxy-ep解析出来- token在半小时后过期
5. 调用 Chat Completions API
| |
此处的copilot_token即上一步得到的token字段的值。
注意api地址根据不同订阅有两种:
https://api.business.githubcopilot.com/chat/completions(企业版)https://api.individual.githubcopilot.com/chat/completions(个人版)
可以通过上一步返回的endpoints.api字段或者proxy-ep字段解析得到。