Skip to content

moonheart/gcp

Repository files navigation

Github Copilot 后端代理服务

仅需四步即刻拥有离线的Copilot小助手同款服务,速度更快,更稳定,更安全。

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

🚨破坏性更新提示: v0.0.5 版本为了更加简单的部署使用, 精简掉了Nginx服务的同时也改变了默认的端口号(11110 → 1188), 详细更新内容到: releases 页面查看

特点

  • 支持使用Docker部署, 简单方便
  • 支持多种IDE, 如: VSCode, Jetbrains IDE系列, Visual Studio 2022, HBuilderX
  • 支持任意符合 OpenAI 接口规范的模型, 和 Ollama 部署的本地模型
  • GitHub Copilot 插件各种API接口全接管, 无需担心插件升级导致服务失效
  • 代码补全请求防抖设置, 避免过度消耗 Tokens

支持的模型

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

模型名称 类型 接入地址 说明
DeepSeek (API) 付费 https://api.deepseek.com/beta/v1/completions 👍🏻完美适配, 推荐使用
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 阿里通义代码补全模型

💡以上接入的模型除了 DeepSeek 模型之外, 效果均不理想, 这里仅做接入更多模型的Demo参考.

如何使用?

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

快速使用步骤

  1. 部署服务: 可以使用下载文件直接部署使用 或 使用docker部署.
  2. 配置IDE: 详细参考下面的IDE设置方法.
  3. 修改本地hosts文件: 具体参考配置本机hosts文件.
  4. 信任SSL证书: 具体参考信任证书 (可选).
  5. 重启IDE, 点击登录 GitHub Copilot 插件即可.

Docker部署

(推荐) 懒人推荐使用此方案, 比较简单
已经将自签证书的工作做完了, 只需要将 docker-compose.yml 文件下载到本地, 将里面的 模型API KEY 替换为你的, 然后执行以下命令即可启动服务:

# 启动服务
docker-compose up -d

# 停止服务
docker-compose down

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

# 查看日志
docker-compose logs -f

镜像全部上传到阿里云容器镜像服务, 国内访问无惧.

下载文件直接部署使用

  1. 下载最新版本的可执行文件 访问 releases, 修改里面 .env 文件的配置项, 然后直接运行即可.
  2. 如果希望绑定自己自有的域名, 可以参考: 自定义域名 配置, 然后将所有 mycopilot.com 相关的域名都修改为自己的域名.
  3. 启动服务后然后按照IDE设置方法配置IDE.
  4. 重启IDE,登录 GitHub Copilot 插件.

配置本机hosts文件

将下面hosts配置添加到本机hosts文件中, 以便访问本地服务:

127.0.0.1 mycopilot.com
127.0.0.1 api.mycopilot.com
127.0.0.1 copilot-proxy.mycopilot.com
127.0.0.1 copilot-telemetry-service.mycopilot.com

IDE设置方法

VSCode

  1. 安装插件: GitHub Copilot
  2. 修改 VSCode 的 settings.json 文件, 添加以下配置:
"github.copilot.advanced": {
  "authProvider": "github-enterprise",
  "debug.overrideCAPIUrl": "http://api.mycopilot.com:1188",
  "debug.overrideProxyUrl": "http://copilot-proxy.mycopilot.com:1188",
  "debug.chatOverrideProxyUrl": "http://api.mycopilot.com/chat/completions:1188"
},
"github-enterprise.uri": "http://mycopilot.com:1188"

vscode 使用https有些问题, 并且直接使用ip好像也不行, 所以这里使用http的域名+端口的形式 ( 不直接使用80端口是为了防止服务冲突), 形式不重要直接粘贴进去即可.

Jetbrains IDE系列

  1. 找到设置 > 语言与框架 > GitHub Copilot > Authentication Provider
  2. 填写的值为: mycopilot.com
  3. 如果已经配置了系统级别的信任证书, 可以忽略下面步骤, 直接在IDE中信任即可. Xnip2024-09-14_13-08-17.png

Visual Studio 2022

最新版本(内置 Copilot 版本):

首先开启 Github Enterprise 账户支持:工具-环境-账户-勾选“包含 Github Enterprise 服务器账户”

然后点击添加 Github 账户,切换到 Github Enterprise 选项卡,输入 https://mycopilot.com 即可。

Visual Studio 2022 版本 17.8 及以下的版本:

请访问: Visual Studio 2022 降级长绿引导程序 ** 选择 17.8 的版本即可.

配置系统环境变量

CODESPACES=true
GITHUB_API_URL=https://api.mycopilot.com
GITHUB_SERVER_URL=https://mycopilot.com
GITHUB_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbiI6IjIxY2VjNyIsImNsaWVudCI6Ikl2MS5iNTA3YTA4Yzg3ZWNmZTk4IiwiaXNzIjoidXNlciIsImV4cCI6MzQ1MjczNTYyMCwibmJmIjoxNzI2MzY3ODEwLCJpYXQiOjE3MjYzNjc4MTB9.XPdtNpeEqrRjVx6CY3sdud37XPxM-LiYLAT_ZLbuj1A
AGENT_DEBUG_OVERRIDE_PROXY_URL=https://copilot-proxy.mycopilot.com
GITHUB_USER=Copilot
AGENT_DEBUG_OVERRIDE_CAPI_URL=https://api.mycopilot.com

HBuilderX

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

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

模型超参数说明

  • CODEX_TEMPERATURE : 模型温度, 默认值为 1, 可以调整为 0.1-1.0 之间的值.
  • 此参数可以略微影响补全结果, 但是不建议调整, 除非你知道你在做什么.

自定义域名

如果你有自己的域名或者不想使用默认的 mycopilot.com 域名, 你需要申请或自签一个https证书, 然后将证书文件路径配置到 .envdocker-compose.yml 文件中.

自有域名配置

将域名添加解析以下四个域名, 假设你的域名为 yourdomain.com (非必须是顶级域名), 则你需要解析的域名记录如下:

  • DEFAULT_BASE_URL: yourdomain.com
  • API_BASE_URL: api.yourdomain.com
  • PROXY_BASE_URL: copilot-proxy.yourdomain.com
  • TELEMETRY_BASE_URL: copilot-telemetry-service.yourdomain.com
  • 以上四个域名都需要配置SSL证书, 通配符证书教程参考免费通配符证书申请方法.
  • 以上几个域名前缀 (api, copilot-proxy, copilot-telemetry-service) 必须是一样的, 不可自定义修改, 否则会导致插件无法登录或正常使用.
  • 最后将以上域名修改到对应的环境变量配置文件中.

没有域名自签本地证书

如果你没有域名, 可以随便想一个"假"域名, 然后直接修改 hosts 文件的方式进行解析, 然后使用自签证书即可.

通配符证书申请方法

使用 acme.sh 依旧可以申请通配符域名证书, 如果你的域名托管在 cf 腾讯云 阿里云 等等, 都可以使用他们的API来自动续期.

安装acme.sh

# 官方
curl https://get.acme.sh | sh -s email=617498836@qq.com

# 国内镜像
https://github.com/acmesh-official/acme.sh/wiki/Install-in-China

# 使环境变量立即生效
source ~/.bashrc

# 创建一个 alias,便于后续访问:
alias acme.sh=~/.acme.sh/acme.sh

操作步骤

我这里域名是托管在 cf 上的, 所以使用 cf 的API来申请证书, 你可以根据自己的情况来选择.

  1. 配置dns秘钥
export CF_Email="110110110@qq.com"
export CF_Key="xxxxxxx"
  1. 签发证书
acme.sh --issue --dns dns_cf -d supercopilot.top -d '*.supercopilot.top'
  1. 安装证书
# 新建一个证书目录
mkdir -p /etc/nginx/cert_file/supercopilot.top

# 安装证书
acme.sh --install-cert -d supercopilot.top -d *.supercopilot.top \
		--key-file   /etc/nginx/cert_file/key.pem  \
		--fullchain-file /etc/nginx/cert_file/fullchain.pem
  1. 修改对应的环境变量配置
    • CERT_FILE=/etc/nginx/cert_file/fullchain.pem
    • KEY_FILE=/etc/nginx/cert_file/key.pem

如果你使用宝塔面板将会更加容易的申请, 因为面板中已经高度集成了此模块

注意事项

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

鸣谢

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages