Пользовательские функции
Расширьте возможности агента — позвольте ему обращаться к внешним сервисам.
Агент может вызывать пользовательские функции с помощью HTTP-запросов. Например, агент может уточнить у пользователя номер заказа, вызвать http-метод
https://endpoint/api/get_order=1
и предоставить пользователю информацию о его заказе.
Агент поддерживает GET и POST запросы. Для POST запросов тело запроса должно быть application/json
. Поддерживается передача заголовков, в том числе и Authorization
.
На странице Агенты -> Ответ нажмите Добавить функцию
, откроется окно для создания функции.
Основная структура JSON-описания
На вкладке Описание необходимо добавить JSON, который должен следовать строгому формату.
name
(строка)
Описание: Уникальное имя функции, отражающее её цель.
Пример:
description
(строка)
Описание: Краткое описание назначения функции.
Пример:
parameters
(объект)
Описание: Определяет входные параметры, которые принимает функция.
Состав:
- type (объект): Указывает, что параметры являются объектом.
- properties (объект): Описывает все ожидаемые свойства (поля).
- required (массив): Указывает обязательные для передачи поля.
Пример:
Типы данных
string
Описание: Простой текст.
Поля:
- description (строка): Объясняет, что представляет собой строка.
- pattern (строка): Регулярное выражение для проверки формата.
Пример:
number
Описание: Числовое значение, может быть как целым, так и дробным.
Поля:
- description (строка): Объясняет, что означает число.
Пример:
object
Описание: Сложная структура, содержащая взаимосвязанные поля.
Поля:
- properties (объект): Описывает составные части объекта.
- required (массив): Определяет обязательные поля внутри объекта.
Пример:
array
Описание: Коллекция данных, может содержать как простые, так и сложные типы.
Поля:
- items (объект): Описывает тип данных, содержащийся в массиве.
- description (строка): Объясняет, что представляет собой массив.
Пример:
Пример полной функции
Действие
На вкладке Действия настраивается вызов вебхука. Если вы верно указали описание функции, то автоматически появятся кнопки с доступными аргументами.
В примере по умолчанию это location
и unit
.
Данные кнопки позволяет вставить переменные, с которыми агент вызывает функцию, в шаблоны Вебхук URL и тела запроса.