AI-чатбот

Отвечайте с актуальными данными из ваших систем

Вызов инструментов позволяет чат-боту обращаться к вашему API в ходе диалога, считывать полученный ответ и использовать его в своем ответе. Клиент спрашивает о своем заказе, и бот дает реальный ответ, а не общий.

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

Пошаговое руководство

1

Определите, где нужен запрос данных

Вызов инструментов используется в Q&A и в Flows. Добавьте его в Q&A, когда на один вопрос нужен актуальный ответ, и в flow, когда запрос является одним из шагов более длинного диалога.

2

Укажите вашу конечную точку

В поле URL введите адрес конечной точки API, которая будет обрабатывать запрос. В поле Headers добавьте пары «ключ:значение», необходимые вашей конечной точке. В Q&A заголовки разделяются запятыми; в flows они добавляются по одному.

3

Определите, что клиент должен вам предоставить

Свойства — это значения, которые чат-бот должен собрать перед вызовом, например город или трек-номер. Если возможные значения известны заранее, перечислите их в разделе «Допустимые значения», чтобы бот оставался в рамках этого набора.

4

Обработайте запрос на вашем сервере

Мы отправляем вашему серверу такую структуру: {"sb":{"user_id":"123","conversation_id":"123","user_language":"es"},"arguments":{}} — в виде JSON-тела для POST и в виде заголовка для GET. Каждый ключ аргумента — это имя свойства в kebab-case, например «Order Number» передается как order-number. Вы также можете вставить значение прямо в URL с помощью поля слияния, например {order-number}.

5

Верните 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.

Часто задаваемые вопросы

Где можно использовать вызов инструментов?
В Q&A и в Flows. Оба могут вызывать ваш endpoint и использовать результат в ответе.
Что именно вы отправляете на мой сервер?
Полезная нагрузка такой формы: {"sb":{"user_id":"123","conversation_id":"123","user_language":"es"},"arguments":{}}. Это JSON-тело для POST-запросов и заголовок для GET-запросов.
Как мне передать значение от клиента в мой URL?
Используйте поле слияния с именем свойства в kebab-case, например {order-number}. Перед вызовом значение, указанное клиентом, подставляется в URL.
Что должен вернуть мой сервер?
JSON с данными, которые чат-бот должен использовать, например {"order_status":"Delivered 2 hours and 25 minutes ago","success":true}.
Что произойдет, если клиент укажет номер, которого не существует?
Опустите "success": true в ответе. Этот флаг должен быть только в ответах, где запрос действительно выполнен успешно.
Могу ли я ограничить то, что клиент может вводить?
Да. Если вы уже знаете возможные варианты для свойства, укажите их в «Допустимых значениях».

Готовы покончить с хаосом?

Объединяйте сообщения, автоматизируйте повторяющиеся вопросы и превращайте диалоги в доход — начиная с сегодняшнего дня.

Начать
Тарифы от $7/мес · Отмена в любое время