diff --git a/pages/mlcmp.md b/pages/mlcmp.md index 6a9d3df..7d2be4a 100644 --- a/pages/mlcmp.md +++ b/pages/mlcmp.md @@ -196,6 +196,28 @@ def example_inference_func(parameters: list, Тип объекта `model` может быть любым, то есть это может быть и набор моделей, если это соответствует логике вычислений. +#### Передача данных + +Для передачи данных на вход функции inference и возвращения результатов вычислений пользователю есть два основных метода: + +1. Передача данных напрямую, как объектов Python. +2. Передача данных через файл. + +При объектной передаче поле `datatype` для соответствующей переменной устанавливается в одно из значений `"FP32", "FP64", "INT32", "str", "dict"`. В таком случае данные передаются напрямую в функцию inference в поле `data` одного из элементов списка `inputs`. Аналогично, для выходных данных (список `outputs` в примере ниже) ожидается, что данные будут переданы напрямую в поле `data`. + +- Типы `FP32`, `FP64`, `INT32` означают, что сами данные переданы одномерным списком соответствующего типа. Если для вычислений важна размерность данных, она должна быть передана отдельно в параметре `shape`. + - Например, если указать `"data": [1, 2, 3, 4], "shape", [2, 2]`, это будет означать, что данные должны быть обработаны как массив 2x2, а не вектор из 4 элементов. За обработку данных отвечает код модуля, вызываемый из функции inference, автоматического преобразования размерности при обработке запросов не происходит. +- Тип `str` означает, что данные передаются в виде одной строки. +- Тип `dict` означает произвольный словарь, аналогичный объекту JSON. + - Например, `{"x": 10, "y": [1, 2]}`, но не `{"x": numpy.array([1,2])}` + + +При передаче данных через файл сами данные сохраняются в файл, а в поле `data` указывается путь к этому файлу. К контейнеру, в котором исполняется код модуля и функции inference, монтируется раздел файлового хранилища фреймворка. Входные файлы, переданные пользователем при вызове сервиса, сохраняются в этот раздел и становятся доступны внутри контейнера сервиса. + +Если поле `datatype` установлено в значение `FILE`, то считывания входных данных необходимо считать содержимое файла, путь к которому передан в поле `data`. Поле `content_type` в таком случае позволяет уточнить тип переданного файла. + +Чтобы вывести результат работы функции inference пользователю в виде файла, можно записать его в произвольное место в локальной файловой системе контейнера и указать путь к этому файлу в поле `data` элемента списка выходных данных. Во входной переменной `output_fields` среди информации об ожидаемых выходных данных в поле `data` передаётся путь во временной папке. Вместо произвольного места для сохранения файла можно использовать этот переданный путь + #### Пример функции ```python