File size: 890 Bytes
6d60378 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | package server
import "strings"
// resolveModel 解析模型名协议(PLAN D6):
//
// 分布式前缀: "[realm:]model"
//
// 取第一个 ":",前段恰为 "cn"/"global" 才剥离;否则视为裸名,realm=cn、bare=原串。
// 大小写敏感(前缀必须是精确的小写枚举)。bare 即出站/选号/账本使用的裸模型名。
//
// 导出为 ResolveModel(cmd/server/main.go 粘性闭包需要),包内简写 resolveModel。
func resolveModel(model string) (realm, bare string) {
idx := strings.IndexByte(model, ':')
if idx < 0 {
return "cn", model
}
prefix := model[:idx]
if prefix != "cn" && prefix != "global" {
return "cn", model
}
return prefix, model[idx+1:]
}
// ResolveModel 是 resolveModel 的导出面(跨包调用)。
func ResolveModel(model string) (realm, bare string) { return resolveModel(model) }
|