逻辑模型组
wesgine Cell 级别的模型别名与分组机制。
问题背景
同一个语义能力(如"主力对话模型")可能对应多个物理模型入口:
- 共享池的
gpt-4o - 自有 Provider 的
gpt-4o - 另一个 Provider 的同名模型
消费方不应关心物理路由,只应说"用主力模型"。
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"]
相关文档
- Provider 策略 →
provider-strategy.md - Provider 系统 →
provider-system.md - CellSpec Provider →
cellspec-provider.md - 模型选择 →
model-selection.md