From 10d3c7f88c7c04297cc83e20bdaf1ad726fa5f36 Mon Sep 17 00:00:00 2001 From: vibe-code Date: Thu, 24 Sep 2026 15:37:56 +0800 Subject: [PATCH] =?UTF-8?q?fix(config):=20=E4=B8=BA=E7=81=AB=E5=B1=B1?= =?UTF-8?q?=E6=B8=A0=E9=81=93=E7=99=BD=E5=90=8D=E5=8D=95=20reasoning=5Feff?= =?UTF-8?q?ort=EF=BC=8C=E4=BF=AE=E5=A4=8D=E6=80=9D=E8=80=83=E5=BC=BA?= =?UTF-8?q?=E5=BA=A6=E8=A2=AB=E9=9D=99=E9=BB=98=E4=B8=A2=E5=BC=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit LiteLLM 的 VolcEngineChatConfig.get_supported_openai_params() 白名单不含 reasoning_effort,客户端一传就抛 UnsupportedParamsError;叠加 drop_params 后更糟 —— Router._deployment_params_with_request_reasoning_override 会先剥掉 部署侧 extra_body/thinking,drop_params 再把客户端参数丢掉,两者同归于尽, 上游 body 皆无该字段,方舟回落默认 high(静默失效)。 改动:17 个 volcengine 条目全部加 allowed_openai_params: [reasoning_effort]。 - 透传组(huoshan/deepseek-v4-*、doubao-seed-2-1-*、glm-5.2):客户端显式指定生效 - 档位别名组(doubao-seed-nothink/-minimal/-low/-medium/-high、fanyi): extra_body 钉死值为默认档位,客户端显式传参可覆盖;不传则走钉死档位 语义为「默认档位 + 客户端可覆盖」,非硬锁:LiteLLM 无纯配置手段实现强制覆盖。 实测依据见 config.yaml 注释(本地 echo 抓上游请求体)。 --- config.yaml | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/config.yaml b/config.yaml index cf28567..e662b77 100644 --- a/config.yaml +++ b/config.yaml @@ -44,6 +44,7 @@ model_list: model: volcengine/deepseek-v4-flash-ga-260731 api_base: os.environ/HUOSHAN_BASE_URL api_key: os.environ/HUOSHAN_API_KEY + allowed_openai_params: ["reasoning_effort"] drop_params: true - model_name: huoshan/deepseek-v4-pro @@ -52,6 +53,7 @@ model_list: model: volcengine/deepseek-v4-pro-ga-260813 api_base: os.environ/HUOSHAN_BASE_URL api_key: os.environ/HUOSHAN_API_KEY + allowed_openai_params: ["reasoning_effort"] drop_params: true @@ -63,6 +65,7 @@ model_list: model: volcengine/doubao-seed-2-1-turbo-260628 api_base: os.environ/HUOSHAN_BASE_URL api_key: os.environ/HUOSHAN_API_KEY + allowed_openai_params: ["reasoning_effort"] drop_params: true extra_headers: Connection: "close" @@ -76,6 +79,7 @@ model_list: model: volcengine/doubao-seed-2-1-pro-260628 api_base: os.environ/HUOSHAN_BASE_URL api_key: os.environ/HUOSHAN_API_KEY + allowed_openai_params: ["reasoning_effort"] drop_params: true extra_headers: Connection: "close" @@ -90,6 +94,17 @@ model_list: model: volcengine/glm-5-2-260617 api_base: os.environ/HUOSHAN_BASE_URL api_key: os.environ/HUOSHAN_API_KEY + # 方舟 glm-5-2-260617 支持 reasoning_effort(none/minimal/high/max,默认 high; + # 官方参数页 + 实测 curl 均确认),但 LiteLLM 的 VolcEngineChatConfig + # get_supported_openai_params() 白名单里没有它 —— 它是 openai-like 的固定 + # 参数表,不含 reasoning_effort —— 客户端一传就抛 UnsupportedParamsError。 + # allowed_openai_params 是官方逃生口:get_optional_params 用它在校验前 + # extend supported_params,随后 _apply_openai_param_overrides 把该参数从 + # non_default_params 原样写回 optional_params,最终透传到请求体。 + # 不用 drop_params:那是把该模型所有不支持参数静默丢弃,会掩盖其它真错。 + # 注意 thinking.type 无需此项,VolcEngineChatConfig 已原生白名单。 + allowed_openai_params: + - reasoning_effort extra_headers: Connection: "close" model_info: @@ -97,6 +112,21 @@ model_list: max_context_length: 1024000 # 上下文窗口上限 #=======================豆包汇总nothink + # 【思考档位别名组】doubao-seed-nothink / -minimal / -low / -medium / -high / fanyi + # 语义:别名后缀即【默认】档位,非硬锁。 + # - 客户端不传 reasoning_effort:按 extra_body 钉的档位发给方舟。 + # - 客户端显式传 reasoning_effort:以客户端为准(覆盖默认档位)。 + # 为什么钉不成硬锁(实测,本地 echo 抓上游 body): + # 请求带 reasoning_effort 时,Router._deployment_params_with_request_reasoning_override + # 会【无条件】剥掉部署侧 extra_body.reasoning_effort / thinking; + # 此时若没有 allowed_openai_params 放行,drop_params 又把客户端这个参数丢掉, + # 两者同归于尽 ⇒ 上游 body 两者都没有 ⇒ 方舟回落默认 high(静默失效)。 + # 故必须加 allowed_openai_params:让客户端值能通过校验,使结果至少是 + # 「客户端说了算」而不是「悄悄变回 high」。 + # LiteLLM 当前无纯配置手段做到「不论客户端传什么一律覆盖」;要硬锁只能加 + # pre-call hook(本仓库当前不采用)。 + # 注:方舟 doubao 上 minimal 等价于关闭思考(实测 reasoning_tokens=0), + # 故 nothink/minimal/fanyi 三个别名默认档位统一用 minimal。 - model_name: doubao-seed-nothink @@ -105,6 +135,7 @@ model_list: model: volcengine/doubao-seed-2-1-pro-260628 api_base: os.environ/HUOSHAN_BASE_URL api_key: os.environ/HUOSHAN_API_KEY + allowed_openai_params: ["reasoning_effort"] drop_params: true extra_headers: Connection: "close" @@ -117,6 +148,7 @@ model_list: model: volcengine/doubao-seed-2-1-turbo-260628 api_base: os.environ/HUOSHAN_BASE_URL api_key: os.environ/HUOSHAN_API_KEY + allowed_openai_params: ["reasoning_effort"] drop_params: true extra_headers: Connection: "close" @@ -134,6 +166,7 @@ model_list: model: volcengine/doubao-seed-2-1-pro-260628 api_base: os.environ/HUOSHAN_BASE_URL api_key: os.environ/HUOSHAN_API_KEY + allowed_openai_params: ["reasoning_effort"] drop_params: true extra_headers: Connection: "close" @@ -146,6 +179,7 @@ model_list: model: volcengine/doubao-seed-2-1-turbo-260628 api_base: os.environ/HUOSHAN_BASE_URL api_key: os.environ/HUOSHAN_API_KEY + allowed_openai_params: ["reasoning_effort"] drop_params: true extra_headers: Connection: "close" @@ -163,6 +197,7 @@ model_list: model: volcengine/doubao-seed-2-1-pro-260628 api_base: os.environ/HUOSHAN_BASE_URL api_key: os.environ/HUOSHAN_API_KEY + allowed_openai_params: ["reasoning_effort"] drop_params: true extra_headers: Connection: "close" @@ -175,6 +210,7 @@ model_list: model: volcengine/doubao-seed-2-1-turbo-260628 api_base: os.environ/HUOSHAN_BASE_URL api_key: os.environ/HUOSHAN_API_KEY + allowed_openai_params: ["reasoning_effort"] drop_params: true extra_headers: Connection: "close" @@ -191,6 +227,7 @@ model_list: model: volcengine/doubao-seed-2-1-pro-260628 api_base: os.environ/HUOSHAN_BASE_URL api_key: os.environ/HUOSHAN_API_KEY + allowed_openai_params: ["reasoning_effort"] drop_params: true extra_headers: Connection: "close" @@ -203,6 +240,7 @@ model_list: model: volcengine/doubao-seed-2-1-turbo-260628 api_base: os.environ/HUOSHAN_BASE_URL api_key: os.environ/HUOSHAN_API_KEY + allowed_openai_params: ["reasoning_effort"] drop_params: true extra_headers: Connection: "close" @@ -220,6 +258,7 @@ model_list: model: volcengine/doubao-seed-2-1-pro-260628 api_base: os.environ/HUOSHAN_BASE_URL api_key: os.environ/HUOSHAN_API_KEY + allowed_openai_params: ["reasoning_effort"] drop_params: true extra_headers: Connection: "close" @@ -232,6 +271,7 @@ model_list: model: volcengine/doubao-seed-2-1-turbo-260628 api_base: os.environ/HUOSHAN_BASE_URL api_key: os.environ/HUOSHAN_API_KEY + allowed_openai_params: ["reasoning_effort"] drop_params: true extra_headers: Connection: "close" @@ -247,6 +287,7 @@ model_list: model: volcengine/doubao-seed-2-1-pro-260628 api_base: os.environ/HUOSHAN_BASE_URL api_key: os.environ/HUOSHAN_API_KEY + allowed_openai_params: ["reasoning_effort"] drop_params: true extra_headers: Connection: "close" @@ -259,6 +300,7 @@ model_list: model: volcengine/doubao-seed-2-1-turbo-260628 api_base: os.environ/HUOSHAN_BASE_URL api_key: os.environ/HUOSHAN_API_KEY + allowed_openai_params: ["reasoning_effort"] drop_params: true extra_headers: Connection: "close"