112 lines
8.6 KiB
YAML
112 lines
8.6 KiB
YAML
# Ядро C1: draft → editor (Р2). Обязательное приложение Фазы 0 — фиксирует
|
||
# границу «конфиг vs код раннера»:
|
||
# КОНФИГ: состав/порядок стадий, роль→модель, версии промптов, сэмплинг,
|
||
# пороги гейтов, режим инъекции глоссария, токен-бюджеты сборки контекста,
|
||
# именованные эскалационные цепочки, fan-out N, cache TTL.
|
||
# РАННЕР (код): циклы по главам/чанкам, ветвление по гейтам, механика
|
||
# эскалации/ретраев, правило «эскалация → re-gate → флаг», channel-aware
|
||
# фильтр цепочек (Anthropic вне 18+), resume по чекпоинтам.
|
||
core: C1
|
||
version: 1
|
||
|
||
defaults:
|
||
# max_tokens ≈ ratio × входные токены; калибровка полигона (эксп. 01):
|
||
# русский выход zh→ru ≈1.9× входа в токенах — 2.2 с запасом на ja/en.
|
||
max_output_ratio: 2.2
|
||
min_max_tokens: 2048
|
||
|
||
context:
|
||
# Р5: обе схемы инъекции глоссария обязаны поддерживаться конфигом.
|
||
# selective — ключи/алиасы/леммы в волатильном хвосте (~100–800 ток.);
|
||
# full_prefix — весь глоссарий в стабильном префиксе (выгодно при cache-hit
|
||
# DeepSeek $0.0028/M — решается расчётом на прототипе).
|
||
glossary_injection: selective
|
||
glossary_token_budget: 800
|
||
stm_depth: 2 # глубина STM в чанках (Фаза 1)
|
||
overlap_tokens: 200 # перекрытие чанков = read-only контекст (Фаза 1)
|
||
cache_ttl: "5m"
|
||
|
||
retries:
|
||
# Содержательные регенерации после провала гейта ДО эскалации (транспортные
|
||
# ретраи — отдельно, в timeouts models.yaml).
|
||
regenerate_before_escalate: 1
|
||
|
||
stages:
|
||
- name: draft
|
||
role: translator
|
||
model: deepseek-v4-flash # интерим — переводчик по exp13 (draft качеством не мерен, D30.6); флип при развязке бейк-оффа
|
||
# Слой 2 (D39): промпт резолвится из pair-keyed пакета конвенций по паре книги (Book.LangPair()),
|
||
# НЕ из фикс-пути. Наполнена только zh→ru (сегодня); ja/en книга без своей пары — FAIL-LOUD в
|
||
# loadTemplates (закрывает латентный баг «ja едет через китайский паратаксис»). Язык промпта —
|
||
# свойство пакета. Прод zh→ru резолвит тот же translator.md → тот же SHA (поведение-нейтрально).
|
||
prompts:
|
||
zh-ru: ../prompts/translator.md
|
||
# D30.2 reflow: из translator.md убрано «Сохраняй разбивку на абзацы» (построчная
|
||
# вёрстка исходника деструктивна для ru — корень нечитаемости exp12 §2.5-S). Bump
|
||
# v0-draft→v1-reflow: сменил SHA промпта, осознанный --resnapshot.
|
||
prompt_version: v1-reflow
|
||
temperature: 0.3
|
||
reasoning: "off"
|
||
# single-hop echo-эскалация (D18: deepseek-эхо 25% на 蛊真人 → фолбэк выстрелит). deepseek-v4-pro —
|
||
# хоп 1 цепочки A (D3); стреляет ТОЛЬКО при escalation.budget_usd>0 (см. ниже). Escalate_to разрешён
|
||
# лишь на translator-роли (editor pinned — D12); результат ре-гейтится.
|
||
escalate_to: deepseek-v4-pro
|
||
- name: edit
|
||
role: editor
|
||
# Дефолт-редактор — glm-5 БИЛИНГВ (флип D1→D30.1, supersede D17.в): моно-редактор
|
||
# пассивен и структурно слеп к искажениям черновика (exp12 §2.2/2.5); билингв видит
|
||
# исходник (editor.md получил {{text}}). glm-5 — кандидат value по exp12 §3 (судейский #1,
|
||
# верность 5.0, 0 утечек преамбул; grok reasoning-off из редакторских ролей СНЯТ — no-op).
|
||
# gemini-3.1-pro — премиум-эскалация редактора ТОЛЬКО за санитайзером (утечка преамбул 6/6).
|
||
model: glm-5
|
||
# Слой 2 (D39): pair-keyed пакет конвенций (см. draft-стадию) — наполнена zh→ru.
|
||
prompts:
|
||
zh-ru: ../prompts/editor.md
|
||
# Bump v2-bilingual-reflow→v3-discourse-reflow: в editor.md вшито валидированное P1a-ядро
|
||
# ДИСКУРС-ПЕРЕВЁРСТКИ + few-shot (exp14/D37 §2а — претензия-1 «рубленые абзацы» = рычаг ПРОМПТА,
|
||
# не модель; P1a реверстает дефект у всех семей). Меняет SHA промпта → осознанный --resnapshot.
|
||
# Билингв-каркас (D30.1) и omission-осторожность (D34.3) сохранены. Моно-вариант — prompts/editor-mono.md.
|
||
prompt_version: v3-discourse-reflow
|
||
temperature: 0.4
|
||
reasoning: "off"
|
||
|
||
gates:
|
||
coverage:
|
||
# Фаза 1. Пороги полигона (эксп. 02, символы БЕЗ пробелов): нижняя граница
|
||
# — подозрение на вырезание, верхняя — аномалия/галлюцинация.
|
||
enabled: false
|
||
len_ratio_bounds:
|
||
zh-ru: [2.2, 4.2]
|
||
ja-ru: [1.4, 2.6]
|
||
en-ru: [0.70, 1.4]
|
||
sent_cov_min: 0.75
|
||
min_chunk_chars: 500 # калибровка порогов — на фрагментах 500–2500 симв.
|
||
sanitizer:
|
||
# Output-санитайзер (D30.3): детерминированный вердикт-гейт «мгновенной
|
||
# нечитаемости» на ФИНАЛЬНОМ выходе — ведущие служебные преамбулы («Вот
|
||
# отредактированный перевод…»), хвостовые блоки заметок/правок, markdown-###,
|
||
# латиница-врезки в ru-выходе (порог), битые словоформы («Первок предок»). Ни
|
||
# один существующий гейт этот класс не ловит (exp12/флагманы §5). Дисциплина D2
|
||
# (flag+skip): дефект → чанк flagged, мусор не течёт в TM/экспорт. precision>recall.
|
||
# ВКЛЮЧЁН для пере-прогона 25 глав (gemini течёт преамбулой 6/6 — премиум-редактор
|
||
# за санитайзером). Версия — вердикт-ось (переедет в verdictSnapshotID с D15.2).
|
||
enabled: true
|
||
|
||
escalation:
|
||
chains:
|
||
# D3-цепочка ЗАВЕДЕНА (пакет №3; все слаги live-фактчекнуты 2026-07-10 — /models + пробный вызов):
|
||
# канал A: deepseek-v4-pro → glm-5.1 → gemini-3.1-pro-preview (кросс-семейно; апекс — mandatory-thinking Gemini).
|
||
# канал B (18+): grok-4.3 reasoning-ON (D19.1; переводчик канала B = Mistral, задаётся channel:adult-стадией — Ф2).
|
||
# ⚠️ Именованные цепочки — валидируемый конфиг для мульти-хопа (шаг 7); раннер Ф1 исполняет
|
||
# SINGLE-HOP через stage.escalate_to (draft → deepseek-v4-pro выше). Слаг ИМЕННО gemini-3.1-pro-preview
|
||
# (gemini-3.1-pro → HTTP 404, live 2026-07-10). adult-цепочка — permissive-провайдеры (D4.1).
|
||
default: [deepseek-v4-pro, glm-5.1, gemini-3.1-pro-preview]
|
||
adult: [grok-4.3]
|
||
# Адресный премиум-бюджет книги, $. Формула «≤2×» из Р5 неоднозначна — [НУЖНО РЕШЕНИЕ] п.1.
|
||
# ⚠️ budget_usd=0 ⇒ эскалация НЕ исполняется (НИ chains, НИ stage.escalate_to — escalationBudgetRemains=false;
|
||
# CheckKeys не требует её ключей). Приёмочная сессия 蛊真人 ОБЯЗАНА выставить budget_usd>0, иначе echo-эскалация
|
||
# черновика (D18) не выстрелит. Дефолт 0 держит CI/Ф0 зелёными без gemini/mistral-ключей.
|
||
budget_usd: 0
|
||
|
||
fanout:
|
||
candidates: 1 # C1: один черновик
|