『7x24小时有问必答』

前言

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.git

cd  CopilotProxy/src

# 用 Visual Studio 2022 打开项目,编译运行 WPF 工具

# 或在终端里直接跑脚本服务

cd  script

bun 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 协议、源码全公开,想改哪里改哪里。

关键词

Copilot代理DeepSeek小米MiMoOllama协议本地代理、WPF、.NET 10、提示词压缩会话保活工具调用、Function Calling、VS Code、Visual Studio 2026
最后
如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。也可以加入微信公众号[DotNet技术匠]  社区,与其他热爱技术的同行一起交流心得,共同成长!
作者:小码编匠
出处:gitee.com/smallcore/DotNetCore
声明:网络内容,仅供学习,尊重版权,侵权速删,歉意致谢!

END

方便大家交流、资源共享和共同成长
纯技术交流群,需要加入的小伙伴请扫码,并备注加群

推荐阅读

觉得有收获?不妨分享让更多人受益
关注「DotNet技术匠」,共同提升技术实力

收藏
点赞
分享
在看

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码