Switch the Gemini thinking knob to the standard compatibility parameter after the vendor rejected the nested form

This commit is contained in:
Claude (backend session) 2026-08-22 00:39:26 +03:00
parent 457bc0854a
commit 70966c219f

View file

@ -508,7 +508,10 @@ def call_kwargs(model: str, msgs: list[dict], arm: str = "") -> dict:
if lvl == "budget":
# ⚠ У Gemini уровень задаётся БЮДЖЕТОМ, а не словом: `thinking_budget` в google-секции
# (квирк-бюллетень :54). `-1` — динамический бюджет, то есть «думай сколько нужно».
eb["google"] = {**(eb.get("google") or {}), "thinking_config": {"thinking_budget": -1}}
# ⚠ Форма `extra_body.google.thinking_config.thinking_budget` (квирк-бюллетень :54) вендором
# ОТВЕРГНУТА 22.08: HTTP 400 «Unknown name "google"» — тот же класс, что отказ на
# `safety_settings`. Пробуем стандартную для OpenAI-слоя ручку.
eb["reasoning_effort"] = "high"
elif lvl == "vendor":
# снимаем ЛЮБОЕ наше подавление: у Z.ai это `thinking.disabled`, у OpenAI — `effort: low`
eb.pop("thinking", None)