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

Модерация (Guardrails)

Нода Модерация выполняет проверку контента с помощью языковой модели. Она анализирует текст по заданным критериям и направляет поток по ветке «Пройдено» или «Не пройдено» в зависимости от результата.

Назначение

  • Проверка пользовательского ввода на безопасность
  • Модерация контента перед публикацией
  • Валидация ответов агента по заданным правилам
  • Фильтрация нежелательного контента

Настройки

Входная переменная

Определяет, какой текст проверять. По умолчанию -- input. Можно указать:

  • input -- входные данные процесса
  • lastOutput -- результат предыдущей ноды
  • node_X -- результат конкретной ноды

Кнопка справа от поля позволяет выбрать переменную интерактивно.

Системный промпт

Промпт, определяющий правила проверки. Модель получает этот промпт как системное сообщение, а проверяемый текст -- как сообщение пользователя.

Модель должна вернуть JSON:

{
"passed": true,
"violations": []
}

Или, если нарушения найдены:

{
"passed": false,
"violations": ["описание нарушения 1", "описание нарушения 2"]
}

Промпт по умолчанию проверяет общую безопасность контента. Вы можете заменить его на свой с конкретными правилами.

Пример кастомного промпта:

Ты -- модератор контента для финансового сервиса.
Проверь текст на наличие:
1. Финансовых рекомендаций без дисклеймера
2. Обещаний гарантированной доходности
3. Призывов к рискованным инвестициям
4. Персональных данных (номера карт, ИНН и т.д.)

Ответь JSON: {"passed": true/false, "violations": [...]}
Если текст безопасен, set passed=true и violations=[].

Модель анализа

Языковая модель для проверки. По умолчанию: openai/gpt-4o. Рекомендуется использовать более мощные модели для точной модерации.

Действие при нарушении

Определяет поведение при обнаружении нарушений:

ДействиеОписание
БлокироватьПоток идет по ветке «Не пройдено» (по умолчанию)
ПредупредитьНарушение логируется, но поток идет по ветке «Пройдено»
ПометитьНарушение записывается в лог, поток продолжается

При действиях «Предупредить» и «Пометить» нода всегда направляет поток по ветке «Пройдено», даже если нарушения найдены. Это полезно для сбора статистики без блокировки.

Входные данные

Текст для проверки, определяемый входной переменной.

Выходные данные

{
"passed": true,
"condition": true,
"branch": "passed",
"violations": [],
"message": "All guardrails passed",
"question": "проверяемый текст",
"action_taken": "block"
}

При обнаружении нарушений:

{
"passed": false,
"condition": false,
"branch": "failed",
"violations": ["описание нарушения"],
"message": "Content flagged: описание нарушения",
"question": "проверяемый текст",
"action_taken": "block"
}

Подключения

  • Вход: один вход (слева)
  • Выход «Пройдено»: зеленая точка (верхняя) -- контент безопасен
  • Выход «Не пройдено»: красная точка (нижняя) -- обнаружены нарушения

Примеры использования

Проверка пользовательского ввода

Старт → Модерация → [Пройдено] → Агент → Конец
→ [Не пройдено] → Сообщение "Ваш запрос содержит недопустимый контент"

Проверка ответа агента

Старт → Агент → Модерация → [Пройдено] → Конец
→ [Не пройдено] → LLM (переформулировать ответ) → Конец

Многоуровневая модерация

Старт → Модерация (безопасность) → [Пройдено] → Модерация (бренд-гайд) → [Пройдено] → Отправка
Fail-Open и обработка ошибок

Если модель модерации не смогла выполнить проверку (например, из-за ошибки API), нода по умолчанию пропускает контент (fail-open) и записывает ошибку в результат. Это предотвращает полную блокировку процесса из-за технических проблем с модерацией. Подробнее: Отладка выполнений.

Стоимость модерации

Каждая проверка -- это полноценный вызов LLM. При высоких объемах учитывайте дополнительные расходы на токены. Для снижения стоимости можно использовать более легкие модели (gpt-4o-mini).