Normalization System Design
1. Краткое резюме
Normalization добавляет explicit semantic rewrite поверх deterministic render
path. Архитектура разделяет:
-
canonical deterministic render;
-
text-level semantic rewrite;
-
block-preserving composition derivation.
Таким образом AI остаётся optional transformation layer, а не частью базового контракта рендеринга.
2. Контекст и границы
В области охвата:
-
text normalization;
-
composition normalization;
-
derived block publishing;
-
derived composition publishing;
-
explicit semantic style application.
Вне области охвата:
-
hidden rewrite in renderer;
-
automatic persistence of source assets;
-
неявное смешение normalized output с canonical render result.
3. Архитектурные требования
Функция должна:
-
требовать явного
Normalize()вызова; -
работать через engine contracts, а не только через GUI logic;
-
не переписывать source blocks и source compositions на месте;
-
сохранять placeholders при block normalization;
-
позволять reuse cached normalized assets.
4. Компоненты и интеграции
Основные компоненты:
-
RenderViewModelИнициирует text normalization над текущим raw snapshot и управляет stale-state. -
CompositionsViewModelИнициирует composition normalization. -
SemanticStyleОписывает желаемое semantic transformation policy. -
INormalizerПереписывает произвольный текст. -
IBlockNormalizerПереписывает block templates с сохранением structural constraints. -
OpenAiCompatibleNormalizerКонкретная AI-реализация обоих интерфейсов. -
tf::EngineОркестрирует normalize calls, validation, derivation и reuse cached assets.
5. Контракты данных
Основные структуры:
-
SemanticStyle -
BlockNormalizationRequest -
NormalizedBlockData -
CompositionNormalizationRequest -
NormalizedCompositionResult
Ключевые свойства контрактов:
-
text normalization возвращает строку;
-
block normalization возвращает normalized template и optional metadata;
-
composition normalization возвращает идентичность производной композиции и список rewritten blocks.
6. Основные сценарии
7. Guardrails и validation
Ключевые guardrails:
-
отсутствие normalizer приводит к explicit error;
-
empty semantic style отклоняется;
-
placeholder sets исходного и normalized block template сравниваются;
-
derived assets получают отдельную identity и tags;
-
reuse cached blocks/compositions опирается на fingerprint и normalization key.
8. Надёжность и деградация
При отсутствии AI:
-
render остаётся полностью работоспособным;
-
composition normalization не выполняется;
-
пользователь остаётся в deterministic workflow.
При ошибке provider:
-
source assets не меняются;
-
derived assets не публикуются частично как canonical replacements.
9. Операционные свойства
Функция:
-
explicit и optional;
-
порождает derived assets вместо inplace mutation;
-
требует ясного разграничения между
RenderedиNormalized; -
поддерживает кэширование по style/fingerprint.