89 lines
5.7 KiB
YAML
89 lines
5.7 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
|
||
prompt: ../prompts/translator.md
|
||
prompt_version: v0-draft
|
||
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
|
||
# Дефолт-редактор — grok-4.3 (D1/D3, bake-off эксп-04; glm-5 был плейсхолдером).
|
||
# reasoning:"off" → grok шлёт ЯВНЫЙ reasoning_effort:"none" (control:effort/off_effort:none,
|
||
# models.yaml) — омиссия у grok = low. Прод: только чистый xAI-ключ без data-sharing.
|
||
model: grok-4.3
|
||
prompt: ../prompts/editor.md
|
||
# D1-уточнение №3: коммит 6a68dfd сделал editor.md монолингвальным (убрал {{text}}) →
|
||
# сменил SHA, но лейбл остался v0-draft (один лейбл на два SHA). Бамп на v1-monolingual;
|
||
# осознанно меняет снапшот (боевых прогонов ещё не было).
|
||
prompt_version: v1-monolingual
|
||
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 симв.
|
||
|
||
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: один черновик
|