发布 0.2.0:模型池自愈、探测修正、任务异步触发与删除加固
This commit is contained in:
+31
-11
@@ -17,11 +17,10 @@ import (
|
||||
|
||||
// GenAiModel 是区域可用基础模型的摘要(管理面 ListModels)。
|
||||
type GenAiModel struct {
|
||||
Ocid string `json:"ocid"`
|
||||
Name string `json:"name"`
|
||||
Vendor string `json:"vendor"`
|
||||
ChatOnly bool `json:"-"`
|
||||
Caps []string `json:"capabilities"`
|
||||
Ocid string `json:"ocid"`
|
||||
Name string `json:"name"`
|
||||
Vendor string `json:"vendor"`
|
||||
Caps []string `json:"capabilities"`
|
||||
// Capability 是网关侧归一能力:CHAT / EMBEDDING(兼具时算 CHAT)
|
||||
Capability string `json:"capability"`
|
||||
// Deprecated 是 OCI 宣布的弃用时间(TimeDeprecated),nil 表示未宣布;
|
||||
@@ -71,18 +70,39 @@ func (c *RealClient) ListGenAiModels(ctx context.Context, cred Credentials, regi
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("list genai models: %w", err)
|
||||
}
|
||||
seen := map[string]bool{}
|
||||
now := time.Now()
|
||||
return dedupGenAiModels(resp.Items, time.Now()), nil
|
||||
}
|
||||
|
||||
// dedupGenAiModels 压平并按名称去重;同名多条目时优先保留不含 FINE_TUNE 能力的条目
|
||||
// (微调基座条目在部分区域不支持按需调用,缓存其 OCID 会导致调用 400)。
|
||||
func dedupGenAiModels(items []generativeai.ModelSummary, now time.Time) []GenAiModel {
|
||||
seen := map[string]int{}
|
||||
var out []GenAiModel
|
||||
for _, m := range resp.Items {
|
||||
for _, m := range items {
|
||||
gm, ok := toGenAiModel(m, now)
|
||||
if !ok || seen[gm.Name] {
|
||||
if !ok {
|
||||
continue
|
||||
}
|
||||
seen[gm.Name] = true
|
||||
if i, dup := seen[gm.Name]; dup {
|
||||
if hasFineTune(out[i].Caps) && !hasFineTune(gm.Caps) {
|
||||
out[i] = gm
|
||||
}
|
||||
continue
|
||||
}
|
||||
seen[gm.Name] = len(out)
|
||||
out = append(out, gm)
|
||||
}
|
||||
return out, nil
|
||||
return out
|
||||
}
|
||||
|
||||
// hasFineTune 判断能力列表是否含 FINE_TUNE(微调基座条目)。
|
||||
func hasFineTune(caps []string) bool {
|
||||
for _, c := range caps {
|
||||
if c == string(generativeai.ModelCapabilityFineTune) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// toGenAiModel 压平模型摘要;无归一能力、无名称或按需推理已退役
|
||||
|
||||
Reference in New Issue
Block a user