# Анализ главы по блокам Анализ выполняется последовательно по четырём блокам. Каждый следующий шаг получает **весь накопленный JSON** (уже извлечённые блоки) для согласованности. После каждого блока — валидация (см. `2_валидация_анализа_по_блокам/`), затем склейка. ## Входные данные (JSON) Вход этапа 1 — один JSON-файл на главу. Поля используются в подстановках промптов и передаются по пайплайну до шага 7 (payload в Qdrant). | Поле | Тип | Обязательно | Описание | |------|-----|-------------|----------| | `book_id` | string (UUID) | да | ID книги | | `chapter_id` | string (UUID) | да | ID главы (на шаге 7 — id точки в Qdrant) | | `chapter_number` | integer | да | Номер главы | | `chapter_title` | string | да | Название главы → `{chapter_title}` | | `book_title` | string | да | Название книги → `{book_title}` | | `chapter_text` | string | да | Текст главы → `{chapter_text}` | | `author` | string | нет | Автор книги (для payload на шаге 7) | **Файлы:** `вход_главы.spec.json` — описание формата (JSON Schema); `вход_главы.example.json` — пример. Имя входного файла на главу — на усмотрение пайплайна (например `input.json` или `{book_id}_{chapter_id}.json`). ## Порядок генерации | Шаг | Промпт | Вход | Выход | |-----|--------|------|-------| | 1 | extract_framework.txt | текст главы | `framework` | | 2 | extract_insights.txt | текст главы + framework | `insights` | | 3 | extract_application.txt | текст главы + framework + insights | `application` | | 4 | extract_limitations.txt | текст главы + framework + insights + application | `limitations` | ## Подстановки в промптах - **Во всех:** `{book_title}`, `{chapter_title}`, `{chapter_text}` - **Только в шагах 2–4:** `{previous_blocks_json}` — весь накопленный JSON (все уже завалидированные предыдущие блоки). Пример: для extract_insights подставляем только `framework`; для extract_application — объект с ключами `framework` и `insights`; для extract_limitations — объект с `framework`, `insights`, `application`. ## Склейка Четыре ответа (по одному JSON-объекту с ключом framework / insights / application / limitations) объединяются в один анализ: слияние ключей верхнего уровня без вызова LLM. ## Монолитный промпт `chapter_analysis_qwen3_prompt.txt` — исходный промпт «всё в одном»; оставлен для сравнения и отката.