textmachine/backend/configs/pipeline-arm-mistral.yaml

71 lines
3.9 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Свап-арм редактора: Mistral (WS6 / D39.9 — слабое звено = редактор). Копия боевого C1
# (pipeline-c1.yaml) с ЕДИНСТВЕННЫМ изменением: editor.model glm-5 → mistral-large-2512. Арм = КОНФИГ,
# не код: другой editor-model → другой stageSnap.Model → другой snapshot_W2 (отдельный прогон, не
# конфликтует с базлайном). Атрибуция арма едет в chunk_status.model_actual → export/report.
#
# ⚠️ ПРЕД-УСЛОВИЕ (WS1 §1б / ревью-2 F4): mistral-large — агрессивный rate-limiter (~48% retry-fails под
# N-∥ без guard'а — 00-provider-quirks §Транспорт). models.yaml несёт rate_limit:{max_concurrency:2} на
# mistral-large-2512; пер-модельный семафор волнового раннера (WS1b, сдан Block A) реально ограничивает
# конкуренцию. Свап-арм mistral НЕ идёт через прод-путь без этого guard.
core: C1
version: 1
defaults:
max_output_ratio: 2.2
min_max_tokens: 2048
context:
glossary_injection: selective
glossary_token_budget: 800
cache_ttl: "5m"
retries:
regenerate_before_escalate: 1
# Эхо-регенерация ДО эскалации — довод, замер и ОБА режима (budget_usd>0 против =0) в
# pipeline-c1.yaml. Кратко: эхо flash стохастично по вызову (D39.61), поэтому ре-ген на той же
# модели либо заменяет хоп (дороже в 5.40 раза по леджеру coldrun-v16), либо, когда эскалация
# выключена, выкупает дыру за один дешёвый вызов.
regenerate_echo_before_escalate: 1
stages:
- name: draft
role: translator
model: deepseek-v4-flash # черновик — тот же, что базлайн (свап только редактора)
prompt_version: v2-reflow-nogenre
temperature: 0.3
# D39.92 / row 112: "off" on deepseek-v4-flash is an ABSENT key ⇒ vendor default `high` ⇒ empty
# content, finish=length. Rationale in pipeline-c1.yaml. The hop inherits it (v4-pro maps low→high).
reasoning: "low"
escalate_to: deepseek-v4-pro
- name: edit
role: editor
# СВАП-АРМ: mistral-large-2512 вместо glm-5 (D39.9 — редактор = слабое звено; COGS $0.205 vs glm $0.335
# WS6(г); не reasoning-модель → эхо-мины нет). Идёт ТОЛЬКО за rate-guard (models.yaml rate_limit).
model: mistral-large-2512
prompt_version: v4-discourse-reflow-nogenre
temperature: 0.4
# KEPT "off" deliberately (row 112 decision): mistral-large-2512 is ReasoningNone and not a thinking
# model, so the key is absent and the vendor default is no reasoning — the max_tokens wall cannot
# apply. "low" would buy thinking that was never there. ⚠ Re-decide if Mistral ever defaults it ON.
reasoning: "off"
# few_shot по дефолту ON: mistral НЕ reasoning-модель, few-shot-примеры P1a-дискурса не мешают её CoT.
gates:
coverage:
enabled: false
sent_cov_min: 0.75
min_chunk_chars: 500
sanitizer:
enabled: true
regression_guard:
# D38.4 п.5 (обязательство, не исполненное к rerun2 — D39.34): наблюдаемость обвала длины
# и числового дрейфа на переходе черновик→финал. Никогда не вердикт; флип не двигает снапшот.
enabled: true # премиум-редактор за санитайзером — как C1 (утечки преамбул ловятся)
escalation:
chains:
default: [deepseek-v4-pro, glm-5.1, gemini-3.1-pro-preview]
adult: [grok-4.3]
budget_usd: 0
fanout:
candidates: 1