首先,你的账号需要开通 Github Copilot 服务
获取 Github Copilot Plugin Token 的方式目前有以下四种方式:
启动本项目后可访问:https://copilot-api.up.railway.app/token 进行访问授权 承诺不会存储您的token,api是使用的github官方api,如果无法请求访问请配置代理
下载脚本,用python环境进行运行:get_copilot_token.py
Linux 平台获取
# 如下脚本会自动安装 Github Copilot CLI 并通过授权获取 Github Copilot Plugin Token
bash -c "$(curl -fsSL https://raw.githubusercontent.com/mouxans/copilot-api/main/shells/get_copilot_token.sh)"
Windows 平台获取
下载批处理脚本,双击运行即可:get_copilot_token.bat。
可能因为环境不同会导致一些未知的报错等,这个就自行百度或问ChatGPT自行解决
目前已知的第三方获取平台有:
目前项目还支持第三方cocopilot的公车Token:ccu_xxx
获取ccu_xxx的方式:打开cocopilot,复制页面上的'手动 Token: ccu_xxx',保留自行保存,为服务调用api的key使用
Tips: 目前cocopilot的Token暂时是不上车也是可以免费使用的,但哪天会噶犹未可知,所以可以用这个站点找人开公车一块公用一个官方的Copilot Token是可以的,此处就不过多解释了,懂得都懂,不懂也没办法解释
以公共服务的方式提供接口 多个 Token 在同一个 IP 地址进行请求, 容易被判定为异常行为
同客户端 Web(例如 ChatGPT-Next-Web) 以默认 API 以及 API Key 的方式提供公共服务 同一个 Token 请求频率过高, 容易被判定为异常行为
Serverless 类型的提供商进行部署 服务生命周期短, 更换 IP 地址频繁, 容易被判定为异常行为
其他滥用行为或牟利等行为。
非常重要:以上不建议的方式,均可能会导致 Github Copilot 被封禁,且封禁后可能无法解封。
非常重要:以上不建议的方式,均可能会导致 Github Copilot 被封禁,且封禁后可能无法解封。
非常重要:以上不建议的方式,均可能会导致 Github Copilot 被封禁,且封禁后可能无法解封。
3.点击部署的服务,进入Settings->Networking->Generate Domain(生成随机域名)/Custom Domain(绑定自定义自己的域名),然后就可以通过这个域名进行原神启动!
Tips: 如果你不是新用户,五刀用完了,别慌,点击右上角头像进入settings->General->拉到最下面Delete Account,对,这是注销解绑,然后再重新用github登录绑定,然后你会发现,又有五刀了
docker run -d \
--name copilot-chatgpt \
-p 8080:8080 \
-e WORKERS=5 \
mouxan/copilot:latest
version: '3.3'
services:
copilot-api:
container_name: copilot-api
image: mouxan/copilot:latest
restart: always
environment:
WORKERS: 5
ports:
- 8080:8080
HOST=0.0.0.0 #服务监听地址,默认0.0.0.0,建议使用默认
PORT=8080 #服务监听端口号
WORKERS=5 #线程数
API_PREFIX=abc123 #copilot-api的api前缀,不填则直接使用v1,加了后您的api路径为:ip:端口/abc123/v1/chat/completions
COPILOT_TOKEN=ghu_xxxxx # 默认的 Github Copilot Token,此项不会影响请求时候传的token,当headers未传时则默认使用环境变量里配置的token作为请求
COPILOT_TOKEN_LIST='['ghu_1xxxx','ghu_2xxx']' # 和COPILOT_TOKEN一样,这个是copilot token的数组,设置了这个COPILOT_TOKEN则无效
TOKEN_PROXY=api.cocopilot.org #copilot获取token的代理地址,默认:api.cocopilot.org
IS_USE_TOKEN_PROXY=False #是否完全走copilot的代理地址,即:系统默认是gh开头的token走官方的获取token,ccu_走cocopilot接口,如果打开则完全走 TOKEN_PROXY 代理获取的token,可用某宝第三方token url
GITHUBCOPILOT_PROXY=api.githubcopilot.com #请求反代completions和embeddings,默认:api.githubcopilot.com走官方,如国内服务器可使用第三方反代,否则可能无法请求,或者配置PROXY
PROXY='' #代理路由地址,如果本地国内无法访问github可配置代理
CLIENT_ID='Iv1.b507a08c87ecfe98' # 这个为github插件应用id,默认为'Iv1.b507a08c87ecfe98',尽量不要去更改,默认为github copilot的插件应用id,改成其他的获取的token可能无法使用copilot,具体自行研究,不建议修改
SLEEP_TIME='0.3' # gpt4模型会出现短暂的卡顿,所以设立sleep进行解决卡顿问题,默认0.3s,设置为0则不sleep
TITLE='Copilot API' # 文档TITLE
DOCSURL=/docs # Fstapi的docs文档地址,默认/docs
REDOCURL='/redoc' # Fastapi的redoc文档地址,默认/redoc
GITHUB_USERNAME=xxxx # github的账号,用于自动每小时获取VScode版本号,不设置则可能会限速
GITHUB_PASSWORD=xxx # github的密码,用于自动每小时获取VScode版本号,不设置则可能会限速
默认地址:http://localhost:8080/redoc 和 http://localhost:8080/docs 例如:https://copilot-api.up.railway.app/redoc 和 https://copilot-api.up.railway.app/docs 如需修改请更换环境变量的文档地址
启动项目后可访问:http://localhost:8080/token ,例如:https://copilot-api.up.railway.app/token
Windows 平台使用
macOS/linux 平台使用
macOS/linux系统执行cocopilot.sh
VScode 插件使用
VSCode可使用vscode.bat和vscode.sh,VSCode中插件更新后需要重新执行脚本,JetBrains则不需要。
Tip: 如果设置了接口前缀,下方域名/ip:端口后面皆需增加接口前缀
curl --location 'https://copilot-api.up.railway.app/v1/chat/completions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer gho_xxx' \
--data '{
"model": "gpt-4",
"messages": [{"role": "user", "content": "鲁迅打周树人"}]
}'
#或
curl --location 'https://copilot-api.up.railway.app/chat/completions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer gho_xxx' \
--data '{
"model": "gpt-4",
"messages": [{"role": "user", "content": "鲁迅打周树人"}]
}'
curl --location 'https://copilot-api.up.railway.app/v1/embeddings' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer gho_xxx' \
--data '{
"input":"鲁迅打周树人",
"model":"text-embedding-ada-002"
}'
#或
curl --location 'https://copilot-api.up.railway.app/embeddings' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer gho_xxx' \
--data '{
"input":"鲁迅打周树人",
"model":"text-embedding-ada-002"
}'
curl --location 'https://copilot-api.up.railway.app/v1/models'
#或
curl --location 'https://copilot-api.up.railway.app/models'
client_id="Iv1.b507a08c87ecfe98"为GitHub Copilot Plugin应用的client_id,如果是要获取copilot的ghu
curl --location 'https://copilot-api.up.railway.app/login/device/code' \
--header 'Content-Type: application/json' \
--data '{
"client_id": "Iv1.b507a08c87ecfe98",
"scope": "read:user"
}'
curl --location 'https://copilot-api.up.railway.app/login/oauth/access_token' \
--header 'Content-Type: application/json' \
--header 'Authorization: token {device_code}'
# 或
curl --location 'https://copilot-api.up.railway.app/login/oauth/access_token' \
--header 'Content-Type: application/json' \
--data '{
"client_id": "Iv1.b507a08c87ecfe98",
"device_code": device_code,
"grant_type": "urn:ietf:params:oauth:grant-type:device_code"
}'
curl --location 'https://copilot-api.up.railway.app/copilot_internal/v2/token' \
--header 'Content-Type: application/json' \
--header 'Authorization: token gho_xxx'
你会发现,其实整这么多模型,真正的只有三个,一个gpt-4,不传或者传其他的都是默认gpt-3.5-turbo,最后一个就是嵌入模型embedding
调用:https://github.com/login/device/code 获取到copilot的设备流验证地址和Code(传copilot插件的client_id:Iv1.b507a08c87ecfe98,如果不对或者更换了请在github进行获取:github.com->Settings->Applications->Authorized Github Apps->GitHub Copilot Plugin 然后查看网址url后面的Iv1.xxx的就是copilot插件的client_id)
用户用第一步获取的授权链接和CODE进行验证授权
第二步用户授权后调用:https://github.com/login/oauth/access_token 接口获取到copilot的插件token:ghu_xxx(传copilot的插件client_id和device_grant_type:urn:ietf:params:oauth:grant-type:device_code,和第一步接口获取的device_code)
获取到ghu_Xxx(这个token目前好像是长期的,具体能用多久就不清楚)后,调用copilot内部获取token的接口:https://api.github.com/copilot_internal/v2/token 获取到copilot内部接口请求鉴权token,这个token有效期为25分钟,接口有返回到期时间和刷新时间,这一步如果用的是第三方某宝购买的或者秦始皇的公车Token时,这个接口地址需进行更换他的对方的内部token url鉴权地址,比如秦始皇的是:https://api.cocopilot.org/copilot_internal/v2/token ,某宝购买的地址怎么趴呢,我在下面单独讲解吧
第四步完成后就可以调用copilot的chat或者embeddings接口了:https://api.githubcopilot.com/chat/completions 和 https://api.githubcopilot.com/embeddings ,请求方式同openai的接口相差无几,具体请看文档:openai文档
Tips:好了,来讲解下某宝购买的远程授权脚本的token和token url怎么获取呢:
首先,你得先用他的脚本进行授权完跑一边,除非你会逆向他打包的脚本这个就可以忽视
在你windows电脑文件夹路径中:C:\Users\你的win用户名\AppData\Local\github-copilot,找到hosts.json,里面就有oauth_token就是类似与ghu_Xxx的token,只不过相当于走了他的服务器进行中转分发转发的token,copilot_token_url就是他的token url服务器地址,用于转换获取copilot内部鉴权token的地址
Content type
Image
Digest
sha256:c23aefc71…
Size
105 MB
Last updated
over 2 years ago
docker pull mouxan/copilot