为 Zed IDE 设置自定义 LLM provider
在Zed
IDE中,默认只支持以下几种 providers :
这对于国内开发者来说,由于政策原因,想使用起来可能需要借助一些科学上网的方法,这就有点麻烦了。另外国内几个大模型公司也都提供了一定的免费额度的 tokens,如果可以在 Zed 里集成国内几家的大模型,也是一个不错的主意。
几个月前试图通过自定义Endpoint
的方法绕过官方对使用区域的限制,但一直没有成功。今天重新试了一下仍是无效,本想打算在官方仓库里开发一个自定义provider的功能,就是感觉着有点麻烦,另外更担心个人电脑过旧,编译是一个大问题,于是重新在issue里找到了一个解决办法 https://github.com/zed-industries/zed/pull/13276,就是设置起来有点麻烦。
本文将其设置方法整理如下。
配置 settings.json
首先配置 settings.json 里的 assistant
和 language_models
。
这里以 DeepSeek 为例,完整的内容如下
{
"assistant": {
"default_model": {
"provider": "openai",
"model": "deepseek-chat"
},
"enabled": true,
"provider": {
"name": "openai",
"default_model": {
"custom": {
"max_tokens": 32000,
"name": "deepseek-chat"
}
},
"available_models": [
{
"custom": {
"name": "deepseek-chat",
"max_tokens": 32000
}
},
{
"custom": {
"name": "deepseek-code",
"max_tokens": 32000
}
}
],
"api_url": "https://api.deepseek.com/v1"
},
"version": "2"
},
"language_models": {
"openai": {
"version": "1",
"api_url": "https://api.deepseek.com/v1",
"available_models": [
{
"provider": "openai",
"name": "deepseek-chat",
"max_tokens": 32000
},
{
"provider": "openai",
"name": "deepseek-code",
"max_tokens": 32000
}
]
}
},
}
上面有些配置项看起来是重复的,这个不用管它,不要做任何删除操作,将其复制到 settings.json
文件里代替原来的配置项即可。其中 assistant.default_model
里的值会在后面选择不同模型时动态的更新。