ИИ-диалог

Блок ИИ-диалог позволяет боту вести с пользователем многоходовой разговор на естественном языке: задавать вопросы, собирать данные, уточнять детали — и по завершении передавать собранную информацию в следующую ноду.


Как это работает

  1. Бот входит в блок ИИ-диалога.
  2. ИИ отправляет первое сообщение согласно системному промпту.
  3. Пользователь отвечает — ответ передаётся ИИ как новое сообщение.
  4. ИИ продолжает диалог, накапливая ответы в объекте data.
  5. Когда все нужные данные собраны, диалог завершается, бот переходит к следующей ноде.

История диалога хранится в базе данных и восстанавливается при повторном входе пользователя в блок.


Настройки блока

Подключение

Поле Описание
Сервис ИИ Нейросеть для диалога: OpenAI, Claude, Gemini, Grok, YandexGPT, OpenRouter
Подключение Сохранённый API-ключ из раздела «Интеграции»
Модель Конкретная модель (например, gpt-4o). Можно указать переменную

Диалог

Поле Описание
Системный промпт Инструкция для ИИ: задача, стиль общения, что собирать
Разрешённые типы сообщений Что ИИ может отправлять: текст, inline-кнопки, reply-кнопки, опросы
JSON-схема Структура данных, которые нужно собрать (ключ → тип). ИИ накапливает их в data
Префикс переменных результата Куда сохраняются итоги диалога. При ai_result и поле name{{ai_result.name}}
Инструменты ИИ Команды бота, которые ИИ может вызвать во время разговора. Число рядом с кнопкой показывает количество подключённых инструментов
Подключить базу знаний бота Разрешает этому блоку искать ответы в документах и записях выбранного бота

Завершение

Поле Описание
Перейти к ноде Нода, куда бот переходит после final_state: true

Расширенные настройки

Поле Описание
Лимит сообщений в истории Сколько последних сообщений передаётся ИИ (по умолчанию 50)
Хранить историю (часов) TTL истории диалога. После паузы дольше этого времени история сбрасывается
Макс. токенов ответа Лимит токенов в одном ответе ИИ (по умолчанию 2048)
Шифровать данные История диалога хранится в БД в зашифрованном виде
Стриминговый режим Ответ ИИ отображается в чате по мере генерации (только для текстовых ответов)

JSON-схема

Схема определяет, какие данные должен собрать ИИ. Формат — JSON-объект, где ключи — имена полей, значения — типы:

{
  "name": "string",
  "phone": "string",
  "age": "number",
  "agree_terms": "boolean"
}

ИИ накапливает значения в объекте data по ходу диалога. Как только все поля заполнены — ИИ завершает диалог и передаёт данные дальше.

После завершения диалога каждое поле доступно как переменная:

{{ai_result.name}}
{{ai_result.phone}}
{{ai_result.age}}

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

Промпт — главная инструкция для ИИ. Правила JSON-формата ответа добавляются автоматически — их писать не нужно. Укажите:

  • Задачу: что нужно собрать или выяснить
  • Стиль общения: тон, язык, формат вопросов
  • Дополнительные правила: порядок вопросов, как реагировать на нестандартные ответы

Пример промпта:

Ты помощник по записи на приём. Вежливо собери у пользователя:
— имя
— номер телефона
— удобное время (утро/день/вечер)

Задавай по одному вопросу за раз. Если пользователь даёт неполный ответ — уточни.
Не начинай запись, пока не получишь все три ответа.

В промпте доступны переменные бота: {{user.first_name}}, {{переменная}} и т.д.


Инструменты ИИ

Инструменты позволяют ИИ вызывать команды бота прямо во время диалога: запрашивать данные из API, проверять наличие товара, рассчитывать стоимость, создавать заявку или запускать готовую цепочку сообщений.

Принцип работы

  1. ИИ решает, что ему нужна информация или действие.
  2. Отправляет пользователю короткое сообщение (например, «Ищу данные, подождите...»).
  3. Вызывает указанную команду, передавая ей параметры через переменные {{tool_input.*}}.
  4. Команда выполняется выбранным способом: возвращает переменную в ИИ или полностью выполняет все свои действия и сообщения.
  5. ИИ получает результат выполнения и продолжает диалог.

За один ход диалога ИИ может вызвать до 3 инструментов подряд.

Настройка инструмента

Нажмите Инструменты ИИ в блоке ИИ-диалога, затем Добавить инструмент. Можно выбрать существующую команду или создать новую прямо из окна настройки.

Поле Описание
Название Уникальный идентификатор в snake_case, например get_weather
Описание для ИИ Объясняет ИИ, что делает инструмент и когда его вызывать
Режим выполнения Определяет, нужно вернуть результат команды в ИИ или выполнить команду целиком
Команда Нода-команда, которую выполняет инструмент
Переменная результата Переменная, из которой читается ответ команды. Показывается только в режиме «Вернуть результат в ИИ»
Параметры Данные, которые ИИ передаёт в команду

Имя search_knowledge_base зарезервировано для встроенного поиска по базе знаний и недоступно для пользовательских инструментов.

Режимы выполнения

Вернуть результат в ИИ — команда выполняет API-запросы, интеграции, работу с переменными или базой данных. Затем значение из поля Переменная результата возвращается ИИ, и он формирует ответ пользователю. Этот режим подходит для поиска, проверки данных и расчётов.

Выполнить команду целиком — запускается вся команда, включая её сообщения и другие действия. Команда сама показывает результат пользователю, а ИИ после выполнения продолжает диалог. Переменная результата в этом режиме не нужна. Используйте его, например, для отправки карточки товара, готовой инструкции или цепочки сообщений.

Параметры инструмента

Параметры — это значения, которые ИИ подставляет в переменные {{tool_input.имя}} внутри блоков связанной команды.

Как настроить:

  1. Откройте связанную команду и вставьте {{tool_input.имя_параметра}} в нужные поля — URL, тело запроса, текст и т. д.:
    https://api.example.com/weather?city={{tool_input.city}}&units={{tool_input.units}}
    
  2. Вернитесь в редактор инструмента и выберите эту команду. Параметры city и units появятся автоматически.
  3. Укажите описание каждого параметра, чтобы ИИ понимал, какое значение передать.
  4. Выберите тип (string, number или boolean) и отметьте обязательные параметры.

Если вы изменили команду после выбора, нажмите Пересканировать рядом с полем «Команда». Параметры также можно добавлять и удалять вручную.

Переменная результата

В режиме Вернуть результат в ИИ команда должна записать нужное значение в указанную переменную. Например, если API-запрос сохраняет ответ в api_response, укажите api_response в поле «Переменная результата».

Отличие от «Префикса результата» блока диалога: переменная результата инструмента — временный ответ одной команды, который ИИ использует в текущем разговоре. Префикс результата блока содержит итоговые данные всего диалога для следующих нод сценария.

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

Команда search_catalog:

  • API-запрос: GET https://mystore.com/api/search?q={{tool_input.query}}&limit={{tool_input.limit}}
  • Ответ сохраняется в переменную search_result

Инструмент в ИИ-диалоге:

  • Название: search_catalog
  • Описание: «Поиск товаров в каталоге по запросу пользователя»
  • Режим: «Вернуть результат в ИИ»
  • Команда: search_catalog
  • Переменная результата: search_result
  • Параметры: query (string, обязательный) и limit (number)

В системном промпте можно написать: «Используй инструмент search_catalog, когда пользователь ищет товар».


База знаний

База знаний — это документы и текстовые записи с информацией о вашей компании, товарах, услугах и правилах работы. Когда она подключена, ИИ может найти нужный фрагмент и использовать его для ответа пользователю.

Как подключить

  1. Откройте Настройки бота → База знаний. Также можно нажать ссылку базу знаний бота под кнопкой «Инструменты ИИ» — страница откроется в новой вкладке.
  2. Загрузите документы или добавьте текстовые записи.
  3. Дождитесь статуса Готово хотя бы у одного документа.
  4. При необходимости откройте вкладку Тест и проверьте, какие фрагменты находятся по вашему вопросу.
  5. Вернитесь в нужный блок ИИ-диалога и включите Подключить базу знаний бота.
  6. Сохраните изменения сценария.

Сначала данные добавляются в настройках конкретного бота, и только затем база активируется в нужном блоке ИИ-диалога. Переключатель действует только на этот блок. Если в сценарии несколько ИИ-диалогов, подключите базу в каждом из них отдельно.

Переключатель недоступен, если база знаний не входит в тариф или в ней ещё нет ни одного готового документа. Документы со статусами «В очереди», «Обработка» или «Ошибка» не учитываются.

Как ИИ использует базу

  • ИИ сам решает, когда выполнить поиск по вопросу пользователя.
  • Поиск выполняется только по базе выбранного бота.
  • Найденные фрагменты передаются ИИ вместе с названием источника, после чего он формирует ответ.
  • Создавать отдельную команду для поиска не нужно: встроенный инструмент подключается автоматически.
  • Документы добавляются, тестируются и удаляются только в разделе Настройки бота → База знаний.

В системном промпте можно уточнить правила ответа, например:

Для вопросов о компании, ценах и услугах используй базу знаний.
Если в материалах нет ответа, честно сообщи об этом и не придумывай факты.

Связи на канвасе

  • Фиолетовое ребро → нода после завершения диалога
  • Серые пунктирные рёбра 🛠️ → команды, вызываемые инструментами ИИ

Советы

  • Один блок = одна задача. Не пытайтесь собрать в одном диалоге слишком много разных данных.
  • Описывайте параметры точно. От описания зависит, насколько правильно ИИ заполнит значение.
  • Тестируйте инструменты отдельно. Убедитесь, что команда-инструмент корректно работает с тестовыми данными до подключения к ИИ.
  • Проверяйте базу знаний через вкладку «Тест». Так можно заранее увидеть найденный текст и его источник.
  • Ограничение в 3 вызова. За один ход ИИ может вызвать не более 3 инструментов подряд — чтобы избежать зацикливания.
  • Стриминг несовместим с кнопками и опросами. Если разрешены inline/reply-кнопки или опросы — стриминговый режим отключается автоматически.