1
0
Files
nex/openspec/changes/refactor-conversion-engine/specs/request-validation/spec.md

2.2 KiB
Raw Blame History

MODIFIED Requirements

Requirement: 验证 OpenAI 请求

系统 SHALL 验证 OpenAI ChatCompletionRequest验证逻辑位于 ProtocolAdapter 的 decodeRequest 内。

Scenario: 必需字段验证

  • WHEN OpenAI Adapter 的 decodeRequest 解析请求
  • THEN SHALL 验证 model 字段不为空
  • THEN SHALL 验证 messages 字段不为空且至少有一条消息
  • THEN 验证失败 SHALL 返回 INVALID_INPUT 类型的 ConversionError

Scenario: 参数范围验证

  • WHEN OpenAI Adapter 的 decodeRequest 解析参数
  • THEN SHALL 验证 temperature 范围在 [0, 2]
  • THEN SHALL 验证 max_tokens 大于 0
  • THEN SHALL 验证 top_p 范围在 (0, 1]

Scenario: 消息内容验证

  • WHEN 验证 messages 字段
  • THEN SHALL 验证每条消息的 role 有效system、developer、user、assistant、tool
  • THEN SHALL 验证 content 不为空

Requirement: 验证 Anthropic 请求

系统 SHALL 验证 Anthropic MessagesRequest验证逻辑位于 ProtocolAdapter 的 decodeRequest 内。

Scenario: 必需字段验证

  • WHEN Anthropic Adapter 的 decodeRequest 解析请求
  • THEN SHALL 验证 model 字段不为空
  • THEN SHALL 验证 messages 字段不为空且至少有一条消息
  • THEN SHALL 验证 max_tokens 大于 0或使用默认值

Scenario: 参数范围验证

  • WHEN Anthropic Adapter 的 decodeRequest 解析参数
  • THEN SHALL 验证 temperature 范围在 [0, 1]
  • THEN SHALL 验证 top_p 范围在 (0, 1]

Scenario: 消息内容验证

  • WHEN 验证 messages 字段
  • THEN SHALL 验证每条消息的 role 有效user、assistant
  • THEN SHALL 验证 content 数组不为空

Requirement: 返回友好的验证错误

系统 SHALL 返回友好的验证错误响应。

Scenario: 转换错误格式

  • WHEN decodeRequest 验证失败返回 ConversionError
  • THEN ProxyHandler SHALL 使用 clientAdapter.encodeError 编码错误响应
  • THEN 错误 SHALL 使用客户端协议的格式

Scenario: 多字段错误

  • WHEN 多个字段验证失败
  • THEN ConversionError.details SHALL 包含所有验证错误
  • THEN 错误响应 SHALL 包含完整的验证错误信息