Отвечайте с актуальными данными из ваших систем
Вызов инструментов позволяет чат-боту обращаться к вашему API в ходе диалога, считывать полученный ответ и использовать его в своем ответе. Клиент спрашивает о своем заказе, и бот дает реальный ответ, а не общий.
Обучение учит чат-бота тому, что остается неизменным. Вызов инструментов охватывает то, что меняется ежеминутно: статус заказа, трек-номер, бронирование. Это продвинутая функция, требующая пользовательского кода на вашем сервере, поэтому планируйте ее с тем, кто отвечает за ваши системы.
Пошаговое руководство
Определите, где нужен запрос данных
Вызов инструментов используется в Q&A и в Flows. Добавьте его в Q&A, когда на один вопрос нужен актуальный ответ, и в flow, когда запрос является одним из шагов более длинного диалога.
Укажите вашу конечную точку
В поле URL введите адрес конечной точки API, которая будет обрабатывать запрос. В поле Headers добавьте пары «ключ:значение», необходимые вашей конечной точке. В Q&A заголовки разделяются запятыми; в flows они добавляются по одному.
Определите, что клиент должен вам предоставить
Свойства — это значения, которые чат-бот должен собрать перед вызовом, например город или трек-номер. Если возможные значения известны заранее, перечислите их в разделе «Допустимые значения», чтобы бот оставался в рамках этого набора.
Обработайте запрос на вашем сервере
Мы отправляем вашему серверу такую структуру: {"sb":{"user_id":"123","conversation_id":"123","user_language":"es"},"arguments":{}} — в виде JSON-тела для POST и в виде заголовка для GET. Каждый ключ аргумента — это имя свойства в kebab-case, например «Order Number» передается как order-number. Вы также можете вставить значение прямо в URL с помощью поля слияния, например {order-number}.
Верните JSON, который сможет использовать чат-бот
Ваш сервер должен отвечать JSON с данными, которые бот озвучит, например {"order_status":"Доставлено 2 часа 25 минут назад","success":true}. Включайте "success": true только в случае, если запрос действительно выполнен успешно.
Справочник по настройкам
| Настройка | Что это делает |
|---|---|
| URL | Адрес вашего API-эндпоинта, который вызывает чат-бот. |
| Заголовки | Пары «ключ:значение», отправляемые с запросом: в режиме «Вопросы и ответы» они указываются через запятую, а в сценариях добавляются по одному. |
| Свойства | Значения, которые пользователь должен предоставить перед выполнением вызова, например город или номер отслеживания. |
| Допустимые значения | Ограничивает свойство заданным набором вариантов вместо свободного ввода текста. |
Полезно знать
«success: true» — это обещание, а не формальность
Возвращайте его только в случае реального успеха запроса. Если номер заказа недействителен или ничего не найдено, не включайте его, чтобы чат-бот не выдавал ошибку за ответ.
Имена аргументов меняют форму
Имена свойств преобразуются в kebab-case: например, «Номер заказа» становится order-number. Используйте такое же написание в своём коде и в любых полях слияния, которые вы указываете в URL.
GET и POST передают данные по-разному
При POST полезная нагрузка приходит в виде JSON-тела. При GET — в виде заголовка. Уточните, какой метод использует ваш эндпоинт, прежде чем обрабатывать запрос.
С каждым вызовом вы получаете контекст
Запрос включает user_id, conversation_id и user_language, чтобы ваш endpoint знал, кто спрашивает и на каком языке.
Этот требует участия разработчика
Вызов инструментов — это продвинутая функция. Со стороны панели всё просто, но на вашем сервере должен быть код, который принимает запрос и возвращает JSON.
Часто задаваемые вопросы
Где можно использовать вызов инструментов?
Что именно вы отправляете на мой сервер?
Как мне передать значение от клиента в мой URL?
Что должен вернуть мой сервер?
Что произойдет, если клиент укажет номер, которого не существует?
Могу ли я ограничить то, что клиент может вводить?
Готовы покончить с хаосом?
Объединяйте сообщения, автоматизируйте повторяющиеся вопросы и превращайте диалоги в доход — начиная с сегодняшнего дня.
Начать