Add the Gemini thinking variant with its own budget knob

This commit is contained in:
Claude (backend session) 2026-08-22 00:38:51 +03:00
parent b222ac8a08
commit 457bc0854a

View file

@ -128,7 +128,7 @@ PAIRS["zh"]["restore"] = None
ARMS = {"RN": ("deepseek-v4-pro", 1), "RN2": ("deepseek-v4-pro", 2),
"RG": ("glm-5", 1), "RGT": ("glm-5", 1),
"RK": ("grok-4.3", 1), "RKT": ("grok-4.3", 1), # RKT — клетка блокера Б6, не куплена
"RL": ("gpt-5.6-luna", 1), "RE": ("gemini-3.1-flash-lite", 1),
"RL": ("gpt-5.6-luna", 1), "RE": ("gemini-3.1-flash-lite", 1), "RET": ("gemini-3.1-flash-lite", 1),
"RA": ("deepseek-v4-pro", 1), # тот же промт, ВОССТАНОВЛЕННЫЕ абзацы исходника
"RC": ("deepseek-v4-pro", 1), # промт МИНУС рамка оценки, см. CUT
"RB": ("deepseek-v4-pro", 1)} # рамка оценки ПЕРЕВЁРНУТА: брак = чужой язык
@ -463,7 +463,8 @@ THINK_LEVEL: dict = {
"RK": "low", # grok на вендор-дефолте — ровно так и куплен, теперь это НАПИСАНО
"RKT": "high", # grok с настоящим размышлением — клетка Б6, не куплена
"RL": "vendor", # gpt-5.6-luna: ростер пинит `low`, снимаем (В22)
"RE": "vendor", # gemini-3.1-flash-lite
"RE": "vendor", # gemini-3.1-flash-lite: вендор-дефолт = размышление ВЫКЛ (замерено, 0 ток.)
"RET": "budget", # он же с размышлением: у Gemini своя ручка `thinking_budget`, не `effort`
}
@ -504,7 +505,11 @@ def call_kwargs(model: str, msgs: list[dict], arm: str = "") -> dict:
if lvl in (None, "off"):
return kw
eb = dict(kw.get("extra_body") or {})
if lvl == "vendor":
if lvl == "budget":
# ⚠ У Gemini уровень задаётся БЮДЖЕТОМ, а не словом: `thinking_budget` в google-секции
# (квирк-бюллетень :54). `-1` — динамический бюджет, то есть «думай сколько нужно».
eb["google"] = {**(eb.get("google") or {}), "thinking_config": {"thinking_budget": -1}}
elif lvl == "vendor":
# снимаем ЛЮБОЕ наше подавление: у Z.ai это `thinking.disabled`, у OpenAI — `effort: low`
eb.pop("thinking", None)
eb.pop("reasoning_effort", None)