# Извлечение тегов (шаг 3) Отдельный шаг пайплайна после финальной валидации согласованности (2b). ИИ использует уже структурированный анализ главы (каркас, инсайты, применение) и оригинальный текст для извлечения тегов по категориям. ## Промпт | Файл | Назначение | |------------------|-------------------------------------------------| | extract_tags.txt | Извлечение тегов по категориям из валидированного анализа | ## Подстановки - `{book_title}` — название книги - `{chapter_title}` — название главы - `{framework}` — JSON блока framework - `{insights}` — JSON блока insights - `{application}` — JSON блока application - `{limitations}` — JSON блока limitations (опционально) - `{chapter_text}` — оригинальный текст главы (можно обрезать по лимиту токенов) - `{allowed_tags_json}` — актуальный список допустимых тегов по категориям (из БД `tags`) ## Вход Валидированный анализ главы (все блоки) + оригинальный текст главы + словарь допустимых тегов. ## Выход JSON с тегами по категориям (ключи на английском: `principle`, `psychology`, `method`, `result`, `context`) и confidence score для каждого тега; при необходимости — кандидаты в `proposed` с полем `category` из того же набора. Маппинг категорий: ARCHITECTURE_SUMMARY.md → раздел «Хранение данных» → таблица `tags`. ## Скрипт через Ollama `run_extract_tags_ollama.py` — один вызов Ollama для извлечения тегов по категориям. На выходе один JSON-файл. **Вход (по умолчанию):** - `../1_анализ_главы/merge.json` — полный анализ (framework, insights, application, limitations) - `../1_анализ_главы/вход_главы.json` — текст главы и метаданные - `allowed_tags.json` — допустимые теги по категориям (объект с ключами principle, psychology, method, result, context и массивами строк). Если файла нет — используется пустой список (модель вернёт только блок `proposed`). Пример: `allowed_tags.example.json`. **Выход:** `extracted_tags.json` в каталоге скрипта (или путь через `-o`). **Формат выхода:** `tags` (по категориям: principle, psychology, method, result, context — массивы объектов `{ "tag", "confidence" }`), `proposed` (кандидаты в новые теги). **Запуск:** ```bash cd 3_извлечение_тегов # подготовить список тегов (скопировать пример или экспорт из БД): cp allowed_tags.example.json allowed_tags.json python3 run_extract_tags_ollama.py # с указанием путей: python3 run_extract_tags_ollama.py --merge /path/to/merge.json --chapter /path/to/вход_главы.json --allowed-tags allowed_tags.json -o extracted_tags.json ``` ## Использование в пайплайне Вызывается после шага 2b (финальная валидация). Модель: qwen3-14b:8bit (или аналог). Перед вызовом в промпт подставляется актуальный список тегов из БД (или из файла `allowed_tags.json`).