Files
2026-02-01 17:01:21 +03:00

42 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Анализ главы по блокам
Анализ выполняется последовательно по четырём блокам. Каждый следующий шаг получает **весь накопленный 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}`
- **Только в шагах 24:** `{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` — исходный промпт «всё в одном»; оставлен для сравнения и отката.