Перейти к основному содержимому

Tag Regulator

Назначение

Нормализация тегов элементов Zotero на основе контролируемого словаря и использование ИИ для вывода возможных новых тегов.

Этот Workflow вызывает навык tag-regulator на бэкенде Skill-Runner для проверки соответствия тегов словарю и рекомендации релевантных тегов.

Сценарии использования

  • Пакетная очистка нестандартных тегов
  • Автоматическая рекомендация тегов для элементов на основе существующего контролируемого словаря
  • Поддержание непрерывных обновлений и уточнений контролируемого словаря

Ограничения ввода

Тип ограниченияОписание
Единица вводаРодительский элемент
Источник данныхПолучено от родительского элемента: текущие теги, метаданные (заголовок, авторы, аннотация и т.д.)

Если существует встроенная полезная нагрузка дайджеста markdown, сгенерированная анализом литературы, Workflow автоматически загрузит её как необязательный контекст для улучшения качества вывода.

Способы запуска

  • Прямой выбор одного или нескольких элементов Zotero (родительских элементов)
  • После выбора элементов выберите "Tag Regulator" из контекстного меню

Поток выполнения

1. Загрузка контролируемого словаря
└── Чтение tagVocabularyJson из настроек Zotero
└── Разбор списка допустимых тегов в словаре

2. Создание запроса
└── Сбор метаданных родительского элемента и текущего списка тегов
└── Запись контролируемого словаря во временный файл YAML
└── Загрузка в Skill-Runner

3. Обработка Skill-Runner
└── Вызов skill_id: "tag-regulator"
└── Проверка соответствия тегов
└── Генерация предложенных тегов (suggest_tags)

4. Возврат результатов
└── Применение изменений тегов (удаление несоответствующих тегов, добавление рекомендованных тегов)
└── Согласование предложенных тегов с текущим локальным словарём
└── Обработка предложенных тегов (всплывающее взаимодействие)

Логика обработки тегов

  • remove_tags: Текущие теги, не находящиеся в контролируемом словаре, будут удалены
  • add_tags: Теги, выведенные из метаданных, добавляются непосредственно к элементу
  • suggest_tags: Новые теги, предложенные ИИ, требующие подтверждения от пользователя
  • digest_markdown: Необязательный контекст обогащения, загружается только когда существует встроенная полезная нагрузка дайджеста markdown

Правила синхронизации в реальном времени

Когда результаты возвращаются, читается последнее локальное состояние:

  • Если suggest_tag уже вошёл в контролируемый словарь, всплывающее окно не показывается; он участвует в обновлении элемента с семантикой add_tags
  • Если suggest_tag уже находится в области промежуточного хранения, он не будет записан в область промежуточного хранения снова
  • Только предложения, которые остаются необработанными, войдут во всплывающее окно

Оценочная продолжительность

СценарийОценочное время на статью
Без дайджеста (Анализ литературы не запущен)Приблизительно 1 минута
С дайджестом (Анализ литературы уже запущен)1-3 минуты

Если у элемента уже есть дайджест, ИИ будет использовать резюме как дополнительный контекст, что приведёт к более точному, но более длительному выводу.

Всплывающее окно предложенных тегов

Для suggest_tags диалог предлагает пользователю выбрать, как их обработать:

  • Добавить: Добавить непосредственно в контролируемый словарь
  • Промежуточное хранение: Поместить в область промежуточного хранения для последующего просмотра
  • Отклонить: Игнорировать предложение
  • Добавить все / Промежуточное хранение всех / Отклонить все: Пакетная обработка

Диалог имеет 10-секундный обратный отсчёт автоматического промежуточного хранения; если время истекло, предложения автоматически помещаются в промежуточное хранение.

Выходы

1. Изменения тегов

  • remove_tags: Удалить теги, не находящиеся в словаре, из элемента
  • add_tags: Добавить рекомендованные теги к элементу
  • Напрямую применяется к выбранным элементам Zotero

2. Обработка предложенных тегов

  • Пользователь выбирает, как обрабатывать через всплывающее окно
  • Принятые теги: Добавляются в настройку tagVocabularyJson
  • Теги в промежуточном хранении: Добавляются в настройку tagVocabularyStagedJson

Рекомендации по модели

🟢 Достаточно лёгкой модели — регулировка тегов по сути является простой задачей классификации и сопоставления, не требующей самой сильной модели.

Параметры

ПараметрТипОписаниеПо умолчанию
infer_tagbooleanВключить ли вывод теговtrue
valid_tags_formatstringФормат словаряyaml
tag_note_languagestringЯзык для описаний предложенийzh-CN

Доступные значения valid_tags_format

  • yaml: Использовать формат YAML
  • json: Использовать формат JSON
  • auto: Автоматическое определение

Зависимости

  • Контролируемый словарь: Сначала должен быть создан контролируемый словарь, см. Управление тегами
  • Бэкенд: Сервис Skill-Runner
  • Конфигурация бэкенда: Настройте бэкенд типа Skill-Runner в Менеджере бэкендов
  • Навык: Навык tag-regulator должен быть развёрнут на Skill-Runner

Связанные Workflow