前言
GitHub Copilot 这东西确实好用,但它默认只支持 OpenAI 和 Anthropic 那几个海外模型。DeepSeek 和小米 MiMo 在中文代码理解上其实更对味儿,性价比也高,可惜 Copilot 用不上。
CopilotProxy 做的就是把这个口子打通。它起一个本地代理服务,把 Copilot 的请求转给 DeepSeek 和 MiMo,IDE 那边不用改任何配置。附带一个 WPF 小窗口,点几下就能配好 API Key、启动服务、看日志,不用跟命令行打交道。
项目介绍
CopilotProxy 是一个本地代理服务,在 GitHub Copilot 与国产大模型之间做协议转换。它模拟 Ollama 的 API 格式,让 Visual Studio 2026 和 VS Code 里的 Copilot Chat 能直接调用 DeepSeek V4 Pro/Flash 和 MiMo V2.5 系列模型。
项目分两部分:WPF 桌面管理工具负责配置、启停、日志查看;Node.js 脚本服务负责实际的 API 转发、提示词压缩、会话管理和工具调用标准化。整体基于 MIT 协议开源,代码在 GitHub 上。
项目功能
模块 | 功能说明 |
多模型接入 | 支持 DeepSeek V4 Pro/Flash、小米 MiMo V2.5 / Pro |
WPF 管理界面 | 可视化配置 API Key、一键构建/启动/停止/重启、实时日志显示 |
单实例 + 托盘 | 确保只有一个实例运行,关闭时收进托盘,双击唤醒 |
Ollama 协议兼容 | 模拟 Ollama API,VS / VS Code 原生接入,无需改配置 |
自动推理模式 | Pro 模型用最大推理强度(精准但稍慢),Flash/非 Pro 用最低推理(响应快) |
提示词压缩 | 9 级压缩可选(off / lite / caveman / rtk / ultra / delta / stacked / aggressive / standard) |
会话保活 | 自动维持 KV Cache,降低 API 调用成本 |
高并发控制 | 推理模型 5 并发、标准模型 15 并发 |
Token 用量统计 | 每轮对话输出 prompt/completion/total 用量日志 |
透传代理 | 未匹配的路由可转发到自定义上游 API,带 SSRF 防护 |
工具调用 | 完整 Function Calling 支持,Schema 自动校验补全、JSON 修复 |
中英文国际化 | WPF 与脚本服务双向同步语言,默认中文 |
版本检测 | 一键检查 GitHub 最新版本,自动提示更新 |
项目特点
IDE 零改动:模拟 Ollama 协议,VS 和 VS Code 里直接选 Ollama 提供程序就能用
国产模型优先:DeepSeek 和 MiMo 在中文代码、推理能力上不输海外模型,成本更低
傻瓜式管理:WPF 界面把所有操作收拢了,配 Key、启停、看日志不用敲命令
智能推理切换:Pro 模型自动开高推理,Flash 自动切低推理,不用手调
提示词压缩省 Token:9 档压缩级别,对话越长省得越多
会话保活省钱:维持 KV Cache,同一会话后续请求不走重复计算
高并发不排队:推理模型 5 路并发,普通模型 15 路,响应快
工具调用不翻车:Schema 自动补全,AI 生成的残缺参数能自动修好
安全兜底:SSRF 防护、终端命令白名单、API Key 本地加密存储
跨运行时兼容:支持 Bun 和 Node.js,Bun 还能编译成单 exe
项目技术
技术分类 | 具体选型 | 用途 |
桌面管理 | WPF + .NET 10 | 配置界面、服务控制、日志展示 |
代理服务 | Node.js / Bun + Hono | HTTP 路由、API 转发 |
协议模拟 | Ollama API | 兼容 Copilot 的模型接入协议 |
提示词压缩 | 自研 9 级压缩引擎 | 减少 Token 消耗 |
会话保活 | KV Cache 维持机制 | 复用推理缓存,降低成本 |
并发控制 | 队列 + 指数退避重试 | 限流、容错 |
工具调用 | Schema 标准化 + 自动补全 | Function Calling 修复 |
国际化 | 资源文件 + i18n 模块 | 中英文双语(156+ 翻译 Key) |
单实例 | Mutex + NamedPipe | 防止重复启动 |
日志 | AvalonEdit 控件 + ANSI 过滤 | 实时彩色日志显示 |
构建打包 | build.cmd / build-bun.cmd | 编译为独立 exe 或可移植文件夹 |
架构分层清晰:WPF 管界面和进程,脚本服务管 API 转发。两个进程通过 HTTP 和命令行参数通信,WPF 切语言时会同步给脚本服务。
项目效果
安装配置:下载源码或发布包,双击打开 WPF 工具。主界面分上下两块,上面是按钮区(构建、设置、启动、停止、重启、重建、检查更新、清空),下面是日志输出框。
点“设置”弹窗出来,填 DeepSeek API Key 或小米 MiMo API Key,其他参数保持默认就行。保存后配置自动同步到脚本目录的 .env 文件里。
构建和启动:点“构建”,脚本被编译打包到 .dist 文件夹。构建完成按钮亮起来,点“启动”,日志框里开始刷服务启动信息,看到 Server running on http://127.0.0.1:11434 就说明好了。
配置 IDE:打开 VS 2026,Copilot Chat 面板里点模型下拉菜单 → 管理模型 → 提供程序选 Ollama,端点填 http://localhost:11434,点添加。模型列表里会出现带 [DEEPSEEK] 和 [MIMO] 前缀的选项。VS Code 操作类似,装好 GitHub Copilot 扩展后同样方式添加 Ollama 提供程序。
实际使用:在 Copilot Chat 里选 [DEEPSEEK] deepseek-v4-pro,问一个“用 C# 写一个 Modbus RTU 的 CRC16 校验”,几秒钟后返回代码。日志框里能看到完整的请求响应过程,末尾有一行 [token] prompt:245 completion:312 total:557。切到小米 MiMo,回答风格不太一样,中文表述更自然一些。
工具调用:问 Copilot “帮我查一下当前文件夹里有哪些 .cs 文件”,AI 会调用 list_files 工具,代理服务自动补全缺失的参数,返回结果后 AI 整理成回答。整个过程在日志里能看到工具调用的 JSON 和返回结果。
会话保活:连续多轮对话时,日志里会出现 [keepalive] cache hit for session xxx 的提示,说明 KV Cache 命中,这一轮省掉了重复计算。
托盘和单实例:关掉 WPF 窗口,程序缩到系统托盘,鼠标悬停显示服务状态。再双击桌面快捷方式,不会开第二个窗口,而是把已有的窗口唤醒。这个细节很实用,不会乱。
项目源码
GitHub:https://github.com/shunnet/CopilotProxy
目录结构
CopilotProxy/├── src/│ ├── App.xaml / App.xaml.cs # 应用入口、单实例、全局异常│ ├── MainWindow.xaml / .cs # 主界面、日志控件│ ├── MainWindowModel.cs # MVVM 逻辑│ ├── Language.resx / .en.resx # 中英文资源│ ├── handler/│ │ ├── CmdHandle.cs # 脚本进程管理│ │ ├── EnvHandle.cs # 配置文件读写│ │ └── SingleInstanceHandle.cs # 单实例实现│ ├── models/EnvConfigModel.cs # 配置数据模型│ └── script/│ ├── start.cmd / build.cmd # 启动和构建入口│ ├── package.json # npm 依赖│ └── src/│ ├── server.js # 主服务、路由│ ├── snet-handle.js # 模型管理、API 请求│ ├── token-optimizer.js # 提示词压缩引擎│ ├── concurrency.js # 并发队列、重试│ ├── tool-extractor.js # 工具调用提取│ ├── tool-schemas.js # VS/VSCode 工具 Schema│ ├── session-keepalive.js # 会话保活│ └── ...快速开始:
git clone https://github.com/shunnet/CopilotProxy.gitcd CopilotProxy/src# 用 Visual Studio 2022 打开项目,编译运行 WPF 工具# 或在终端里直接跑脚本服务cd scriptbun run start # 推荐# 或npm run node系统要求
Windows 10 / 11
Visual Studio 2026 18.6.0+(如需使用 Copilot Chat)
Node.js 或 Bun(脚本服务运行时)
总结
CopilotProxy 解决的问题很具体:想用国产模型但 Copilot 不让连。解决方案也挺直接——中间加一层代理,把 Ollama 协议翻译给 DeepSeek 和 MiMo。
技术上的几个亮点值得提:提示词压缩 9 档可调,长对话省 Token 效果明显;会话保活把 KV Cache 复用起来,同一会话后续请求不重复算钱;工具调用的 Schema 自动补全,AI 输出不规范时能自动修复,这个在实际使用中帮了大忙。
WPF 管理工具虽然简单,但该有的都有——配 Key、启停、看日志、检查更新,不用去翻命令行。单实例和托盘也是实实在在的体验优化。
如果你在用 GitHub Copilot 但又想试试 DeepSeek 或小米 MiMo,这个项目可以直接上手。开源、MIT 协议、源码全公开,想改哪里改哪里。
关键词
最后
如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。也可以加入微信公众号[DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!
作者:小码编匠
出处:gitee.com/smallcore/DotNetCore
声明:网络内容,仅供学习,尊重版权,侵权速删,歉意致谢!
方便大家交流、资源共享和共同成长
纯技术交流群,需要加入的小伙伴请扫码,并备注【加群】
推荐阅读
觉得有收获?不妨分享让更多人受益
关注「DotNet技术匠」,共同提升技术实力
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!