Copilot后端代理服务
综合介绍
Copilot后端代理服务是一个由开发者“Ripper”创建的开源项目。它使用Go语言编写,主要功能是为GitHub Copilot提供一个后端的代理服务。通过这个代理,用户可以实现对Copilot服务的自定义配置和管理,尤其适合那些在特殊网络环境下或希望对API请求进行控制的开发者。该项目支持多种部署方式,包括直接运行二进制文件和使用Docker容器化部署,覆盖了Windows、Linux和macOS等主流操作系统。项目的一个核心特点是允许用户替换或调整服务所依赖的大语言模型,例如通过修改models.json
文件来接入DeepSeek等第三方模型,从而在特定场景下(如代码填充)替代官方模型,以实现成本控制或功能扩展。
功能列表
- 代理服务: 为GitHub Copilot官方服务提供请求代理,解决国内用户访问官方接口可能存在的网络问题。
- 自定义模型: 支持通过修改
models.json
配置文件,将代码补全、聊天等功能的请求转发给第三方FIM(Fill-in-the-Middle)模型,例如DeepSeek Coder。 - 跨平台部署: 提供适用于Windows、Linux、macOS等多种操作系统架构的预编译二进制文件。
- Docker支持: 提供
docker-compose.yml
文件,支持通过Docker进行快速容器化部署和更新。 - 图形化界面: 为Windows用户提供带有GUI的应用程序(
copilot-proxies-windows-amd64-gui.exe
),简化操作。 - 自动化证书管理: 新版本实现了SSL证书的自动化处理,用户在本地部署时不再需要手动修改
hosts
文件或配置自签名证书。 - 多IDE支持: 除了官方支持的VS Code、JetBrains系列IDE外,还为HBuilderX等编辑器提供了专门的插件和配置指南。
- 企业版账号适配: 支持使用GitHub企业版账号通过代理连接Copilot服务。
使用帮助
该项目旨在为GitHub Copilot提供一个代理后端,让用户可以在本地环境中部署,从而解决网络访问问题或实现对模型的自定义。以下是详细的安装和使用流程。
一、 环境准备
在开始之前,请确保你的开发工具(如VS Code、JetBrains IDEs、Visual Studio等)已经安装了GitHub Copilot官方插件。此项目只负责代理后端服务,不提供插件本身。
二、 部署代理服务
你可以选择两种方式部署代理服务:直接运行可执行文件或使用Docker。
方式1:直接运行可执行文件(适用于快速体验)
- 下载文件:访问项目的Gitee发行版页面(Releases),根据你的操作系统下载最新的预编译文件。 例如:
- Windows用户:下载
copilot-proxies-windows-amd64.exe
或带图形界面的copilot-proxies-windows-amd64-gui.exe
。 - macOS (Apple Silicon)用户:下载
copilot-proxies-darwin-arm64
。 - Linux用户:下载
copilot-proxies-linux-amd64
。
- Windows用户:下载
- 下载模型配置文件:从v0.1.11版本开始,项目引入了
models.json
文件用于管理模型列表。你需要从代码仓库根目录下载这个文件,并确保它与你下载的可执行文件放在同一个目录下。如果缺少此文件,程序将无法正常启动。 - 运行程序:打开你的终端(Windows上是CMD或PowerShell),进入文件所在的目录,直接运行它。
- 在Linux或macOS上,你可能需要先给文件添加执行权限:
chmod +x ./copilot-proxies-linux-amd64 ./copilot-proxies-linux-amd64
- 在Windows上,直接双击
.exe
文件或在命令行中运行:.\copilot-proxies-windows-amd64.exe
程序启动后,默认会在本地
8080
端口监听HTTP请求。 - 在Linux或macOS上,你可能需要先给文件添加执行权限:
方式2:使用Docker或Docker Compose部署(推荐,便于长期使用和更新)
这种方式更稳定,且更新方便。
- 下载配置文件:从项目的Gitee仓库克隆或下载
docker-compose.yml
文件。 - 启动容器:在存放
docker-compose.yml
的目录下,打开终端并执行以下命令:docker-compose up -d
该命令会自动拉取最新的Docker镜像并以后台模式启动容器。服务同样会映射到主机的
8080
端口。 - 更新服务:当项目发布新版本后,你只需要执行以下命令即可完成更新:
docker-compose pull docker-compose up -d
三、 配置IDE以使用代理
代理服务正常运行后,你需要修改IDE的设置,将Copilot插件的请求指向这个本地代理。
核心原理:通过修改你本机的hosts
文件,将GitHub Copilot官方用于验证和代码补全的域名指向你的本地计算机地址(127.0.0.1
)。
- 修改Hosts文件:
- Windows:
C:\Windows\System32\drivers\etc\hosts
- macOS / Linux:
/etc/hosts
使用管理员权限打开
hosts
文件,在文件末尾添加以下两行:127.0.0.1 api.github.com 127.0.0.1 gist.github.com
注意:修改
hosts
文件可能会影响你正常访问GitHub API和Gist,当你不需要使用代理时,记得将这两行注释掉(在行首加#
号)或删除。 - Windows:
- 配置IDE插件:不同的IDE,配置代理的方法略有不同。通常是在IDE的设置中找到GitHub Copilot的相关选项,将其API端点或服务地址覆盖为本地代理的地址。
- VS Code:打开设置文件
settings.json
(通常通过Ctrl+Shift+P
并搜索Open User Settings (JSON)
来打开),添加或修改以下配置:"github.copilot.advanced": { "authProvider": "github-enterprise", "auth.host": "https://api.github.com", "chat.model": "gpt-4", "override.api.url": "http://127.0.0.1:8080/v1", "override.chat.api.url": "http://127.0.0.1:8080/v1/chat/completions", "override.token.url": "http://127.0.0.1:8080/v1/token" }
- JetBrains系列 (如IntelliJ IDEA, PyCharm):通常需要在IDE的代理设置中进行配置,或直接修改插件的配置文件。具体路径和方式请参考项目文档或社区讨论,因为插件版本更新可能会改变配置方式。
- HBuilderX:该项目为HBuilderX提供了专门的插件。你需要下载指定的插件压缩包,并将其安装到HBuilderX的
plugin
目录下,然后重启IDE即可。
- VS Code:打开设置文件
- 重启IDE并验证:完成上述所有配置后,完全关闭并重新启动你的IDE。重启后,Copilot插件会尝试通过本地代理进行认证和代码请求。如果一切正常,右下角的Copilot图标会显示为活动状态,你就可以正常使用代码补全和聊天功能了。
应用场景
- 网络受限环境对于无法直接、稳定地访问GitHub Copilot官方服务器(
api.github.com
)的开发者,可以在一台能够访问外网的服务器上部署此代理,然后将公司或家庭内网的开发环境指向该代理服务器,从而解决网络连接问题。 - 降低使用成本GitHub Copilot是一项付费服务。该代理项目支持修改
models.json
配置文件,将代码补全或聊天的API请求转发到其他兼容的模型服务上,例如免费或成本更低的DeepSeek模型、或是自己部署的开源大模型。这为个人开发者和小型团队提供了一种灵活的成本控制方案。 - 企业内部代码安全审计在一些对代码安全要求极高的企业中,不允许源代码被发送到外部云服务。通过部署此代理,企业可以在代理层增加请求日志、数据脱敏或安全审计逻辑,监控所有进出Copilot服务的代码片段,确保符合内部安全规范。
- 学习和技术研究对于想了解Copilot工作原理或大语言模型API交互的开发者来说,这个开源项目是一个很好的学习材料。通过阅读其Go语言实现的源代码,可以深入理解Copilot的验证流程、API请求格式以及如何与不同的大模型进行交互。
QA
- 这个项目是免费使用GitHub Copilot吗?不是。这个项目本身是一个代理工具,它不破解Copilot的付费机制。你仍然需要一个有效的GitHub Copilot订阅账号。它的主要作用是解决网络问题,或提供一个用其他AI模型替代官方模型的“插座”。如果你选择使用第三方模型(如DeepSeek),则遵循该模型的使用条款。
- 修改hosts文件会影响我正常使用Git或访问GitHub网站吗?修改
api.github.com
可能会影响需要通过API进行操作的工具(例如GitHub CLI)。但它通常不会影响你通过浏览器访问github.com
网站或使用git
命令进行代码的clone
、push
、pull
等操作,因为这些操作大多直接使用github.com
域名,而不是api.github.com
。不过,当你不需要代理时,建议将hosts
文件的修改还原,以免产生意外问题。 - 为什么更新版本后,程序无法启动了?从
v0.1.11
版本开始,程序启动时需要一个名为models.json
的配置文件在同级目录下。请检查你是否从代码仓库下载了这个文件。如果你使用Docker部署,确保你的docker-compose.yml
中正确挂载了该文件的路径。 - 我可以在哪里找到对HBuilderX IDE的支持?项目的Gitee发行版页面提到,有专门为HBuilderX制作的插件包(
copilot-for-hbuilderx-v1.zip
)和安装指南。你可以前往发行版页面或项目说明中查找相关的下载链接和说明文档。