56 lines
3.9 KiB
Markdown
56 lines
3.9 KiB
Markdown
# Извлечение тегов (шаг 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`).
|