背景
GitHub Copilot 目前主要接官方支持的几家模型提供商,想直接挂一个 OpenAI 兼容的自定义 API,路子不算顺。要么改 Copilot Chat 的源码,把自定义提供商塞进模型选择器;要么把接口再包一层,伪装成 Ollama,让 Copilot 走它原生支持的入口。
这两种做法目标一样,差别主要在维护成本。前者改动更直接,也更脆,插件版本跟不上、打包和依赖兼容都容易出问题;后者绕了一圈,但更接近'只改接入层,不碰 Copilot 本体',线上用起来省心一些。
方案一:直接改 Copilot Chat
这个方向的问题不是思路,而是现实约束。官方开源的 Copilot Chat 插件版本通常落后于 VS Code 主流版本,打包时 npm install 经常会碰到依赖或版本问题,得反复试。就算最后把插件打出来,模型选择器也未必会正常显示;我也见过把 package.json 里的 vscode 版本号改掉之后,问题还是没消失。
如果只是想验证机制,这条路可以走;真要长期用,我不太建议把它当主方案。
方案二:把 OpenAI 兼容 API 转成 Ollama 兼容 API
更稳的办法是借助 GitHub 上的 oai2ollama 项目。它用命令行起一个服务,把 OpenAI 兼容的接口包装成 Ollama 兼容的接口。对 Copilot 这类'不支持自定义 OpenAI API,但支持 Ollama'的工具来说,这个思路很实用,基本属于拿现成入口做适配。
操作步骤
-
安装 UV 工具
执行
uv tool install,做永久安装。 -
在 VS Code 里选择 Ollama
打开 Copilot 的模型选择器,选
Ollama。后面启动转换服务后,这里会出现第三方模型列表。 -
启动转换程序
直接在命令行运行,不需要先把项目完整下载到本地:
uvx oai2ollama --api-key your_api_key --base-url provider_base_url如果想长期跑着,可以用下面这种方式:
@echo off powershell -NoExit-Command"uvx oai2ollama --api-key your_api_key --base-url provider_base_url"
常见问题
如果模型列表没出来,先看命令行输出。多数情况不是 Copilot 本身坏了,而是 base-url 少了 /v1,补上就能认出来。
这套方案的好处是改动面小,出了问题也容易定位。真正麻烦的地方不在 Copilot,而在你接的那个第三方 API 是否真的按 OpenAI 兼容规范返回。只要这一层没对齐,前面再绕也没用。

