Answer Phase-1 backend questions D8-D11: content-hash snapshot, ja-ru acceptance book, all-terms consistency, budget as config ceiling with stale cost numbers flagged

This commit is contained in:
Claude (backend session) 2026-07-04 19:42:37 +03:00
parent ce71a1a752
commit 8fac2b8968
2 changed files with 31 additions and 2 deletions

View file

@ -231,6 +231,13 @@ keep-alive (Ф12), инъекция глоссария (`selective`), пор
> 5. **Схему памяти v2 (твой шаг 4) держи до реестра рисков от сессии «Валидация банка памяти».** Владелец выделил банк памяти (главная точка отказа пайплайна) в отдельную адверсариальную сессию (промт `docs/MEMORY_RESEARCH_SESSION_PROMPT.md`, финализирован); её выход — `architecture/06-memory-risk-registry.md` — вход, по которому ты фиксируешь схему store/глоссария. Шаги 13 (runner-loop / snapshotID / чанкер) от схемы памяти не зависят — иди по ним, шаг 4 гейтит валидация. snapshotID под память (D5.2) проектируй с запасом, но финальную схему полей не морозь.
> 6. **Коррекция контура (владелец): EU-SaaS, прямые ключи, BYOK отменён** — в коде это НИЧЕГО не меняет (бэкенд всегда был на прямых ключах; BYOK был продуктовым концептом Р8/Р9, не кодом). Обновлены только Р5/Р8/Р9/Р10 в `01-decisions.md`. Дефолт редактора Фазы 1 — `grok-4.3` (эксп.04) — в `pipeline-c1.yaml` edit-стадию на него (xAI, thinking OFF, capability: temperature шлётся).
> **Ответ оркестратора на 4 вопроса Фазы 1 (04.07) → полностью в [05-decisions-log.md D8D11](architecture/05-decisions-log.md).** Онбординг-поправки ратифицированы (grok-editor не Kimi; deepseek-v4-pro резолвить через /models, не хардкодить; gemini `-preview` несущий; models.yaml обновляешь сам; F4 в A, F3 явно). A/B/C-план принят. Ответы:
> - **Q1 (D8): content-hash материализации памяти**, не version-counter (drift-proof; счётчик переоткрывает баг тихой переоплаты). Хэшируй полное состояние инъектируемого пула на старте джобы (per-chunk выбор уже в request_hash).
> - **Q2 (D9): приёмочная книга — ja→ru ранобэ.** Ставит ruby-извлечение на критический путь (форсирует закрытие дыры §4). Границы: фуригана первого появления → глоссарий-лок имени, НЕ ruby в выходной вёрстке. Хедж если ruby-тайм-синк — в D9.
> - **Q3 (D10): знаменатель — ВСЕ approved-термины** (имена+титулы/термины), матчит R7 + бьёт по жалобе №1 (коллапс рангов). names-only — под-метрика. Порог 98% на детерминированном слое достижим; недостижимость → ревизия порога, не знаменателя.
> - **Q4 (D11): budget_usd — конфиг-потолок, не гейт приёмки** — ДА. Но**оба cost-числа устарели, не только премиум:** дефолт-редактор grok-4.3 ($2.50/M out ≈ 10× draft) → стандарт-микс ранобэ ~$0.73 (>$0.6). Приёмка по стоимости = escalation уважает конфиг-потолок + **точность телеметрии** (ledger корректно биллит grok reasoning=0 / gemini reasoning-as-output), мягкий sanity ~$1/ранобэ, не жёсткий $0.6/$5. Точные числа — полигон пересчитывает на стеке draft-DeepSeek+editor-grok+премиум-Gemini.
> **Ре-флаг:** grok = дефолт-редактор → каждый чанк через xAI. Продакшн-редактор — **чистый xAI-аккаунт без data-sharing** (промо-аккаунт только eval/NSFW). Концентрация 3 ролей на xAI — риск доступности (Р10), gemini-премиум как замена под рукой.
## Полигон
(секция параллельной сессии — записи добавлять сюда)
@ -275,8 +282,8 @@ keep-alive (Ф12), инъекция глоссария (`selective`), пор
- [ ] Задача 4 (пилот выбора ядра, Фаза 2.5): протокол BWS + панель LLM-судей.
> **Задачи от оркестратора (04.07, из журнала решений [architecture/05-decisions-log.md](architecture/05-decisions-log.md)):**
> 1. **Пересчитать премиум-бюджет** на Sonnet-free стеке: апекс — Gemini 3.1 Pro ($2/$12 ≤200k) с **обязательным thinking** (reasoning биллится как output $12/M — учесть, это класс недоучёта vojo 3044%); batch 50% только на судью/QA, НЕ на inline-эскалацию (последовательна из-за STM); эскалированный чанк платит Gemini дважды (перевод+ре-джадж). Дефолты $5/$30 — заглушка до твоего пересчёта.
> 2. **Замерить, эмитят ли DeepSeek/GLM/Kimi `finish_reason=content_filter`** (D2.4): бэкенд ветвит диспозицию по нему, но OpenAI-совместимый слой отдаёт finish_reason сырым — если провайдеры его не шлют, реальная страховка только refusal-blacklist. Дешёвый зонд на отказном фрагменте.
> 1. **Пересчитать ОБА cost-числа** (не только премиум) на реальном Фаза-1 стеке — расширено после D8D11: дефолт-редактор теперь **grok-4.3 ($1.25/$2.50)**, не GLM/DeepSeek → и **стандарт-микс** подорожал (ja→ru ранобэ ~$0.73, не $0.17; порог приёмки $0.6 устарел). Дай: (а) стандарт-микс (DeepSeek-draft + grok-editor) на ранобэ ja→ru и вебновелле zh→ru; (б) премиум-микс с апексом Gemini 3.1 Pro (обязательный thinking, reasoning-as-output $12/M; batch 50% только судье/QA, НЕ inline-эскалации; эскалированный чанк платит Gemini дважды). Дефолты $5/$30 и порог $0.6 — заглушки до пересчёта.
> 2. **Замерить, эмитят ли DeepSeek/GLM/Kimi/grok `finish_reason=content_filter`** (D2.4, теперь и grok — он дефолт-редактор): бэкенд ветвит диспозицию по нему, но OpenAI-совместимый слой отдаёт finish_reason сырым — если провайдеры его не шлют, реальная страховка только refusal-blacklist. Дешёвый зонд на отказном фрагменте. Плюс, если есть ключ: подтвердить capability-квирки **gpt-5-nano** (бэкенд предполагает = mini: max_completion_tokens + omit temperature + effort minimal — верифицировать).
> 3. **Think-ON vs OFF по КАЧЕСТВУ на облачных translator/editor** (DeepSeek/GLM/Kimi — subset-billing, безопасно по потолку): гипотеза владельца про reasoning частично подтвердилась локально (羅生門→Радзёмон), DRT (arXiv:2412.17498) подтверждает для роли переводчика. Это ключевой вход в пилот Ф2.5 — мерить именно translator/editor, не только Terminologist.
> 4. Проброс cache-hit/batch RU-агрегаторами (уже в бэклоге) гейтит достоверность всего премиум-бюджета — приоритет поднять.
> 5. **Ключевой набор расширен:** теперь живы и `OPENAI_API_KEY`, и `GEMINI_API_KEY`, и `XAI_API_KEY` — Gemini-судья и Grok-канал-B можно гонять в евалах сразу.

View file

@ -6,6 +6,28 @@
---
## Вторая волна развязок Фазы 1 (04.07, вопросы бэкенда после survey) — D8D11
Онбординг-поправки бэкенда **ратифицированы**: (1) дефолт-редактор grok-4.3 @ temp 0.4 thinking-OFF (не Kimi — «Kimi-editor 400» как повод для capability-слоя снят; живые 400 дают Gemini/gpt-5); (2) `deepseek-v4-pro` нигде не подтверждён → слаг канала A резолвить через `/models`, не хардкодить (deepseek-chat депрекейт **2026-07-24, ~3 недели** — миграция черновика срочная); (3) Gemini wire-слаг `gemini-3.1-pro-preview` (суффикс несущий, голый → 404); (4) models.yaml на диске отстаёт — бэкенд обновляет сам (его зона); (5) F4 (усечённый length течёт в edit как OK) чинить в A, F3 (retryable-but-paid переоплата) учесть явно. A/B/C-план бэкенда принят как есть.
### D8 (Q1) — memory-компонент snapshotID: **content-hash материализации** (не version-counter). ✅
Хэшировать детерминированно ORDER-BY-материализованное **полное состояние инъектируемой памяти на старте джобы** (approved-глоссарий + резюме + series-bible-lite — тот пул, из которого per-chunk селективная инъекция потом выбирает; сам per-chunk выбор детерминирован и уже покрыт request_hash через rendered messages). **Drift-proof — решающий довод:** version-counter (буква §3.2/D5.2) молча дрейфует, если забыли бампнуть, и переоткрывает ровно тот баг тихой переоплаты, который D5.2 закрывает. Content-hash забыть нельзя. Стоимость (хэш пула раз на джобу, не на чанк) — ничтожна, не горячий путь. Правит §3.2: memory-компонент снапшота = content-hash, не счётчик.
### D9 (Q2) — приёмочная книга Фазы 1 = **ja→ru ранобэ** (~150k токенов). ✅+
Причины: соответствует флагманскому «ранобэ»; COGS-запас (R5 ~$3.1 стандарт vs потолок); **ставит ruby/фуригану на критический путь импорта** — форсирует закрытие известной дыры (04-unhappy §4), иначе отложат и забудут. **Уточнение (границы ruby):** извлекать чтения фуриганы при первом появлении → **глоссарий-лок имени**, НЕ сохранять ruby в выходной вёрстке (это остаётся ограничением epub-v1, план:25). Хедж: если полное ruby-извлечение окажется тайм-синком, блокирующим веху — принять на ранобэ, где чтения имён капчатся из первого появления обычным путём, а полный ruby-лок — fast-follow внутри Фазы 1. CJK-echo (zh) тестируется CJK-гейтом отдельно (не требует zh-приёмочной книги). Все три пары строятся; коммерческая проверка пар — пилот Ф2.5.
### D10 (Q3) — знаменатель глоссарной консистентности = **ВСЕ approved-термины** (имена + выдуманные термины/титулы). ✅
Матчит букву R7 («гейт считает approved-термины») и — важнее — **бьёт по реальной жалобе №1 читателей**: коллапс терминосистемы рангов/титулов («Immortal, immortal or immortal», 04-unhappy §1) страшнее скачущих имён. Гейт параметризовать (знаменатель = вхождения src/алиасов, числитель = лемма dst по `decl`), **names-only — как под-метрика для диагностики**. Порог 98% — на детерминированном слое (pre-replace+инъекция+post-check) достижим (механизм не модель-зависим); если приёмка покажет систематическую недостижимость — ревизуем порог, НЕ знаменатель (не геймить метрику сужением).
### D11 (Q4) — премиум-микс: **конфиг-потолок, не гейт приёмки** ✅+ — но ОБА cost-числа устарели, не только премиум.
budget_usd = R5-clamp, дефолт $5/$30 — заглушка. Приёмка держится на резюмируемости + гейтах + **точности телеметрии денег**, а не на конкретном премиум-числе (оно ждёт пересчёта полигоном на Sonnet-free стеке: exp01 намерил ~$49/$26-batch на Gemini-апексе с reasoning-as-output).
**Расширение за рамки вопроса бэкенда: порог стандарт-микса $0.6 ТОЖЕ устарел** — он считался с дешёвым редактором (GLM/DeepSeek), а дефолт-редактор теперь **grok-4.3 ($2.50/M output ≈ 10× дороже draft)**. Пересчёт ja→ru ранобэ: draft ~$0.065 + grok-editor ~$0.67 = **~$0.73 стандарт-микс** (выше $0.6). Экономика при этом здоровая (том <$1 против якоря $100 — маржа огромна), но **конкретные приёмочные числа ($0.6 стандарт, $5 премиум) оба устарели после смены редактора на grok**. → Приёмка Фазы 1 по стоимости = (а) escalation уважает конфигурируемый budget_usd (тест механизма); (б) телеметрия денег точна (ledger корректно биллит grok/gemini с их квирками — grok reasoning=0 при thinking-OFF, gemini reasoning-as-output); мягкий sanity-check ~$1/ранобэ стандарт, НЕ жёсткий гейт на $0.6/$5. Точные числа — полигон пересчитывает на реальном стеке (draft DeepSeek + editor grok + премиум Gemini).
### Ре-флаг (grok как центральная модель — усилилось с D8): гигиена аккаунтов xAI критична
grok-4.3 теперь дефолт-редактор → **каждый чанк каждой книги идёт через xAI**. Значит: (1) дефолт-редактор продакшна — **чистый xAI-аккаунт БЕЗ data-sharing** (промо-$150-аккаунт с data-sharing — только eval/NSFW, реальные книги через него нельзя, research/08); (2) концентрация трёх ролей (редактор+канал B+судья 18+) на xAI — риск доступности (Р10 №6): провайдер лёг → пауза/resume (D4), премиум-редактор gemini как валидированная замена под рукой.
---
## D1. Редактор C1 — монолингвальный. ✅+
**Решение:** редактор Фазы 1 видит только черновик + одобренный глоссарий (dst-термины как target-констрейнты), **не** исходник. Убрать `{{text}}` из `prompts/editor.md`.