🧠 AI-блоки в сценариях
В конструкторе сценариев AI доступен как отдельный пакет блоков — «ИИ». Каждый блок берёт данные из полей и переменных сценария (синтаксис {{…}}), выполняет AI-операцию и сохраняет результат в переменную для следующих шагов.
Всего таких блоков 12: девять работают в сценариях любого типа, три — только в сценариях типа «Поддержка», потому что им нужен текущий чат. В палитре все они собраны в одну карточку «ИИ-блок»; конкретный блок выбирается в панели свойств в поле «Режим» (см. Блоки). Отдельно от них стоит блок «AI-агент»: он не делает один вызов модели, а ведёт разговор целиком — см. Агентский режим.
Кому доступно. Добавлять и настраивать блоки может участник проекта с ролью «Редактор» и выше.
Выбор модели
Модель выбирается не по имени, а тиром — поле «Модель» со значениями «Быстрая», «Умная», «Продвинутая» и подписью «Скорость vs качество ответа». У блока «AI-агент» те же тиры подписаны «Быстрая», «Базовая», «Точная». Какая именно нейросеть стоит за тиром, решает платформа; она может смениться без изменений в вашем сценарии. Подробнее — AI-возможности.
Поле есть не у всех блоков. Там, где его нет, тир зафиксирован разработчиками и изменить его нельзя.
| Блок | Поле «Модель» | Значение по умолчанию |
|---|---|---|
| ИИ — генерация | есть | Умная |
| ИИ — JSON по схеме | есть | Умная |
| ИИ — извлечение данных | есть | Умная |
| ИИ — классификация | есть | Быстрая |
| ИИ — тональность | есть | Быстрая |
| ИИ — язык текста | есть | Быстрая |
| ИИ — перевод | нет | — |
| ИИ — модерация | нет | — |
| ИИ — выбор варианта | нет | — |
| ИИ — ответ по базе | нет | — |
| ИИ — сводка чата | нет | — |
| ИИ — классификация чата | нет | — |
Температуры у AI-блоков нет — она настраивается только у блока «AI-агент».
Порог уверенности и ветка «Не уверена»
У блоков «ИИ — классификация», «ИИ — тональность», «ИИ — ответ по базе» и «ИИ — классификация чата» есть поле «Порог уверенности» — число от 0 до 1, по умолчанию 0.6. Подпись поля объясняет логику: если уверенность модели ниже порога — сценарий уходит в ветку «Не уверена».
У таких блоков на канве появляется дополнительный выход. Если модель не уверена в ответе, сценарий уходит именно туда — это штатный путь эскалации на человека вместо неверного автоответа. Типовая схема: основной выход ведёт в автоматический ответ, выход «Не уверена» — в передачу чата сотруднику или в уведомление.
Уверенность дополнительно записывается в переменную <имя>_confidence, где <имя> — имя переменной результата. Её можно проверить условием и построить более сложную логику.
Чем выше порог, тем чаще сценарий будет уходить к человеку и тем реже ошибаться. Начните со значения по умолчанию и корректируйте, глядя на реальные запуски.
Ветка «Ошибка»
У всех AI-блоков, кроме «ИИ — модерация», есть выход «Ошибка». Туда блок уходит, если AI-сервис недоступен или ответ не удалось разобрать, а причина записывается в error_message; переменная результата при этом остаётся пустой.
Если выход «Ошибка» не разведён, а блок ушёл в него, запуск завершится с ошибкой — причина будет видна в шаге трассы. Для важной маршрутизации разводите этот выход, например, на передачу диалога сотруднику.
Системный промпт
У блоков «ИИ — генерация», «ИИ — JSON по схеме» и «ИИ — ответ по базе» есть необязательное поле «Системный промпт»: в нём задают роль, тон и правила — например, «Отвечай как поддержка Fixorix: профессионально, но тепло, не обещай возвраты и сроки». Поле поддерживает шаблоны {{…}}. Если оставить его пустым, блок работает без системной инструкции.
Для «ИИ — ответ по базе» этот текст подмешивается поверх базовых правил ответа по базе: правила безопасности и запрет выдумывать факты остаются в силе. Пустое поле — стандартная персона.
Блоки для сценариев любого типа
ИИ — генерация
Генерирует свободный текст по описанию.
| Поле | Назначение |
|---|---|
| Шаблон промпта | Инструкция для модели, поддерживает переменные {{…}} |
| Сохранить ответ в | Имя переменной для результата |
| Модель | Тир (по умолчанию «Умная») |
| Системный промпт | Роль, тон и правила (необязательно) |
Выходы: «Далее» и «Ошибка» (AI-сервис не ответил; заполняется error_message). Пример: персональное приветствие по имени клиента.
ИИ — 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 |
| Сообщений из истории | Сколько последних сообщений чата видит модель: 1–200, по умолчанию 20. Чем больше, тем выше шанс, что ответ уедет на прошлую тему |
| Порог релевантности | Минимальная релевантность документа, чтобы он вообще попал в ответ (0–1); пусто — значение сервиса |
| Язык | Код языка или 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-сервиса завершает запуск с ошибкой.
- AI-ответ — это данные, а не решение: для ответственных шагов оставляйте ветку эскалации на человека.
→ AI-возможности · Агентский режим · Создание и изменение сценария через ИИ · Улучшение промпта