Проверить функцию
POST /api/v1/bot-tools/test
URL
https://app.helpfy.ai/api/v1/bot-tools/test
Адрес своей установки подставьте вместо https://app.helpfy.ai. Идентификаторы в фигурных скобках замените значениями из ответов API.
Заголовки
| Заголовок | Значение |
|---|---|
Authorization | Basic <base64(email:api_key)> |
Accept | application/json |
Для JSON-тела передайте Content-Type: application/json.
Подробнее — авторизация API.
Параметры запроса
Тело запроса (application/json)
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
bot_unique_id | строка | Да | Идентификатор бота, которому принадлежит функция. |
name | строка | Да | Название функции, которое видит модель. |
description | строка | Да | Краткое описание, доступное модели и в интерфейсе. |
strict | логическое значение | Нет | Включена ли строгая проверка схемы аргументов. |
is_enabled | логическое значение | Нет | Включена ли функция. |
request_method | GET, POST, PUT, PATCH, DELETE | Да | HTTP-метод внешнего запроса функции. |
request_url | строка | Да | HTTPS-адрес внешнего сервиса с возможностью подстановки аргументов. |
input_schema_json | объект | Да | Схема JSON, по которой модель передаёт аргументы функции. |
request_body_template | строка | Нет | Шаблон JSON-тела внешнего запроса с подстановкой аргументов. |
response_path | строка | Нет | Путь к нужному полю ответа через точку, например data.status. |
timeout_ms | число | Нет | Время ожидания ответа внешнего сервиса в миллисекундах. |
max_response_bytes | число | Нет | Максимальный размер ответа внешнего сервиса в байтах. |
headers | массив: объект | Нет | Заголовки для запроса к внешнему сервису. |
test_arguments | объект | Да | Тестовые аргументы, которые проверяются по input_schema_json. |
tool_unique_id | строка | Нет | Идентификатор сохранённой функции. Пустые секретные заголовки будут взяты из неё, чтобы тест выполнялся с теми же реквизитами. |
Пример запроса
curl --request POST 'https://app.helpfy.ai/api/v1/bot-tools/test' \
--user 'user@example.com:api_key' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-binary @- <<'JSON'
{
"bot_unique_id": "804be633-6f3b-4d38-abf3-8b2709e141fb",
"name": "get_weather",
"description": "Возвращает погоду в указанном городе.",
"request_method": "POST",
"request_url": "https://api.example.com/weather?city={location}",
"input_schema_json": {
"type": "object",
"properties": {
"location": {
"type": "string"
}
},
"required": [
"location"
],
"additionalProperties": false
},
"test_arguments": {
"location": "Москва"
}
}
JSON
Ответы
| HTTP | Описание |
|---|---|
| 200 | Успешный ответ |
| 400 | Неверные настройки функции, недопустимый сервер, ошибка аргументов или сбой внешнего запроса. |
Пример ответа — HTTP 200
Сокращённый пример; показаны клиентские поля. Значения условные.
{
"data": {
"items": [
"Coffee",
"Tea"
]
},
"meta": {
"toolType": "http",
"renderedUrl": "https://api.example.com/orders/1001",
"requestMethod": "GET",
"durationMs": 143,
"statusCode": 200,
"contentType": "application/json"
}
}
Пример ошибки — HTTP 400
Пример структуры ошибки. Код и сообщение зависят от причины ошибки.
{
"statusCode": 400,
"error": "Bad Request",
"code": "BAD_REQUEST",
"message": "Bad Request"
}