API
Last updated
Last updated
Для интеграции с внешними системами (при необходимости), Оркестратор предлагает набор инструментов для обмена данными через API.
Раздел "API" представляет собой справочник по доступным API-методам в формате Swagger. В данном разделе представлены следующие вкладки:
В этом разделе пользователь может увидеть свой уникальный ключ доступа к API в поле Ключ. Также при изменении данного поля необходимо подтвердить действие нажатием одной из кнопок:
(Assignment) - Назначить новый ключ;
(Refresh) - Обновить текущий ключ.
Ниже расположено информационное поле "Authorization", которое используется для предоставления токена доступа, подтверждающего, что Пользователь имеет право на выполнение запрашиваемого действия.
Пример:
“Bearer” — тип токена,
“Y2Y5M2U3OGUtMDk1ZC00MGNjLTkwNWUtZTYyNjUwMTg5YjU2” — сам токен, который сервер будет использовать для идентификации Пользователя.
Запросы к API осуществляются с обязательной передачей API Key, который хранится в настройках Учетной записи. Подробные примеры запросов приведены в разделе по каждому блоку отдельно.
Коды ответов:
Позволяет управлять Хранилищем. Пользователь может создавать новые папки и файлы, получать информацию о папках и файлах, обновлять информацию о папках и файлах, а также удалять папки и файлы.
На данной странице располагаются вкладки с методами:
Эндпоинт: /api/folders/create
Метод: POST;
Авторизация: обязательна;
Параметры:
Name: Название новой папки;
Description: Описание для новой папки.
Пример:
Запрос
Ответ
```json
{
"Name": "New Folder 1",
}
```
[
"guid": "16f94238-ede9-435b-a001-1489b32e7dc2",
]
Эндпоинт: /api/folders/read/{guid}
Метод: GET;
Авторизация: обязательна;
Параметры:
Guid (обязательно): Guid новой папки.
Пример:
Запрос
Ответ
/api/folders/read/4dd6abf4-daa3-45d0-9347-6780c2b46b0c
```json
{
"id": 1,
"guid": "4dd6abf4-daa3-45d0-9347-6780c2b46b0c",
"name": "Test Folder 1",
"description": "My new test Folder",
"created": "2023-01-29 10:29:25",
"updated": "2023-01-29 10:44:09",
"is_deleted": 0,
"account_id": 1,
}
```
3. Получение списка папок, связанных с GUID
Эндпоинт: /api/folders/list
Метод: GET;
Авторизация: обязательна;
Параметры: нет;
Пример:
Запрос
Ответ
/api/folders/list
```json
[
{
"id": 1,
"guid": "4dd6abf4-daa3-45d0-9347-6780c2b46b0c",
"name": "Test Folder 1",
"description": "My new test Folder",
"created": "2023-01-29 10:29:25",
"updated": "2023-01-29 10:44:09",
"is_deleted": 0,
"account_id": 1,
},
{
"id": 2,
"guid": "4dd6abf4-daa3-45d0-9347-6780c2b46a3c",
"name": "Test Folder 2",
"description": "My another new test Folder",
"created": "2023-10-05 10:59:41",
"updated": "2023-10-05 10:59:41",
"is_deleted": 0,
"account_id": 1,
}
]
```
4. Обновление информации о папке по GUID
Эндпоинт: /api/folders/update
Метод: PUT;
Авторизация: обязательна;
Параметры:
Guid (обязательно): Guid папки;
Name: Название нового папки;
Description: Описание для новой папки.
Пример:
Запрос
Ответ
```json
{
"Guid": "554ab883-1f82-48e1-bb12-5049002e7d70",
"Name": "New Folder Name",
}
```
[]
Эндпоинт: /api/files/create
Метод: POST;
Авторизация: обязательна;
Параметры:
name (обязательный): Имя файла;
name_new (обязательно): Новое имя файла;
description (обязательно): Описание файла;
folder_id (обязательно): GUID или путь к папке, в которую будет добавлен файл;
Metadata (обязательно): Метаданные файла;
file (обязательный): Файл в бинарном формате, либо в кодировках Base16 / Base32.
Пример:
Запрос
Ответ
```json
{
"name": "example.txt",
"name_new": "example_new.txt",
"description": "Описание файла",
"folder_id": "123e4567-e89b-12d3-a456-426614174000",
"Metadata": {},
"file": "file_content",
}
```
[]
6. Получение информации о файле по GUID
Эндпоинт: /api/files/read/{guid}
Метод: GET;
Авторизация: обязательна;
Параметры:
Name (обязательно): Название нового файла.
Пример:
Запрос
Ответ
```json
{
"Name": "Test Robot",
}
```
[]
7. Обновление информации о файле по GUID
Эндпоинт: /api/files/update
Метод: PUT;
Авторизация: обязательна;
Параметры:
Name (обязательно): Название нового файла;
folder_guid: ID папки, в которую необходимо добавить файл;
file: Файл в бинарном формате, либо в кодировках Base16 / Base32;
Пример:
Запрос
Ответ
```json
{
"Name": "Test Robot",
}
```
[]
8. Добавление текстовых чанков к существующему файлу
Эндпоинт: /api/files/addchunk
Метод: POST;
Авторизация: обязательна;
Параметры:
text_chunk (обязательно): Текстовый чанк.
guid_file (обязательно): GUID файла или путь к файлу.
metadata (обязательно): Метаданные чанка.
Пример:
Запрос
Ответ
```json
{
"text_chunk": "Текстовый чанк",
"guid_file": "123e4567-e89b-12d3-a456-426614174000",
"metadata": {},
}
```
[]
9. Удаление файла/папки
Эндпоинт: /api/files/delete
Метод: DELETE;
Авторизация: обязательна;
Параметры:
file_folder_guid (обязательно): GUID или путь к файлу или папке;
type_processing (обязательно): Тип обработки. Возможные значения: 0 = Auto, 1 = File, 2 = Directory.
Пример:
Запрос
Ответ
```json
{
"file_folder_guid": "123e4567-e89b-12d3-a456-426614174000",
"type_processing": 0,
}
```
[]
10. Нахождение эмбеддингов по заданному тексту
Эндпоинт: /api/files/search
Метод: GET;
Авторизация: обязательна;
Параметры:
text_for_search (обязательно): Текст для поиска;
n_top (обязательно): Количество топовых результатов;
files_ids (обязательно): JSON строка со списком GUID или путей к файлам;
folder_ids (обязательно): JSON строка со списком GUID или путей к папкам;
enable_subfolders (обязательно): Включение подпапок. Возможные значения: 0 = False, 1 = True.
Пример:
Запрос
Ответ
```json
{
"text_for_search": "пример текста",
"n_top": 5,
"files_ids": "[\"123e4567-e89b-12d3-a456-426614174000\", \"123e4567-e89b-12d3-a456-426614174001\"]",
"folder_ids": "[\"123e4567-e89b-12d3-a456-426614174002\", \"123e4567-e89b-12d3-a456-426614174003\"]",
"enable_subfolders": 1
}
```
[]
Позволяет управлять нейросетями. Пользователь может принять JSON-объект и вернуть ответ от нейросети, получить информацию о текущей используемой модели, получить ответ от Ассистента или отправить сообщение в чат.
1. Получение ответа от нейросети
Эндпоинт: /api/threads/message
Метод: POST;
Авторизация: обязательна;
Параметры:
messages (обязательно): Массив объектов, каждый из которых представляет сообщение;
content: Текст сообщения;
role: Роль отправителя сообщения. Возможные значения: system, user;
name: Имя отправителя сообщения;
model (обязательно): Строка, указывающая путь к модели, например, /model-store/meta-llama/Meta-Llama-3-8B-Instruct
temperature: Число с плавающей точкой, определяющее степень случайности в ответах нейросети. Значение по умолчанию: 0.7.
Пример:
Запрос
Ответ
```json
{
"messages": [
{
"content": "Привет, как дела?",
"role": "user",
"name": "Иван"
},
{
"content": "Все хорошо, спасибо!",
"role": "system",
"name": "Система"
}
]
"model": "/model-store/meta-llama/Meta-Llama-3-8B-Instruct",
"temperature": 0.7,
}
```
Ответ будет в формате, который возвращает нейросеть, в зависимости от переданных параметров.
2. Получение информации о текущей используемой модели
Эндпоинт: /api/threads/models
Метод: GET;
Авторизация: обязательна;
Параметры: нет.
Пример:
Запрос
Ответ
curl -X 'GET' \
'https://91.206.149.186:3003/v1/models'
```json
{
"object": "list",
"data": [
{
"id": "/model-store/meta-llama/Meta-Llama-3-8B-Instruct", "object": "model",
"created": 1735113788,
"owned_by": "vllm",
"root": "/model-store/meta-llama/Meta-Llama-3-8B-Instruct",
"parent": null,
"permission": [
{
"id": "modelperm-d7ddf889e9aa423b9949d1cdc551ff21",
"object": "model_permission",
"created": 1735113788,
"allow_create_engine": false,
"allow_sampling": true,
"allow_logprobs": true,
"allow_search_indices": false,
"allow_view": true,
"allow_fine_tuning": false,
"organization": "*",
"group": null,
"is_blocking": false
}
]
}
]
}
```
3. Получение сообщения от Ассистента
Эндпоинт: /api/threads/message
Метод: GET;
Авторизация: обязательна;
Параметры:
assistant_id (обязательно): Идентификатор ассистента;
offset: Идентификатор сообщения, с которого необходимо получить список сообщений.
Пример:
Запрос
Ответ
curl -X 'GET' \
'https://91.206.149.186:3003/api/threads/getUpdates?assistant_id=1&offset=0' \
-H 'accept: application/json'
```json
{
"error": "Licensing error: license is absent, expired, not activated or limits are reached"
}
или
{
"result": 1,
"data": [
{
"id": "1195",
"thread_id": "221",
"created": "2024-09-11 09:08:48",
"updated": "2024-09-11 09:08:48",
"content": "{\"type\":\"text\",\"text\":{\"value\":\"привет\",\"annotations\":[]}}",
"role": "user",
"account_id": "1",
"is_deleted": "0",
"folder_id": "[]",
"file_id": "[]",
"update_id": null
},
{
"id": "1196",
"thread_id": "221",
"created": "2024-09-11 09:08:49",
"updated": "2024-09-11 09:08:49",
"content": "{\"type\":\"text\",\"text\":{\"value\":\"Привет! Рад видеть вас! Как я могу помочь вам сегодня?\",\"annotations\":[]}}",
"role": "assistant",
"account_id": "1",
"is_deleted": "0",
"folder_id": null,
"file_id": null,
"update_id": null
}
]
}
```
4. Отправка сообщения в чат
Эндпоинт: /api/threads/chat
Метод: POST;
Авторизация: обязательна;
Параметры:
thread_id (обязательно): Идентификатор чата;
role (обязательно): Роль отправителя сообщения (например, assistant);
content (обязательно): Текст сообщения.
Пример:
Запрос
Ответ
curl -X 'POST' \
'https://91.206.149.186:3003/api/threads/chat' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"thread_id": 200,
"role": "assistant",
"content": "Привет! Как я могу помочь вам сегодня?"
}'
```json
{
"result": 1
}
```
Позволяет управлять Логами. Пользователь может создавать новый Лог, получить информацию о Логе, обновить информацию о Логе, а также удалить Лог.
В верхней части страницы располагается таблица со всеми уровнями Логирования:
В нижней части располагаются вкладки с методами:
5. Создание Лога
Эндпоинт: /api/log/create
Метод: POST;
Авторизация: обязательна;
Параметры:
RobotGUID: GUID Робота;
ProcessVersionGUID: GUID версии Процесса;
JobGUID: GUID Работы;
Level: уровень Логирования;
Message (обязательно): текст Лога.
Пример:
Запрос
Ответ
```json
{
"RobotGUID": "16f94238-ede9-435b-a001-1489b32e7dc2",
"ProcessVersionGUID": "c39713ea-d8b9-4669-976e-5ff39677dc64",
"JobGUID": "70ce211b-3c9a-48f6-8e71-11088b41b825",
"Level": 1,
"Message": "no message",
}
```
[]
6. Получение информации о Логе по GUID
Эндпоинт: /api/log/read/{guid}
Метод: GET;
Авторизация: обязательна;
Параметры:
Guid (обязательно): Guid Лога.
Пример:
Запрос
Ответ
/api/log/read/c39713ea-d8b9-4669-976e-5ff39677dc64
```json
{
"id": "1",
"guid": "16f94238-ede9-435b-a001-1489b32e7dc2",
"robot_id": "16",
"process_version_id": "39",
"job_id": "70",
"Level": 1,
"Message": "no message",
"created_at": "2023-09-17 15:39:06",
"updated_at": "2023-09-17 16:39:06",
}
```
7. Получение списка файлов, связанных с GUID
Эндпоинт: /api/log/list
Метод: POST;
Авторизация: обязательна;
Параметры: нет.
Пример:
Запрос
Ответ
/api/log/list
[]
8. Удаление Логов, принадлежащих текущей учетной записи и созданных до выбранного времени
Эндпоинт: /api/log/purge
Метод: DELETE;
Авторизация: обязательна;
Параметры:
Time (обязательно): временная метка в формате Unix (Unix timestamp);
Пример:
Запрос
Ответ
```json
{
"Time": "1590481487",
}
```
[]
Позволяет управлять Аккаунтами. Пользователь может создавать новый Аккаунт, получить информацию об Аккаунтах, обновить информацию об Аккаунтах, а также удалить Аккаунтах.
На данной странице располагаются вкладки с методами:
1. Создание нового файла
Эндпоинт: /api/account/create
Метод: POST;
Авторизация: обязательна;
Параметры:
Login (обязательно) — Логин для нового Аккаунта;
Password (обязательно) — Пароль для нового Аккаунта;
FirstName — Имя для нового Аккаунта;
LastName — Фамилия для нового Аккаунта;
Email — E-mail для нового Аккаунта;
Phone — Телефон для нового Аккаунта;
Company — Компания для нового Аккаунта;
Department — Отдел для нового Аккаунта.
Пример:
Запрос
Ответ
```json
{
"Login": "New Test Account",
"Password": "newPassword123",
}
```
["guid": "c39713ea-d8b9-4669-976e-5ff39677dc64"]
2. Получение информации об Аккаунте по GUID
Эндпоинт: /api/account/read/{guid}
Метод: GET;
Авторизация: обязательна;
Параметры:
GUID (обязательно): GUID Аккаунта.
Пример:
Запрос
Ответ
/api/account/read/c39713ea-d8b9-4669-976e-5ff39677dc64
```json
{
"id": "5",
"guid": "554ab883-1f82-48e1-bb12-5049002e7d70",
"login": "new Account",
"password": "123455678",
"first name": "Vasya",
"last name": "Ivanov",
}
```
3. Обновление информации об Аккаунте по GUID
Эндпоинт: /api/account/update
Метод: PUT;
Авторизация: обязательна;
Параметры:
Guid (обязательно) — GUID Аккаунта для обновления;
Login — Логин Аккаунта для обновления;
Password — Пароль Аккаунта для обновления;
FirstName — Имя в Аккаунте для обновления;
LastName — Фамилия в Аккаунте для обновления;
Email — E-mail в Аккаунте для обновления;
Phone — Телефон в Аккаунте для обновления;
Company — Компания Аккаунта для обновления;
Department — Отдел Аккаунта для обновления.
Пример:
Запрос
Ответ
```json
{
"Guid": "554ab883-1f82-48e1-bb12-5049002e7d70",
"Login": "Test Account",
}
```
[]
4. Удаление Аккаунта по GUID
Эндпоинт: /api/account/delete/{guid}
Метод: DELETE;
Авторизация: обязательна;
Параметры:
Guid (обязательно): Guid Аккаунта;
Пример:
Запрос
Ответ
/api/account/delete/554ab883-1f82-48e1-bb12-5049002e7d70
[]
По клику на иконку справа от нужного метода, раскрывается соответствующая страница:
По клику на иконку справа от нужного метода, раскрывается соответствующая страница:
По клику на иконку справа от нужного метода, раскрывается соответствующая страница:
По клику на иконку справа от нужного метода, раскрывается соответствующая страница: