From 457bc0854a1e259958999233465f70a867739696 Mon Sep 17 00:00:00 2001 From: "Claude (backend session)" Date: Sat, 22 Aug 2026 00:38:51 +0300 Subject: [PATCH] Add the Gemini thinking variant with its own budget knob --- eval/dovodka/rol.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/eval/dovodka/rol.py b/eval/dovodka/rol.py index e720f364..f71028cd 100644 --- a/eval/dovodka/rol.py +++ b/eval/dovodka/rol.py @@ -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)