🧠 AI-блоки в сценариях
В конструкторе сценариев AI доступен как отдельный пакет блоков — «ИИ». Каждый блок берёт данные из полей и переменных сценария (синтаксис {{…}}), выполняет AI-операцию и сохраняет результат в переменную для следующих шагов.
Всего таких блоков 12: девять работают в сценариях любого типа, три — только в сценариях типа «Поддержка», потому что им нужен текущий чат. Отдельно от них стоит блок «AI-агент»: он не делает один вызов модели, а ведёт разговор целиком — см. Агентский режим.
Кому доступно. Добавлять и настраивать блоки может участник проекта с ролью «Редактор» и выше.
Выбор модели
Модель выбирается не по имени, а тиром — поле «Модель» со значениями «Быстрая», «Базовая», «Точная» и подписью «Скорость vs качество ответа». Какая именно нейросеть стоит за тиром, решает платформа; она может смениться без изменений в вашем сценарии. Подробнее — AI-возможности.
Поле есть не у всех блоков. Там, где его нет, тир зафиксирован разработчиками и изменить его нельзя.
| Блок | Поле «Модель» | Значение по умолчанию |
|---|---|---|
| ИИ — генерация | есть | Базовая |
| ИИ — JSON по схеме | есть | Базовая |
| ИИ — извлечение данных | есть | Базовая |
| ИИ — классификация | есть | Быстрая |
| ИИ — тональность | есть | Быстрая |
| ИИ — язык текста | есть | Быстрая |
| ИИ — перевод | нет | — |
| ИИ — модерация | нет | — |
| ИИ — выбор варианта | нет | — |
| ИИ — ответ по базе | нет | — |
| ИИ — сводка чата | нет | — |
| ИИ — классификация чата | нет | — |
У блоков свободной генерации рядом с «Моделью» есть «Температура» — насколько модель вольна в формулировках. Рекомендуемый диапазон — 0,2–0,4: выше ответы становятся разнообразнее и менее предсказуемыми.
Порог уверенности и ветка «Не уверена»
У блоков «ИИ — классификация», «ИИ — тональность», «ИИ — ответ по базе» и «ИИ — классификация чата» есть поле «Порог уверенности» — число от 0 до 1, по умолчанию 0.6. Подпись поля объясняет логику: если уверенность модели ниже порога — сценарий уходит в ветку «Не уверена».
У таких блоков на канве появляется дополнительный выход. Если модель не уверена в ответе, сценарий уходит именно туда — это штатный путь эскалации на человека вместо неверного автоответа. Типовая схема: основной выход ведёт в автоматический ответ, выход «Не уверена» — в передачу чата сотруднику или в уведомление.
Уверенность дополнительно записывается в переменную <имя>_confidence, где <имя> — имя переменной результата. Её можно проверить условием и построить более сложную логику.
Чем выше порог, тем чаще сценарий будет уходить к человеку и тем реже ошибаться. Начните со значения по умолчанию и корректируйте, глядя на реальные запуски.
Системный промпт
У блоков «ИИ — генерация», «ИИ — JSON по схеме» и «ИИ — ответ по базе» есть необязательное поле системного промпта: в нём задают роль, тон и правила — например, «Отвечай как поддержка Fixorix: профессионально, но тепло, не обещай возвраты и сроки». Поле поддерживает шаблоны {{…}}.
Для «ИИ — ответ по базе» этот текст подмешивается перед базовым RAG-промптом: правила безопасности и запрет выдумывать факты остаются в силе.
У этого поля пока нет русской подписи, поэтому в интерфейсе оно подписано автоматически сформированным именем system_prompt.
Блоки для сценариев любого типа
ИИ — генерация
Генерирует свободный текст по описанию.
| Поле | Назначение |
|---|---|
| Шаблон промпта | Инструкция для модели, поддерживает переменные {{…}} |
| Сохранить ответ в | Имя переменной для результата |
| Модель | Тир (по умолчанию «Базовая») |
| Системный промпт | Роль, тон и правила (необязательно) |
Выход один — «Далее». Пример: персональное приветствие по имени клиента.
ИИ — JSON по схеме
Генерирует структурированный JSON заданного вида — когда результат нужен не текстом, а объектом с полями.
| Поле | Назначение |
|---|---|
| Шаблон промпта | Что нужно сформировать, поддерживает переменные |
| JSON-схема ответа | Структура ожидаемого JSON, например {"name": "string"} |
| Сохранить результат в | Имя переменной; в неё кладётся объект |
| Модель | Тир (по умолчанию «Базовая») |
| Системный промпт | Роль, тон и правила (необязательно) |
Выход один — «Далее». Пример: собрать из свободного текста карточку заявки с полями «тема», «срочность», «контакт».
ИИ — классификация
Относит значение переменной к одной из заданных категорий.
| Поле | Назначение |
|---|---|
| Что классифицируем | Имя переменной, значение которой разбираем |
| Категории | Список названий категорий — от 2 до 30 |
| Сохранить категорию в | Имя переменной для результата |
| Модель | Тир (по умолчанию «Быстрая») |
| Порог уверенности | 0–1, по умолчанию 0.6 |
Выходы: «Далее» и «Не уверена». Дополнительно заполняется <имя>_confidence. Если AI-сервис ответил ошибкой, блок уходит по ветке «Далее» и заполняет error_message — при важной маршрутизации это стоит проверять условием.
Пример: отнести обращение к «оплата / доставка / возврат».
ИИ — извлечение данных
Достаёт из текста структурированные данные по JSON-схеме.
| Поле | Назначение |
|---|---|
| Что обрабатываем | Имя переменной с исходным текстом |
| JSON-схема | Что именно нужно извлечь |
| Сохранить результат в | Имя переменной для результата |
| Модель | Тир (по умолчанию «Базовая») |
Выход один — «Далее». Пример: вытащить номер заказа и email из сообщения клиента.
ИИ — выбор варианта
Ранжирует список кандидатов и выбирает лучшие — модель сравнивает их между собой по заданному критерию.
| Поле | Назначение |
|---|---|
| Критерий выбора | По чему выбираем, поддерживает переменные |
| Список кандидатов | Имя переменной со списком вариантов |
| Сохранить результат в | Имя переменной для результата |
| Сколько выбрать | От 1 до 50, по умолчанию 1 |
| Язык | Код языка или auto |
Выходы: «Далее» и «Пусто» (ничего не подошло). В переменную кладётся список объектов с полями id, content, score и metadata, отсортированный по убыванию релевантности; краткое обоснование выбора — в <имя>_rationale.
Пример: выбрать из списка статей ту, что лучше отвечает на вопрос клиента.
ИИ — перевод
Переводит текст на указанный язык. Подробное описание и примеры: Перевод текста.
| Поле | Назначение |
|---|---|
| Текст | Что переводим, поддерживает переменные |
| Целевой язык | Код языка: 2–3 строчные буквы, опционально регион (en, pt-BR) |
| Исходный язык | Код языка или auto (по умолчанию auto) |
| Сохранить перевод в | Имя переменной для результата |
Поля «Модель» нет. Выход один — «Далее». Определённый исходный язык записывается в <имя>_detected.
ИИ — тональность
Определяет эмоциональную окраску текста и сам маршрутизирует сценарий.
| Поле | Назначение |
|---|---|
| Текст | Что оцениваем, поддерживает переменные |
| Сохранить тональность в | Имя переменной (необязательно) |
| Модель | Тир (по умолчанию «Быстрая») |
| Порог уверенности | 0–1, по умолчанию 0.6 |
Выходов четыре: «Позитивный», «Нейтральный», «Негативный» и «Не уверена». Если AI-сервис недоступен, блок мягко уходит в ветку «Нейтральный» и заполняет error_message.
Пример: негативные обращения сразу переводить на сотрудника, остальные вести по автосценарию.
ИИ — модерация
Проверяет текст на запрещённый контент.
| Поле | Назначение |
|---|---|
| Текст | Что проверяем, поддерживает переменные |
| Сохранить вердикт в | Имя переменной (необязательно) |
Поля «Модель» нет — проверка всегда идёт на быстром тире. Выходов два: «Безопасно» и «Помечено». В переменную кладётся объект с полями flagged (нарушение найдено или нет), severity (насколько серьёзное), categories (какие категории сработали) и rationale (пояснение). Текст считается нарушением, если хотя бы одна категория набрала 0,5 и выше.
Если проверить текст не удалось — сервис недоступен, запрос упал, — блок уходит по ветке «Помечено», а не пропускает сообщение дальше. Это сделано намеренно: при сбое безопаснее задержать сомнительный текст, чем пропустить. Разводите эту ветку так, чтобы она была безопасна и для ложного срабатывания: например, на передачу диалога сотруднику.
Этой же проверкой пользуется блок «AI-агент», когда включено «Проверять ответы агента модерацией».
ИИ — язык текста
Определяет язык текста и сохраняет его код.
| Поле | Назначение |
|---|---|
| Текст | Что анализируем, поддерживает переменные |
| Сохранить код языка в | Имя переменной для кода языка |
| Модель | Тир (по умолчанию «Быстрая») |
Выход один — «Далее». Удобно ставить перед блоком «ИИ — перевод», чтобы переводить только чужие языки.
Блоки только для сценариев «Поддержка»
Этим блокам нужен текущий чат, поэтому в палитре они появляются только в сценариях типа «Поддержка».
ИИ — ответ по базе
Готовит обоснованный ответ по базе знаний проекта с учётом истории текущего чата (RAG). Возвращает не список статей, а готовый текст ответа.
| Поле | Назначение |
|---|---|
| Запрос | Вопрос для поиска по базе, поддерживает переменные |
| Сохранить ответ в | Имя переменной для текста ответа |
| Кол-во результатов | Сколько релевантных фрагментов учесть: 1–50, по умолчанию 5 |
| Язык | Код языка или auto |
| Порог уверенности | 0–1, по умолчанию 0.6 |
| Системный промпт | Роль, тон и правила (необязательно) |
Поля «Модель» нет. Выходов три:
- «Далее» — ответ получен, уверенность не ниже порога;
- «Не уверена» — ответ получен, но уверенность ниже порога (например, подходящих документов в базе не нашлось и модель отвечала по переписке);
- «Не найдено» — ответа нет: чат не определился, сервис вернул пустой текст или произошла ошибка (тогда заполняется
error_message).
Уверенность записывается в <имя>_confidence. Наполнение базы знаний: База знаний.
ИИ — сводка чата
Делает краткую сводку по всей переписке текущего чата и кладёт её в переменную.
| Поле | Назначение |
|---|---|
| Сохранить сводку в | Имя переменной для текста сводки |
| Язык | Код языка или auto |
Выход один — «Далее». Если чат не определился или сервис ответил ошибкой, блок всё равно идёт по этой ветке и заполняет error_message.
Пример: перед созданием тикета положить сводку диалога в описание.
ИИ — классификация чата
Определяет намерение (интент) и тональность текущего чата по его истории.
| Поле | Назначение |
|---|---|
| Сохранить результат в | Имя переменной; в неё кладётся объект целиком |
| Порог уверенности | 0–1, по умолчанию 0.6 |
Выходы: «Далее» и «Не уверена». Дополнительно заполняются <имя>_intent (код намерения), <имя>_sentiment (тональность) и <имя>_confidence. Для маршрутизации удобно поставить следом блок «Условие» или «Переключатель» по <имя>_intent.
Ограничения
- Не больше 200 AI-вызовов на один запуск сценария — это общий бюджет на все AI-блоки и на блок «AI-агент». При превышении запуск прерывается. Один разговор агента съедает заметную часть бюджета, поэтому два агента в одном сценарии в лимит уже не помещаются.
- Результат зависит от качества входных данных, формулировки промпта и выбранного тира.
- Блоки «ИИ — ответ по базе», «ИИ — сводка чата» и «ИИ — классификация чата» доступны только в сценариях типа «Поддержка».
- AI-ответ — это данные, а не решение: для ответственных шагов оставляйте ветку эскалации на человека.
→ AI-возможности · Агентский режим · Создание и изменение сценария через ИИ · Улучшение промпта