逻辑模型组

wesgine Cell 级别的模型别名与分组机制。


问题背景

同一个语义能力(如"主力对话模型")可能对应多个物理模型入口:

消费方不应关心物理路由,只应说"用主力模型"。


LogicalModelGroups

type CellSpec struct {
    LogicalModelGroups map[string][]string
    // "primary": ["gpt-4o", "claude-sonnet-4-20250514"]
    // "fast":    ["gpt-4o-mini", "claude-haiku"]
}

逻辑组名 → 物理模型列表。消费方传逻辑名,引擎按顺序尝试。


与 AllowedModels 的关系

配置作用
AllowedModels白名单——只有列出的模型可以被使用
LogicalModelGroups别名——逻辑名映射到一组物理模型

两者正交:AllowedModels 收窄范围,LogicalModelGroups 提供便利。


DisallowActorProvider

type CellSpec struct {
    DisallowActorProvider bool
    // true = 禁止 Actor 自带 Provider
}

金融合规场景可能禁止用户 BYOK(自带密钥),强制使用企业指定模型。


消费方使用

req := wesgine.AppRunRequest{
    Model: "primary",  // 逻辑名,非物理模型名
    // ...
}

引擎在 Resolver 链中把逻辑名展开为物理模型列表,按序尝试。


典型配置示例

# 金融合规部门
logical_model_groups:
  primary: ["azure-gpt-4o"]        # 只用境内部署
  fast: ["azure-gpt-4o-mini"]
allowed_models: ["azure-gpt-4o", "azure-gpt-4o-mini"]
disallow_actor_provider: true       # 禁止员工自带 Key
# 通用部门
logical_model_groups:
  primary: ["gpt-4o", "claude-sonnet-4-20250514"]
  fast: ["gpt-4o-mini", "claude-haiku"]
  code: ["claude-sonnet-4-20250514"]

相关文档