mirror of
https://github.com/Wei-Shaw/sub2api.git
synced 2026-10-20 08:19:58 +00:00
handler 与 admin_service 各持一份逐分支同构的平台默认模型 switch(必须人工同步)。 提取 service.DefaultModelIDsForPlatform 为单一来源 + 表驱动测试; 原函数改单行委托(调用点零改动)。含 Phase-3 审计报告归档(零 P0/P1,突变 3/3 捕获)。
40 lines
1.3 KiB
Go
40 lines
1.3 KiB
Go
package service
|
|
|
|
import (
|
|
"github.com/Wei-Shaw/sub2api/internal/pkg/antigravity"
|
|
"github.com/Wei-Shaw/sub2api/internal/pkg/claude"
|
|
"github.com/Wei-Shaw/sub2api/internal/pkg/geminicli"
|
|
"github.com/Wei-Shaw/sub2api/internal/pkg/openai"
|
|
)
|
|
|
|
// DefaultModelIDsForPlatform 返回平台默认模型 ID 列表(未知平台回退 Claude 默认集)。
|
|
//
|
|
// 由 handler 的 /v1/models 自定义模型过滤与 admin 的默认模型候选两处共同消费——
|
|
// 此前两处各持一份同构 switch,必须人工保持同步(Phase-3 TASK-003 收敛为单一来源)。
|
|
// 仅共享"ID 列表"这一形状;需要完整模型结构体的调用方仍直接使用各平台包的导出值。
|
|
func DefaultModelIDsForPlatform(platform string) []string {
|
|
switch platform {
|
|
case PlatformOpenAI:
|
|
return openai.DefaultModelIDs()
|
|
case PlatformGemini:
|
|
ids := make([]string, 0, len(geminicli.DefaultModels))
|
|
for _, model := range geminicli.DefaultModels {
|
|
ids = append(ids, model.ID)
|
|
}
|
|
return ids
|
|
case PlatformAntigravity:
|
|
models := antigravity.DefaultModels()
|
|
ids := make([]string, 0, len(models))
|
|
for _, model := range models {
|
|
ids = append(ids, model.ID)
|
|
}
|
|
return ids
|
|
default:
|
|
ids := make([]string, 0, len(claude.DefaultModels))
|
|
for _, model := range claude.DefaultModels {
|
|
ids = append(ids, model.ID)
|
|
}
|
|
return ids
|
|
}
|
|
}
|