2.4 KiB
2.4 KiB
ADDED Requirements
Requirement: 解析统一模型 ID
系统 SHALL 提供 ParseUnifiedModelID 函数,将 provider_id/model_name 格式的字符串解析为独立的 providerID 和 modelName。
Scenario: 标准格式解析
- WHEN 传入
"openai/gpt-4" - THEN SHALL 返回 providerID=
"openai", modelName="gpt-4"
Scenario: model_name 含斜杠的解析
- WHEN 传入
"azure/accounts/org-123/models/gpt-4" - THEN SHALL 在第一个
/处分割,返回 providerID="azure", modelName="accounts/org-123/models/gpt-4"
Scenario: 缺少分隔符
- WHEN 传入不含
/的字符串(如"gpt-4") - THEN SHALL 返回错误
Scenario: 空字符串
- WHEN 传入空字符串
- THEN SHALL 返回错误
Scenario: 只有分隔符
- WHEN 传入
"/model"或"provider/"或"/" - THEN SHALL 返回错误
Scenario: providerID 不符合字符集
- WHEN 传入
"open-ai/gpt-4"或"open.ai/gpt-4"或"供应商/gpt-4"(providerID 含非[a-zA-Z0-9_]字符) - THEN SHALL 返回错误
Requirement: 格式化统一模型 ID
系统 SHALL 提供 FormatUnifiedModelID 函数,将 providerID 和 modelName 组合格式化为统一模型 ID。
Scenario: 格式化
- WHEN 传入 providerID=
"openai", modelName="gpt-4" - THEN SHALL 返回
"openai/gpt-4"
Requirement: 校验供应商 ID
系统 SHALL 提供 ValidateProviderID 函数,校验 providerID 仅包含字母、数字、下划线。
Scenario: 合法 ID
- WHEN 传入
"openai","deep_seek","provider01","OpenAI" - THEN SHALL 校验通过
Scenario: 含非法字符
- WHEN 传入含
-、.、/、空格、中文等非[a-zA-Z0-9_]字符的 ID - THEN SHALL 返回错误
Scenario: 空字符串或过长
- WHEN 传入空字符串
- THEN SHALL 返回错误
- WHEN 传入超过 64 个字符的 ID
- THEN SHALL 返回错误
Requirement: 校验统一模型 ID
系统 SHALL 提供 IsValidUnifiedModelID 函数,判断字符串是否为合法的统一模型 ID 格式。
Scenario: 合法 ID
- WHEN 传入
"openai/gpt-4" - THEN SHALL 返回
true
Scenario: 非法 ID
- WHEN 传入不含
/的字符串、空字符串、providerID 不符合[a-zA-Z0-9_]+的字符串 - THEN SHALL 返回
false