ИИ-диалог

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


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

  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)
Описание для ИИ Объясняет ИИ, что делает инструмент и когда его вызывать
Команда Нода-команда, которую выполняет инструмент
Переменная результата Переменная, из которой читается ответ команды (например, api_response)
Параметры Данные, которые ИИ передаёт в команду

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

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

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

  1. Откройте связанную команду и вставьте {{tool_input.имя_параметра}} в нужные поля (URL, тело запроса, текст, и т.д.):
    https://api.example.com/weather?city={{tool_input.city}}&units={{tool_input.units}}
    
  2. Вернитесь в редактор инструмента, выберите эту команду — параметры city и units появятся автоматически.
  3. Укажите описание каждого параметра — ИИ использует его, чтобы понять, какое значение передать:
    • city → «Город, для которого запрашивается погода»
    • units → «Единицы измерения: celsius или fahrenheit»
  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, когда пользователь что-то ищет.

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

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

Советы

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