Доступ к модулю по API контролируется с помощью компонентов APIComponent. Есть несколько типов таких компонентов, каждый из которых отвечает за свой набор функционала.
Здесь `box-name` - это имя компонента DataBox, к которому обращается запрос.
Файловый API позволяет загружать файлы в файловое хранилище и получать уже загруженные файлы. Загрузка папок со всем содержимым не предусмотрена, в таких случаях предполагается автоматизация запросов на загрузку отдельных файлов.
1. Если путь состоит из одного сегмента, это файловая группа. `.../files/box-name/data` - путь к файловой группе `data`.
2. Если путь состоит из нескольких сегментов, и заканчивается на `/`, это путь к файловой группе. `.../files/box-name/data/images/` - путь к файловой группе `data/images`.
3. Если путь состоит более, чем из одного сегмента, и заканчивается не на `/`, это путь к файлоу. `.../files/box-name/data/images/example.png` - путь к файлу `example.png`, расположенному в файловой группе `data/images`
Названия файлов не влияют на то, указывает ссылка на файл или на файловую группу. Например, `.../files/box-name/example.png` - это путь к файловой группе, а не файлу.
Тело запроса на выполнения расчёта - это объект с полями, которые в точности копируют поля из функции inference в [MLComponent](mlcmp.md#функция-inference).
*`inputs` - список входных данных, где каждый элемент - это словарь. Ключи словаря:
*`name` - название, произвольная строка, используется в коде модуля. Например, `"image"`.
*`datatype` - тип входных данных, одна из строк `"FP32", "FP64", "INT32", "FILE", "str", "dict"`.
*`content_type` - тип содержимого файла, если тип входной переменной `datatype` - это `"FILE"`. Обычно предполагается MIME-type. Например, `application/json`, `text/csv`. Для специализированных данных тип может быть любым - `bed`, `docx` и так далее.
*`data` - строка с путём к входному файлу или одномерный список входных данных соответствующего типа.
*`shape` - размерность входной переменной как массива, применимо даже к файлам.
*`output_fields` - список выходных данных, где каждый элемент - это словарь. Ключи словаря:
*`data` - строка с путём к выходному файлу. Если передаётся `data`, результат будет записан в переданный файл. Иначе - записан во временный файл и возвращён в ответ на запрос.
*`model_parameters` - список пар `[name, value]`, произвольных параметров примитивных типов. Передаются в качестве переменной `parameters` в расчётную функцию.
Тело запроса на выполнения расчёта - это объект с полями, похожими на поля запроса к MLComponent.
*`inputs` - список входных данных, где каждый элемент - это словарь. Ключи словаря:
*`name` - название, произвольная строка, используется в коде модуля. Например, `"image"`.
*`datatype` - тип входных данных, одна из строк `"FP32", "FP64", "INT32", "FILE", "str", "dict"`. Должен соответствовать одному из `datatypes`, определённых в API пайплайна.
*`content_type` - тип содержимого файла, если тип входной переменной `datatype` - это `"FILE"`. Обычно предполагается MIME-type. Например, `application/json`, `text/csv`. Для специализированных данных тип может быть любым - `bed`, `docx` и так далее.
*`data` - строка с путём к входному файлу или одномерный список входных данных соответствующего типа.
*`shape` - размерность входной переменной как массива, применимо даже к файлам.
*`output_fields` - список выходных данных, где каждый элемент - это словарь. Ключи словаря:
*
*`data` - строка с путём к выходному файлу. Если передаётся `data`, результат будет записан в переданный файл. Иначе - записан во временный файл и возвращён в ответ на запрос.
*`model_parameters` - список пар `[name, value]`, произвольных параметров примитивных типов. Передаются в качестве переменной `parameters` в расчётную функцию.