Spaces:
Running
Running
SilverElixir commited on
Commit ·
169a54e
1
Parent(s): eeb83cf
Probe tools: repeat loop for 500-rate measurement
Browse files- docs/PROMPT_EVAL.md +9 -0
- eval/persona_models.py +26 -15
docs/PROMPT_EVAL.md
CHANGED
|
@@ -52,6 +52,15 @@ OR-модель заметно слабее — согласуется с жал
|
|
| 52 |
контрольный прогон по «Как гонять» после правки роутера (если она будет
|
| 53 |
одобрена).
|
| 54 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 55 |
## Как гонять
|
| 56 |
|
| 57 |
1. Каждый вопрос — отдельным сообщением, по порядку. Контекст между вопросами
|
|
|
|
| 52 |
контрольный прогон по «Как гонять» после правки роутера (если она будет
|
| 53 |
одобрена).
|
| 54 |
|
| 55 |
+
### Проба инструментов (22.10.2026, Actions)
|
| 56 |
+
|
| 57 |
+
`probe-tools` (вопрос «сколько сегодня стоит доллар»): gemma-4-26b-a4b-it
|
| 58 |
+
без инструментов отвечает честно («проверьте курс в банком приложении»),
|
| 59 |
+
с `google_search` — HTTP 500 INTERNAL; gemma-4-31b-it с инструментом — та же
|
| 60 |
+
500. Итог: search grounding через API у Gemma недоступен, свежесть остаётся
|
| 61 |
+
на цепочке Gemini 2.5 (и там же DuckDuckGo-сниппет как резерв). В роутере
|
| 62 |
+
правка не нужна: `no_search=True` подтверждено провайдером, а не догадкой.
|
| 63 |
+
|
| 64 |
## Как гонять
|
| 65 |
|
| 66 |
1. Каждый вопрос — отдельным сообщением, по порядку. Контекст между вопросами
|
eval/persona_models.py
CHANGED
|
@@ -623,21 +623,31 @@ def cmd_probe_tools(args: argparse.Namespace) -> int:
|
|
| 623 |
client = genai.Client(api_key=key)
|
| 624 |
model = args.model
|
| 625 |
contents = [types.Content(role="user", parts=[types.Part.from_text(text="Сколько сегодня стоит доллар? Ответь коротко.")])]
|
| 626 |
-
|
| 627 |
-
|
| 628 |
-
|
| 629 |
-
|
| 630 |
-
|
| 631 |
-
|
| 632 |
-
|
| 633 |
-
|
| 634 |
-
|
| 635 |
-
|
| 636 |
-
|
| 637 |
-
|
| 638 |
-
|
| 639 |
-
|
| 640 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 641 |
return 0
|
| 642 |
|
| 643 |
|
|
@@ -661,6 +671,7 @@ def main() -> int:
|
|
| 661 |
|
| 662 |
probe = sub.add_parser("probe-tools", help="проверить, тянет ли Gemma инструмент поиска")
|
| 663 |
probe.add_argument("--model", default="gemma-4-31b-it")
|
|
|
|
| 664 |
probe.set_defaults(func=cmd_probe_tools)
|
| 665 |
|
| 666 |
args = parser.parse_args()
|
|
|
|
| 623 |
client = genai.Client(api_key=key)
|
| 624 |
model = args.model
|
| 625 |
contents = [types.Content(role="user", parts=[types.Part.from_text(text="Сколько сегодня стоит доллар? Ответь коротко.")])]
|
| 626 |
+
rates = {"ok": 0, "search_ok": 0}
|
| 627 |
+
for attempt in range(args.repeat):
|
| 628 |
+
for label, tools in (
|
| 629 |
+
("без инструментов", None),
|
| 630 |
+
("с google_search", [types.Tool(google_search=types.GoogleSearch())]),
|
| 631 |
+
):
|
| 632 |
+
try:
|
| 633 |
+
config = types.GenerateContentConfig(system_instruction=get_system_prompt(model), tools=tools) if tools else types.GenerateContentConfig(system_instruction=get_system_prompt(model))
|
| 634 |
+
resp = client.models.generate_content(model=model, contents=contents, config=config)
|
| 635 |
+
answer = (resp.text or "").strip()
|
| 636 |
+
gm = None
|
| 637 |
+
cands = resp.candidates or []
|
| 638 |
+
if cands:
|
| 639 |
+
gm = getattr(cands[0], "grounding_metadata", None)
|
| 640 |
+
if tools:
|
| 641 |
+
rates["search_ok"] += 1 if gm else 0
|
| 642 |
+
else:
|
| 643 |
+
rates["ok"] += 1
|
| 644 |
+
time.sleep(20)
|
| 645 |
+
log(f"{model} {label}: ответ {len(answer)} симв., grounding {'ЕСТЬ' if gm else 'нет'} — {answer[:160]!r}")
|
| 646 |
+
except Exception as exc:
|
| 647 |
+
time.sleep(20)
|
| 648 |
+
log(f"{model} {label}: ОШИБКА {str(exc)[:140]}")
|
| 649 |
+
total = args.repeat
|
| 650 |
+
log(f"{model}: попыток с поиском {total}, успешных с grounding {rates['search_ok']}; без инструментов ok {rates['ok']}/{total}")
|
| 651 |
return 0
|
| 652 |
|
| 653 |
|
|
|
|
| 671 |
|
| 672 |
probe = sub.add_parser("probe-tools", help="проверить, тянет ли Gemma инструмент поиска")
|
| 673 |
probe.add_argument("--model", default="gemma-4-31b-it")
|
| 674 |
+
probe.add_argument("--repeat", type=int, default=1, help="повторов каждой пробы — доля 500 у поиска")
|
| 675 |
probe.set_defaults(func=cmd_probe_tools)
|
| 676 |
|
| 677 |
args = parser.parse_args()
|