2025-08-13 19:03:20 +08:00
2025-08-13 19:03:20 +08:00
2025-08-13 19:03:20 +08:00
2025-08-13 19:39:47 +08:00
2025-08-13 19:03:20 +08:00
2025-08-13 19:03:20 +08:00
2025-08-13 19:03:20 +08:00
2025-08-13 19:03:20 +08:00
2025-08-13 19:03:20 +08:00
2025-08-13 19:03:20 +08:00
2025-08-13 19:03:20 +08:00
2025-08-13 19:03:20 +08:00
2025-08-13 19:03:20 +08:00
2025-08-13 19:03:20 +08:00
2025-08-13 19:39:47 +08:00
2025-08-13 19:03:20 +08:00
2025-08-13 19:03:20 +08:00

Github Copilot 后端代理服务

借助其他支持 FIM 接口的模型如DeepSeek来接管GitHub Copilot插件服务端, 廉价的模型+强大的补全插件相结合, 使得开发者可以更加高效的编写代码。

免费的公共服务端点: mycopilot.noteo.cn, 感谢 硅基流动 提供免费的模型服务

🚨 破坏性更新提示: v0.1.0 版本更新之后需要做配置调整, 具体参考: 升级指南 部分内容.

🚨 破坏性更新提示: v0.1.6 版本更新对 Embeddings模型 进行了调整, 如果还想继续使用阿里灵石的模型, 请自行借助 One API 之类的中转系统进行接入.

功能特性

  • 使用 docker-compose 部署, 简单方便
  • 多种IDE, 如: VSCode, Jetbrains IDE系列, Visual Studio 2022, HBuilderX
  • 任意符合 OpenAI 接口规范的模型, 和 Ollama 部署的本地模型
  • GitHub Copilot 插件各种API接口全接管, 无需担心插件升级导致服务失效
  • 代码补全请求防抖设置和自定义 prompt 精简, 避免过度消耗 Tokens
  • 使用 Github Copilot 官方服务, 参考: 使用GitHub Copilot官方服务
  • VSCode 对话编辑模式
  • 代码补全APIKEY支持多个轮询, 避免限频
  • 无需自有域名, 自动配置和续签 Let's Encrypt SSL证书 (每 60 天自动更新一次证书, 自动重载 https 服务)
  • 局域网共享, 可多台电脑共享一个服务端, 参考: 局域网共享方案
  • 完全纯离线部署, 无需任何外部网络支持, 参考: 纯内网离线部署方案
  • 本地部署的 Embeddings 模型支持, 参考: README.md

如何使用?

在使用之前确保自己的环境是干净的, 也就是说不能使用过其他的激活服务, 可以先检查自己的环境变量将 GITHUB COPILOT 相关的环境变量删除, 然后将插件更新最新版本后重启IDE即可.

⚠️ 如果你本地有使用科学上网工具, 那必须将域名 copilot.supercopilot.top 系列域名添加直连名单中, 否则无法正常使用!

快速使用步骤

  1. 部署服务: 可以使用下载文件直接部署使用 或 使用docker部署.
  2. 配置IDE: 详细参考下面的IDE设置方法.
  3. 重启IDE: 点击登录 GitHub Copilot 插件即可.

Docker部署

(推荐) 懒人推荐使用此方案, 比较简单
模型API KEY 替换为你的, 然后执行以下命令即可启动服务:

# 启动服务
docker-compose up -d

# 停止服务
docker-compose down

# 更新服务
1. docker-compose pull
2. docker-compose down
3. docker-compose up -d

# 查看日志
docker-compose logs -f

镜像全部上传到阿里云容器镜像服务, 每个版本都有对应的镜像可使用或回滚.

下载文件直接部署使用

  1. 下载最新版本的对应系统的可执行文件访问 releases.
  2. 在可执行文件同级目录下创建 .env 文件, 参考 .env.example 文件配置.
  3. 启动服务后然后按照IDE设置方法配置IDE.
  4. 重启IDE,登录 GitHub Copilot 插件.

自有服务器部署

  1. 使用 docker-compose 或下载可执行文件运行起程序 (如果已有 nginx, 避免 443 端口占用可直接修改其他端口, 后面借助nginx 反向代理实现 https)
  2. 解析四个域名到服务器IP, 假设你的域名是: domain.com, 那么你需要解析的域名分别是 (特别注意: 域名前缀不可变):
domain.com  
api.domain.com  
copilot-proxy.domain.com  
copilot-telemetry-service.domain.com  
  1. 将四个域名全部配置好 SSL 证书
  2. 配置 Nginx 反向代理或伪静态规则, 参考配置如下:
location ^~ /
{
    proxy_pass http://127.0.0.1:1188/;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_http_version 1.1;
    # proxy_hide_header Upgrade;

    add_header X-Cache $upstream_cache_status;
    
    proxy_redirect off;
    proxy_buffering off;
    proxy_max_temp_file_size 0;
    client_max_body_size 10m;
    client_body_buffer_size 128k;
    proxy_connect_timeout 90;
    proxy_send_timeout 90;
    proxy_read_timeout 90;
    proxy_buffer_size 4k;
    proxy_buffers 4 32k;
    proxy_busy_buffers_size 64k;
    proxy_temp_file_write_size 64k;

    #Set Nginx Cache
    
    
    set $static_filer5CIeZff 0;
    if ( $uri ~* "\.(gif|png|jpg|css|js|woff|woff2)$" )
    {
    	set $static_filer5CIeZff 1;
    	expires 1m;
        }
    if ( $static_filer5CIeZff = 0 )
    {
    add_header Cache-Control no-cache;
    }
}
  1. 最后将以上域名修改到对应的环境变量配置文件中.
  2. 最终使用 https 方式访问四个域名必须是正常的, 不能有任何问题, 否则插件无法正常使用.

环境变量参数说明

详细参考: 环境变量参数说明

IDE设置方法

VSCode

  1. 安装插件: GitHub Copilot
  2. 修改 VSCode 的 settings.json 文件, 添加以下配置:
"github.copilot.advanced": {
  "authProvider": "github-enterprise",
  "debug.overrideCAPIUrl": "https://api.copilot.supercopilot.top",
  "debug.overrideProxyUrl": "https://copilot-proxy.copilot.supercopilot.top",
  "debug.chatOverrideProxyUrl": "https://api.copilot.supercopilot.top/chat/completions",
  "debug.overrideFastRewriteEngine": "v1/engines/copilot-centralus-h100",
  "debug.overrideFastRewriteUrl": "https://api.copilot.supercopilot.top"
},
"github-enterprise.uri": "https://copilot.supercopilot.top"

Jetbrains IDE系列

  1. 找到设置 > 语言与框架 > GitHub Copilot > Authentication Provider
  2. 填写的值为: copilot.supercopilot.top

Visual Studio 2022

  1. 更新到最新版本(内置 Copilot 版本)至少是 17.10.x 以上
  2. 首先, 开启 Github Enterprise 账户支持:工具->环境->账户->勾选 包含 Github Enterprise 服务器账户
  3. 然后, 重启你的 Visual Studio 2022 编辑器
  4. 最后, 点击添加 Github 账户,切换到 Github Enterprise 选项卡,输入 https://copilot.supercopilot.top 即可。

HBuilderX

⚠️ 注意, 插件中的相关 domain 已经写死无法修改, 所以必须使用默认的 copilot.supercopilot.top 域名配置.

  1. 下载 copilot-for-hbuilderx-v1.zip 插件到本地
  2. 将插件安装到 plugin目录下, 详细参考: 离线插件安装指南
  3. 重启 Hbuilder X 后点击登录 GitHub Copilot 即可.

局域网共享方案

如果是局域网多台电脑共用一个服务端只需要更改hosts文件指向到内网服务器 ip 即可, 例如:
在局域网服务器(192.168.80.40)部署了copilot-proxies服务那么局域网内其他机器仅需要修改host为以下即可可以工作。 ( @pennbay 提供实测反馈 )

192.168.80.40 copilot.supercopilot.top
192.168.80.40 api.copilot.supercopilot.top
192.168.80.40 copilot-proxy.copilot.supercopilot.top
192.168.80.40 copilot-telemetry-service.copilot.supercopilot.top

纯内网离线部署方案

v0.1.0 版本之后 ssl 证书调整为从网络上下载同步, 这对于纯内网部署造成了一些困难, 下面我提供一个简单的方案你需要做如下操作:

  • 从外网下载最新证书文件, 远程下载地址参考 certificate.go, 注意证书最长只有 60 天, 需要手动更新.
  • 将两个证书文件放在 /cert 目录下.
  • 因为也无法连接公共 DNS 服务器, 所以也需要更改本机 hosts 文件, 将以下域名手动指向到本机的 127.0.0.1:
    • copilot.supercopilot.top
    • api.copilot.supercopilot.top
    • copilot-proxy.copilot.supercopilot.top
    • copilot-telemetry-service.copilot.supercopilot.top
  • 启动主程序.

还有一种方案, 依旧使用 v0.1.0 之前版本的自签证书, 但这会在未来 GitHub Copilot 插件更新后可能无法正常使用.

支持的模型

大部分Chat模型都兼容, 因此下面列出的模型是支持 FIM 的模型, 也就是说支持补全功能.

模型名称 (区分大小写) 类型 接入地址 说明
Qwen/Qwen2.5-Coder-7B-Instruct 免费
查看地址https://api.siliconflow.cn/v1/completions
硅基流动官方支持的 FIM 补全模型, 完美适配且免费
DeepSeek (API) 付费
查看地址https://api.deepseek.com/beta/v1/completions
👍🏻完美适配且价格实惠, 推荐使用
deepseek-ai/DeepSeek-V2.5 付费
查看地址https://api.siliconflow.cn/v1/completions
硅基流动官方支持的 FIM 补全模型, 完美适配
deepseek-ai/DeepSeek-Coder-V2-Instruct 付费
查看地址https://api.siliconflow.cn/v1/completions
硅基流动官方支持的 FIM 补全模型, 完美适配
codestral-latest (API) 免费 / 付费
查看地址https://api.mistral.ai/v1/fim/completions
Mistral 出品, 免费计划有非常严重的频率限制
stable-code 免费
查看地址http://127.0.0.1:11434/v1/chat/completions
Ollama部署本地的超小量级补全模型
codegemma 免费
查看地址http://127.0.0.1:11434/v1/chat/completions
Ollama部署本地的补全模型
codellama 免费
查看地址http://127.0.0.1:11434/v1/chat/completions
Ollama部署本地的补全模型
qwen-coder-turbo-latest 收费
查看地址https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
阿里通义代码补全模型
mike/deepseek-coder-v2 免费
查看地址http://127.0.0.1:11434/api/generate
Ollama支持的 suffix 参数方式实现
deepseek-coder-v2 免费
查看地址http://127.0.0.1:11434/api/generate
Ollama支持的 suffix 参数方式实现

💡以上接入的模型除了 DeepSeek 模型与 硅基流动 模型之外, 效果均不理想, 这里仅做接入更多模型的Demo参考., 理论上后续如果有API支持标准的FIM补全, 都可以接入.

使用Github Copilot官方服务

前提条件: 必须有官方正版的 GitHub Copilot 订阅权限, 否则无法使用.

应用场景:

  • 适用于 "月抛" 的Github账号, 避免每个月切换Github账号后都要重复登录多个IDE中的插件操作, 只需要更改环境变量中的 COPILOT_GHU_TOKEN 参数一处即可.
  • 适用于 "多人共享" 的Github账号, 共享者只需要使用此服务即可, 不需要告知Github账号密码.

使用方法

  • 设置环境变量参数 COPILOT_CLIENT_TYPE=github (设置此参数后其他的Copilot相关配置都可以不用设置了, 因为这里已经使用了官方的服务).
  • 启动服务访问 https://copilot.supercopilot.top/github/login/device/code 获取 ghu_ 的参数
  • 将获取到的 ghu_ 参数填写到 COPILOT_GHU_TOKEN 环境变量中.
  • 重启服务, 重启IDE即可.

全代理模式

即所有请求走依旧服务端,然后由服务端发起请求到github, 在多人共享账号的情况下所有请求全部统一出口, 可以略微降低被风控的情况.

  • 设置环境变量参数 COPILOT_PROXY_ALL=true (默认值为 false).
  • 重启服务即可.
  • 全代理模式的 /embeddings/chunks 接口即将推出.

🚨 全代理模式有封号的风险, 请自行甄别谨慎使用. 补全和对话接口的请求频率都有阀值限制的, 共享人数过多肯定会触发风控.

Embeddings模型配置

目前仅 VSCode 最新版本的 Github Copilot Chat 插件支持使用 Embeddings 模型, 其他IDE可以不用考虑.

支持使用任意符合 OpenAI 接口格式的模型, 推荐本地Docker部署bge-m3的模型, 具体步骤如下参考: README.md 中的Docker运行部分内容.

然后配置服务端
修改下面相关环境变量文件内容:

EMBEDDING_API_BASE=http://127.0.0.1/v1/embeddings
EMBEDDING_API_KEY=sk-aaabbbcccdddeeefffggghhhiiijjjkkk
EMBEDDING_API_MODEL_NAME=bge-m3
EMBEDDING_DIMENSION_SIZE=1024

如果你是 One API 之类的中转站, 也可以按照上面环境变量内容直接接入.

⚠️ 如果使用第三方API的Embedding模型, 可能会有隐私相关风险以及请求限频问题.

问题排查

如果本地部署遇到了 无法登录 无法对话 无法补全 等问题, 可以参考下面的排查方法:

  1. 确认最新版本服务
  2. ping copilot.supercopilot.top 是否指向 127.0.0.1 ,如果不是则表明受到了代理工具影响
  3. 访问 https://copilot.supercopilot.top 是否出现帮助页面
  4. 检查目录下是否含有 cert 目录
  5. 特别注意检查 https 端口不可被占用

注意事项

  1. 请勿将本服务用于商业用途, 仅供学习交流使用
  2. 请勿将本服务用于非法用途, 一切后果自负

鸣谢

Description
No description provided
Readme MIT 133 KiB
Languages
Go 76.6%
HTML 17.4%
Python 4.6%
Dockerfile 0.9%
Makefile 0.5%