同步操作将从 韦清河/copilot-gpt4-service 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
⚔️ 将 GitHub Copilot 转换为 ChatGPT
简体中文 | English
GET /
: 首页GET /healthz
: 健康检查GET /v1/models
: 获取模型列表POST /v1/chat/completions
: 对话 APIPOST /v1/embeddings
: 获取文本向量 API
请注意,此 API 与 OpenAI API 不完全兼容。
对于 input
字段,OpenAI API 接受以下类型:
不幸的是,此服务仅接受前两种类型以及包含字符串的数组的数组。
http://127.0.0.1:8080
;经社区验证和讨论,最佳实践方式为:
以公共服务的方式提供接口
多个 Token 在同一个 IP 地址进行请求,容易被判定为异常行为
同客户端 Web(例如 ChatGPT-Next-Web) 以默认 API 以及 API Key 的方式提供公共服务
同一个 Token 请求频率过高,容易被判定为异常行为
Serverless 类型的提供商进行部署
服务生命周期短,更换 IP 地址频繁,容易被判定为异常行为
其他滥用行为或牟利等行为。
非常重要:以上不建议的方式,均可能会导致 GitHub Copilot 被封禁,且封禁后可能无法解封。
非常重要:以上不建议的方式,均可能会导致 GitHub Copilot 被封禁,且封禁后可能无法解封。
非常重要:以上不建议的方式,均可能会导致 GitHub Copilot 被封禁,且封禁后可能无法解封。
使用 copilot-gpt4-service 服务,需要使用第三方客户端,目前已验证支持以下客户端:
copilot-gpt4-service 服务的部署方式目前包含 Docker 部署、二进制启动、Kubernetes 部署、源码启动实现。
可使用命令行参数或环境变量或环境变量配置文件 config.env
配置服务(可复制项目根目录 config.env.example
为 config.env
修改),默认服务配置项如下:
HOST=0.0.0.0 # 服务监听地址,默认为 0.0.0.0。
PORT=8080 # 服务监听端口,默认为 8080。
CACHE=true # 是否启用持久化,默认为 true。
CACHE_PATH=db/cache.sqlite3 # 持久化缓存的路径(仅当 CACHE=true 时有效),默认为 db/cache.sqlite3。
DEBUG=false # 是否启用调试模式,启用后会输出更多日志,默认为 false。
LOGGING=true # 是否启用日志,默认为 true。
LOG_LEVEL=info # 日志级别,可选值:panic、fatal、error、warn、info、debug、trace(注意:仅当 LOGGING=true 时有效),默认为 info。
COPILOT_TOKEN=ghp_xxxxxxx # 默认的 GitHub Copilot Token,如果设置此项,则请求时携带的 Token 将被忽略。默认为空。
SUPER_TOKEN=randomtoken,randomtoken2 # Super Token 是用户自定义的 Token,用于对请求进行鉴权,若鉴权成功则会使用上方的 COPILOT_TOKEN 处理请求。多个 Token 以英文逗号分隔。默认为空。设置该项可以帮助用户在不泄漏 COPILOT_TOKEN 的情况下分享服务给他人使用。
ENABLE_SUPER_TOKEN=false # 是否启用 Super Token 鉴权,默认为 false。如果未启用但 COPILOT_TOKEN 不为空,则所有请求都会在不鉴权的情况下使用 COPILOT_TOKEN 处理。
CORS_PROXY_NEXTCHAT=false # 启用后,可以通过路由 /cors-proxy-nextchat/ 上为 NextChat 提供代理服务。配置 NextChat 云同步时,如本地部署方式则设置代理地址为:http://localhost:8080/cors-proxy-nextchat/
RATE_LIMIT=0 # 每分钟允许的请求数,如果为 0 则没有限制,默认为 0。
注意: 以上配置项均可通过命令行参数或环境变量进行配置,命令行参数优先级最高,环境变量优先级次之,配置文件优先级最低。命令行参数名称为为环境变量名称的小写形式,如 HOST
对应的命令行参数为 host
。
Docker 部署需要先安装 Docker,然后执行相应命令。
使用默认配置参数启动服务,如下:
docker run -d \
--name copilot-gpt4-service \
--restart always \
-p 8080:8080 \
aaamoon/copilot-gpt4-service:latest
启动也可通过环境变量或命令行携带参数配置,如下启动通过环境变量设置 HOST、通过命令行参数设置 LOG_LEVEL。
docker run -d \
--name copilot-gpt4-service \
-e HOST=0.0.0.0 \
--restart always \
-p 8080:8080 \
aaamoon/copilot-gpt4-service:latest -log_level=debug
# 拉取源代码
git clone https://github.com/aaamoon/copilot-gpt4-service && cd copilot-gpt4-service
# Compose 启动,可通过修改 docker-compose.yml 文件进行启动参数配置
docker compose up -d
如需更新容器,可在源代码文件夹重新拉取代码及构建镜像,命令如下:
git pull && docker compose up -d --build
可以拉取源码自行编译二进制执行文件或从官方下载对应系统架构的二进制执行文件,然后执行以下命令启动(注意 copilot-gpt4-service 为二进制执行文件名称,请根据实际名称进行替换):
# 快速启动(使用默认配置,如果执行文件所在文件夹有 config.env 文件,则优先使用 config.env 文件配置)
./copilot-gpt4-service
# 通过命令行修改监听端口
./copilot-gpt4-service -port 3000
# 查看帮助,查看可用参数
./copilot-gpt4-service -h
注意: 运行前请确保已经设置可执行权限,如没有可执行权限,可通过 chmod +x copilot-gpt4-service
命令设置。
支持通过 Kubernetes 部署,具体部署方式如下:
helm repo add aaamoon https://charts.kii.la && helm repo update # 源由 github pages 提供
helm install copilot-gpt4-service aaamoon/copilot-gpt4-service
拉取代码,直接启动,适合开发环境使用,请确保本地已经安装 Go 环境。
git clone https://github.com/aaamoon/copilot-gpt4-service && cd copilot-gpt4-service && go run .
Caddy 可以很方便地为端口服务提供 HTTPS 支持,自动管理证书,省心省力。
以下是一个 Debian/Ubuntu 系统上使用 Caddy 的示例,其他系统请参考 Caddy 官方文档。
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy
sudo vi /etc/caddy/Caddyfile
假如你准备使用的域名为 your.domain.com
,请确保以下条件:
然后在 Caddyfile 中添加以下内容:
your.domain.com {
reverse_proxy localhost:8080
}
执行以下命令启动 Caddy:
# 启动 Caddy
sudo systemctl start caddy
# 设置 Caddy 开机自启
sudo systemctl enable caddy
# 查看 Caddy 运行状态
sudo systemctl status caddy
如果一切顺利,那此时就可以通过 https://your.domain.com
访问 copilot-gpt4-service 服务了。
helm install copilot-gpt4-service aaamoon/copilot-gpt4-service \
--set chatgpt-next-web.enabled=true \
--set chatgpt-next-web.config.OPENAI_API_KEY=[ your openai api key ] \ # copilot 获取的 token
--set chatgpt-next-web.config.CODE=[ backend access code ] \ # next gpt web ui 的访问密码
--set chatgpt-next-web.service.type=NodePort \
--set chatgpt-next-web.service.nodePort=30080
首先,你的账号需要开通 GitHub Copilot 服务
获取 GitHub Copilot Plugin Token 的方式目前有两种方式:
首先确保安装了 Python 3.7+,然后安装 requests 库:
pip install requests
然后执行
Linux/MacOS 平台获取
python3 <(curl -fsSL https://raw.githubusercontent.com/aaamoon/copilot-gpt4-service/master/shells/get_copilot_token.py)
可通过设置环境变量或修改脚本第 3 行的字典设置代理。
Windows 平台获取
下载脚本,双击运行即可:get_copilot_token.py。
可修改脚本第 3 行的字典设置代理。
Linux/MacOS 平台获取
# 执行命令,选择对应方式获取Token
bash -c "$(curl -fsSL https://raw.githubusercontent.com/aaamoon/copilot-gpt4-service/master/shells/get_copilot_token.sh)"
Windows 平台获取
下载批处理脚本,双击运行即可:get_copilot_token.bat。
据测试:模型参数支持 GPT-4 和 GPT-3.5-turbo,实测使用其他模型均会以默认的 3.5 处理(对比 OpenAI API 的返回结果,猜测应该是最早的版本 GPT-4-0314 和 GPT-3.5-turbo-0301)
鲁迅为什么暴打周树人?
我爸妈结婚时为什么没有邀请我?
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。