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

LLM-GR (Guardrails)

Реакция LLM-GR выполняет дополнительную проверку текста с помощью LLM перед тем, как отдать его пользователю. Основное назначение — валидация исходящих ответов LLM, но реакция может проверять любую переменную из контекста.

Когда использовать

  • После реакции LLM-Ответ — для проверки сгенерированного ответа перед отправкой пользователю
  • После реакции LLM-Анализ — для валидации результатов анализа
  • В любом другом месте сценария — для проверки произвольных переменных контекста (например, входящего сообщения пользователя)

Настройка промпта Guardrails

Промпт для проверки можно задать на двух уровнях:

1. На уровне проекта

Перейдите в Настройки проекта → вкладка Модерация и заполните поле «Промпт для guardrails» (до 3 000 символов). Этот промпт будет использоваться по умолчанию для всех реакций LLM-GR в проекте.

2. На уровне шага сценария

В настройках самой реакции LLM-GR укажите промпт в поле «Промпт». Этот промпт имеет приоритет над проектным.

к сведению

Если в реакции LLM-GR промпт не указан, используется промпт из настроек проекта (вкладка «Модерация»). Если не задан ни один — проверка не будет выполнена корректно.

Параметры реакции

ПолеОписаниеОбязательное
Переменная для проверкиИмя переменной контекста, из которой LLM-GR возьмёт текст для анализаДа
Переменная для причиныИмя переменной, в которую будет записана причина ошибки при непройденной проверкеНет
ПромптИнструкция для LLM по проверке текста. Если не указан — используется промпт из настроек проектаНет

Выходные порты реакции

Реакция имеет два выходных порта:

  • Успех — текст прошёл проверку guardrails. Можно отправить оригинальный ответ пользователю.
  • Ошибка — текст не прошёл проверку. В переменную для причины (если указана) записывается объяснение, почему проверка не пройдена.

Пример использования: LLM-Ответ + LLM-GR

Типичная цепочка: intent → LLM-Ответ → LLM-GR → Текст

Шаг 1. Настройте LLM-Ответ

В настройках реакции LLM-Ответ:

  1. Включите Silent mode
  2. В поле «Переменная для сохранения» укажите имя переменной, например: llm_answer

LLM-Ответ сгенерирует ответ, но не отправит его пользователю, а сохранит в переменную llm_answer.

Шаг 2. Настройте LLM-GR

В настройках реакции LLM-GR:

  1. Переменная для проверкиllm_answer (та же переменная, что в Silent mode)
  2. Переменная для причины — например, guardrails_reason
  3. Промпт — инструкция для проверки (или оставьте пустым для использования проектного промпта)

Шаг 3. Настройте ветвление

  • Ветка «Успех» → добавьте реакцию Текст с содержимым {{ llm_answer }} — пользователь получит оригинальный ответ, прошедший проверку
  • Ветка «Ошибка» → добавьте реакцию Текст с сообщением об отказе, например: Извините, но не можем вам ответить, потому что: {{ guardrails_reason }}
к сведению

Переменную guardrails_reason можно использовать не только для отображения пользователю, но и для аналитики. Например, в сниппете:

core.send('guardrails_block', context.guardrails_reason);

Это позволит отслеживать причины блокировок через сырые данные.


Альтернативные сценарии использования

Реакция LLM-GR не ограничена проверкой ответов LLM. Её можно применять для:

  • Модерации входящих сообщений — используйте переменную context.current.params.text для проверки сообщения пользователя через промпт guardrails. Это даёт полный контроль над логикой модерации через настраиваемый промпт.
  • Проверки данных из внешних источников — валидация контента, полученного через сниппеты или API-интеграции.
  • Многоэтапной проверки — последовательное применение нескольких LLM-GR с разными промптами для разных аспектов проверки.
warning

Каждый вызов LLM-GR — это отдельный запрос к LLM, расходующий токены. Учитывайте это при проектировании сценариев с множественными проверками.