refactor(config): use provider-specific protocol instead of generic openai protocol

Update model configurations to use provider-specific protocols (zhipu, vllm,
gemini, shengsuanyun, deepseek, volcengine) instead of using the generic
"openai" protocol for all providers. This change ensures each provider
uses its correct protocol identifier and model naming convention.
This commit is contained in:
yinwm
2026-02-20 01:07:36 +08:00
parent 7f241647be
commit c08deb93d1
2 changed files with 21 additions and 21 deletions
+12 -12
View File
@@ -109,14 +109,14 @@ func ConvertProvidersToModelList(cfg *Config) []ModelConfig {
},
{
providerNames: []string{"zhipu", "glm"},
protocol: "openai",
protocol: "zhipu",
buildConfig: func(p ProvidersConfig) (ModelConfig, bool) {
if p.Zhipu.APIKey == "" && p.Zhipu.APIBase == "" {
return ModelConfig{}, false
}
return ModelConfig{
ModelName: "zhipu",
Model: "openai/glm-4",
Model: "zhipu/glm-4",
APIKey: p.Zhipu.APIKey,
APIBase: p.Zhipu.APIBase,
Proxy: p.Zhipu.Proxy,
@@ -125,14 +125,14 @@ func ConvertProvidersToModelList(cfg *Config) []ModelConfig {
},
{
providerNames: []string{"vllm"},
protocol: "openai",
protocol: "vllm",
buildConfig: func(p ProvidersConfig) (ModelConfig, bool) {
if p.VLLM.APIKey == "" && p.VLLM.APIBase == "" {
return ModelConfig{}, false
}
return ModelConfig{
ModelName: "vllm",
Model: "openai/auto",
Model: "vllm/auto",
APIKey: p.VLLM.APIKey,
APIBase: p.VLLM.APIBase,
Proxy: p.VLLM.Proxy,
@@ -141,14 +141,14 @@ func ConvertProvidersToModelList(cfg *Config) []ModelConfig {
},
{
providerNames: []string{"gemini", "google"},
protocol: "openai",
protocol: "gemini",
buildConfig: func(p ProvidersConfig) (ModelConfig, bool) {
if p.Gemini.APIKey == "" && p.Gemini.APIBase == "" {
return ModelConfig{}, false
}
return ModelConfig{
ModelName: "gemini",
Model: "openai/gemini-pro",
Model: "gemini/gemini-pro",
APIKey: p.Gemini.APIKey,
APIBase: p.Gemini.APIBase,
Proxy: p.Gemini.Proxy,
@@ -205,14 +205,14 @@ func ConvertProvidersToModelList(cfg *Config) []ModelConfig {
},
{
providerNames: []string{"shengsuanyun"},
protocol: "openai",
protocol: "shengsuanyun",
buildConfig: func(p ProvidersConfig) (ModelConfig, bool) {
if p.ShengSuanYun.APIKey == "" && p.ShengSuanYun.APIBase == "" {
return ModelConfig{}, false
}
return ModelConfig{
ModelName: "shengsuanyun",
Model: "openai/auto",
Model: "shengsuanyun/auto",
APIKey: p.ShengSuanYun.APIKey,
APIBase: p.ShengSuanYun.APIBase,
Proxy: p.ShengSuanYun.Proxy,
@@ -221,14 +221,14 @@ func ConvertProvidersToModelList(cfg *Config) []ModelConfig {
},
{
providerNames: []string{"deepseek"},
protocol: "openai",
protocol: "deepseek",
buildConfig: func(p ProvidersConfig) (ModelConfig, bool) {
if p.DeepSeek.APIKey == "" && p.DeepSeek.APIBase == "" {
return ModelConfig{}, false
}
return ModelConfig{
ModelName: "deepseek",
Model: "openai/deepseek-chat",
Model: "deepseek/deepseek-chat",
APIKey: p.DeepSeek.APIKey,
APIBase: p.DeepSeek.APIBase,
Proxy: p.DeepSeek.Proxy,
@@ -253,14 +253,14 @@ func ConvertProvidersToModelList(cfg *Config) []ModelConfig {
},
{
providerNames: []string{"volcengine", "doubao"},
protocol: "openai",
protocol: "volcengine",
buildConfig: func(p ProvidersConfig) (ModelConfig, bool) {
if p.VolcEngine.APIKey == "" && p.VolcEngine.APIBase == "" {
return ModelConfig{}, false
}
return ModelConfig{
ModelName: "volcengine",
Model: "openai/doubao-pro",
Model: "volcengine/doubao-pro",
APIKey: p.VolcEngine.APIKey,
APIBase: p.VolcEngine.APIBase,
Proxy: p.VolcEngine.Proxy,
+9 -9
View File
@@ -205,8 +205,8 @@ func TestConvertProvidersToModelList_PreservesUserModel_DeepSeek(t *testing.T) {
}
// Should use user's model, not default
if result[0].Model != "openai/deepseek-reasoner" {
t.Errorf("Model = %q, want %q (user's configured model)", result[0].Model, "openai/deepseek-reasoner")
if result[0].Model != "deepseek/deepseek-reasoner" {
t.Errorf("Model = %q, want %q (user's configured model)", result[0].Model, "deepseek/deepseek-reasoner")
}
}
@@ -302,8 +302,8 @@ func TestConvertProvidersToModelList_UsesDefaultWhenNoUserModel(t *testing.T) {
}
// Should use default model
if result[0].Model != "openai/deepseek-chat" {
t.Errorf("Model = %q, want %q (default)", result[0].Model, "openai/deepseek-chat")
if result[0].Model != "deepseek/deepseek-chat" {
t.Errorf("Model = %q, want %q (default)", result[0].Model, "deepseek/deepseek-chat")
}
}
@@ -335,8 +335,8 @@ func TestConvertProvidersToModelList_MultipleProviders_PreservesUserModel(t *tes
t.Errorf("OpenAI Model = %q, want %q (default)", mc.Model, "openai/gpt-4o")
}
case "deepseek":
if mc.Model != "openai/deepseek-reasoner" {
t.Errorf("DeepSeek Model = %q, want %q (user's)", mc.Model, "openai/deepseek-reasoner")
if mc.Model != "deepseek/deepseek-reasoner" {
t.Errorf("DeepSeek Model = %q, want %q (user's)", mc.Model, "deepseek/deepseek-reasoner")
}
}
}
@@ -350,7 +350,7 @@ func TestConvertProvidersToModelList_ProviderNameAliases(t *testing.T) {
}{
{"gpt", "openai/gpt-4-custom", ProviderConfig{APIKey: "key"}},
{"claude", "anthropic/claude-custom", ProviderConfig{APIKey: "key"}},
{"doubao", "openai/doubao-custom", ProviderConfig{APIKey: "key"}},
{"doubao", "volcengine/doubao-custom", ProviderConfig{APIKey: "key"}},
{"tongyi", "qwen/qwen-custom", ProviderConfig{APIKey: "key"}},
{"kimi", "moonshot/kimi-custom", ProviderConfig{APIKey: "key"}},
}
@@ -430,8 +430,8 @@ func TestConvertProvidersToModelList_NoProviderField_SingleProvider(t *testing.T
}
// Model should use the user's model with protocol prefix
if result[0].Model != "openai/glm-4.7" {
t.Errorf("Model = %q, want %q", result[0].Model, "openai/glm-4.7")
if result[0].Model != "zhipu/glm-4.7" {
t.Errorf("Model = %q, want %q", result[0].Model, "zhipu/glm-4.7")
}
}