feat(chat): 完善 Chat Completions 兼容层

This commit is contained in:
2026-05-19 17:46:27 +08:00
parent ba419cd90a
commit 13186f8ed1
13 changed files with 1611 additions and 85 deletions
+16
View File
@@ -1505,6 +1505,22 @@ type ModelClient interface {
- progress event snapshot:确保前端进度面板兼容。
- billing snapshot:确保预估扣费和最终 billings 语义一致。
OpenAI-compatible 文本请求中的推理深度统一使用 `reasoning_effort` 表达。该字段是请求参数,不是响应中的推理内容;模型能力中用 `thinkingEffortLevels` 声明该模型支持的可选取值。`reasoning_effort` 必须按开放字符串处理,不在网关层写死枚举;实际可用集合必须以 provider 和模型能力为准。常见取值定义如下:
| 值 | 含义 |
| --- | --- |
| `none` | 不启用额外推理,适用于不需要思考链路的低延迟请求。 |
| `minimal` | 最小推理预算,优先降低延迟和成本。 |
| `low` | 较低推理预算,用于简单推理任务。 |
| `medium` | 默认/均衡推理深度,在质量、延迟和成本之间折中。 |
| `high` | 较高推理预算,用于复杂规划、代码和多步推理。 |
| `xhigh` | 最高推理预算,仅在模型和 provider 明确支持时使用,通常成本和延迟最高。 |
| `max` | 供应商自定义最高档示例,例如 DeepSeek V4 类模型可能使用该值;语义以 provider 文档为准。 |
除上表外,`thinkingEffortLevels` 可以保存任意供应商自定义值,例如 `max``ultra` 或后续模型新增档位。管理端只提供常见值作为快捷选项,不应阻止自定义输入;请求透传时按模型能力校验或直接交由上游 provider 返回错误。
`reasoning_content`、推理过程 delta 或思考摘要在 Chat Completions 中不是 OpenAI 标准必需字段;如需兼容 DeepSeek、Qwen 等供应商扩展,应在 adapter 层作为可选扩展透传,并避免把 hidden reasoning 默认暴露给普通兼容客户端。
## 11. 队列持久化、恢复与限流执行
### 11.1 持久化队列原则