mirror of
https://git.openapi.site/https://github.com/desirecore/config-center.git
synced 2026-10-21 07:44:13 +08:00
fix(compute): GLM-5.3 系列在 anthropic 协议按官网用 output_config.effort 控制思考强度 (#120)
智谱官网(国内 coding-plan/latest-model、国际 devpack/latest-model)写明 /api/anthropic 以 thinking.type 与 output_config.effort 控制思考强度,thinking.type=enabled 一律按默认 max 处理,budget_tokens 不是控制项。两个 anthropic-messages 接入面的 GLM-5.3 系列此前只有按 OpenAI 协议文档写的 low/high/max 矩阵,客户端按 budget 形态发送:low/high 在上游都成了 max, max(也是默认档)在客户端本机被拒绝;经 new-api 的 OpenAI 类渠道转换时 low 变成 reasoning_effort=medium,被智谱标准 API 拒绝。 - zhipu、zhipu-coding 接入面的 GLM-5.3 / 5.3-Flash / 5.3-FlashX 声明 adaptiveThinking - GLM-5.3 系列规格加 anthropic-messages 协议 profile(V1 副本为 spec.extra.adaptiveThinking), 覆盖经 ModelSpec 补全的云端条目 - 来源记录补国际 Coding Plan 页;按量 API Key 与 FlashX 按同一端点推定,未列入已核字段 - presetDataVersion 130
This commit is contained in:
@@ -794,7 +794,11 @@ describe('真实数据全量校验', () => {
|
||||
// Anthropic Messages 中转只能从 ModelSpec 补全拿到声明,预置 Provider 条目不经补全,
|
||||
// 两处漏写都会回退成 budget_tokens(desirecore#2940)。Opus 4.6 / Sonnet 4.6 仍接受
|
||||
// budget_tokens(仅弃用),不在强制范围内。新代际若同样拒绝 budget_tokens,先扩展这里的正则。
|
||||
const adaptiveGeneration = /^claude-(?:fable|mythos)(?:$|-)|^claude-(?:opus|sonnet)-(?:[5-9]|[1-9]\d)(?:$|-)|^claude-opus-4-[78](?:$|-)|^minimax-m3-1-flash-preview$/
|
||||
// GLM-5.3 系列不拒绝 budget_tokens,但智谱官网(docs.bigmodel.cn/cn/coding-plan/latest-model、
|
||||
// docs.z.ai/devpack/latest-model)写明 /api/anthropic 以 thinking.type 与 output_config.effort 控制强度,
|
||||
// thinking.type=enabled 一律按默认 max 处理,budget_tokens 不是控制项;不声明 adaptive,客户端发出的
|
||||
// 档位在上游全部变成 max,且 max 档无法发出(desirecore 档位协商回退到 max 后在本机拒绝)。
|
||||
const adaptiveGeneration = /^claude-(?:fable|mythos)(?:$|-)|^claude-(?:opus|sonnet)-(?:[5-9]|[1-9]\d)(?:$|-)|^claude-opus-4-[78](?:$|-)|^minimax-m3-1-flash-preview$|^glm-5-3(?:-flashx?)?$/
|
||||
const thinkingOnlyGeneration = /^claude-(?:fable|mythos)(?:$|-)|^claude-opus-5-5(?:$|-)/
|
||||
// 与客户端匹配器同口径:小写、去 vendor 前缀、统一分隔符
|
||||
const normalizeId = (id) => id.toLowerCase().trim().split('/').at(-1).replace(/[._:\s]+/g, '-')
|
||||
|
||||
Reference in New Issue
Block a user