This commit is contained in:
2026-02-01 17:01:21 +03:00
commit 9575eaf8ee
144 changed files with 24025 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
# Извлечение тегов (шаг 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`.
## Использование
Вызывается после шага 2b (финальная валидация). Модель: qwen3-14b:8bit (или аналог). Перед вызовом в промпт подставляется актуальный список тегов из БД.

View File

@@ -0,0 +1,79 @@
Ты — эксперт по тегированию нон-фикшн. На основе валидированного анализа главы извлеки теги по категориям. Теги нужны для фильтрации и кросс-книжного поиска.
Контекст:
- Книга: "{book_title}"
- Глава: "{chapter_title}"
Данные анализа (JSON-блоки, сериализованные в строку):
- Каркас (принципы, цепочки, термины): {framework}
- Инсайты: {insights}
- Применение (техники, методики): {application}
- Ограничения: {limitations}
Оригинальный текст главы (выдержка для контекста): {chapter_text}
Допустимые теги по категориям — JSON (выбирай ТОЛЬКО из этого списка): {allowed_tags_json}
**Опора при выборе тегов:** в первую очередь блоки анализа (framework, insights, application); текст главы — для проверки релевантности и калибровки confidence.
---
## ЗАДАЧА
Извлеки теги по следующим категориям. Ключи категорий в ответе — на английском (соответствуют полю `category` в БД):
1. **principle** — по сути правила/принципа: название правила/принципа, ключевые концепции, связанные принципы.
2. **psychology** — по психологическому механизму: психологические концепции, проблемы, механизмы работы. Включай термин из списка, если он **существенно используется** в главе (объяснён, в цепочке причина–механизм–результат или в примере), а не только упомянут вскользь.
3. **method** — по методу/технике: конкретные методики, подходы, процессы.
4. **result** — по результату/цели: достигаемые результаты, цели применения.
5. **context** — по контексту книги: связь с общей концепцией книги, автор и подход, общая тематика.
Теги должны отражать **суть** главы, а не просто упоминания. Каждый тег — релевантен содержанию. Избегай слишком общих тегов. Приоритет: качество над количеством. **Не более 5 тегов на категорию;** при равной релевантности оставляй самые важные для поиска.
---
## СТРОГИЕ ПРАВИЛА
1. Выбирай теги **только** из переданного списка (`allowed_tags_json`). В поле `tag` копируй строку **точно как в списке** — без изменения формулировки, регистра и пунктуации.
2. Если для главы нужен смысл, которого нет в списке — верни его в блоке `proposed`: объект с полями `tag`, `category` (principle | psychology | method | result | context), `reason`. Не добавляй такой тег в основные категории.
3. Один и тот же смысл — один тег; не дублируй синонимами из списка.
4. **Confidence** (0.01.0) калибруй так: **0.91.0** — тема в ядре главы (принципы, главные идеи); **0.70.89** — есть в главе, но второстепенно или через примеры; **0.50.69** — только упомянуто, без разбора. Не завышай: различай «главное» и «по касательной».
5. Не используй вводные фразы и пояснения в ответе — только JSON.
---
## ФОРМАТ ОТВЕТА
Строго один JSON-объект без комментариев и markdown:
{
"tags": {
"principle": [
{ "tag": "название тега из списка", "confidence": 0.95 }
],
"psychology": [
{ "tag": "...", "confidence": 0.9 }
],
"method": [
{ "tag": "...", "confidence": 0.85 }
],
"result": [
{ "tag": "...", "confidence": 0.9 }
],
"context": [
{ "tag": "...", "confidence": 0.88 }
]
},
"proposed": [
{
"tag": "формулировка предлагаемого тега",
"category": "principle | psychology | method | result | context",
"reason": "краткое обоснование в 12 предложениях"
}
]
}
- Ключи в `tags` — английские, соответствуют полю `tags.category` в БД. Пустые категории — пустой массив `[]`. В каждом `tag` — строка в точности как в `allowed_tags_json`.
- Блок `proposed` — только если ни один существующий тег не подходит по смыслу; иначе пустой массив `[]`.
Верни только этот объект — ничего до и после.

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,34 @@
{
"tags": {
"principle": [
{ "tag": "среда формирует поведение", "confidence": 0.95 },
{ "tag": "привычки не исчезают", "confidence": 0.92 },
{ "tag": "самоконтроль краткосрочен", "confidence": 0.9 },
{ "tag": "дисциплина через среду", "confidence": 0.9 },
{ "tag": "негативные эмоции усиливают поведение", "confidence": 0.85 }
],
"psychology": [
{ "tag": "стимул", "confidence": 0.95 },
{ "tag": "привычка", "confidence": 0.95 },
{ "tag": "желание вызванное стимулом", "confidence": 0.9 },
{ "tag": "аутокаталитический процесс", "confidence": 0.85 },
{ "tag": "подкрепление", "confidence": 0.8 }
],
"method": [
{ "tag": "снижение доступности стимула", "confidence": 0.95 },
{ "tag": "настройка среды", "confidence": 0.92 },
{ "tag": "устранение триггеров", "confidence": 0.9 }
],
"result": [
{ "tag": "уменьшение вредных привычек", "confidence": 0.95 },
{ "tag": "устойчивое поведение", "confidence": 0.9 },
{ "tag": "снижение искушений", "confidence": 0.85 }
],
"context": [
{ "tag": "поведенческая психология", "confidence": 0.95 },
{ "tag": "привычки", "confidence": 0.92 },
{ "tag": "атомные привычки", "confidence": 0.9 }
]
},
"proposed": []
}