Files
tech/3_извлечение_тегов/README.md
2026-02-01 22:02:49 +03:00

56 lines
3.9 KiB
Markdown
Raw 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.

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