Разница в требованиях к API модулей при доступе через API и каталог. #8

Open
opened 2025-03-17 10:19:18 +00:00 by gzhulikov · 5 comments
Owner

Каталог накладывает дополнительные ограничения на API модуля. Разработчик может сделать модуль "под доступ через API", но такой модуль не будет работать в каталоге.

Каталог накладывает дополнительные ограничения на API модуля. Разработчик может сделать модуль "под доступ через API", но такой модуль не будет работать в каталоге.
gzhulikov added the
documentation
question
labels 2025-03-17 10:19:18 +00:00

@gzhulikov нужно более подробно привести дополнительные ограничения, накладываемые на API модуля каталогом модулей.

Требования ли это к

  • API сервиса mlcmp
  • API пайплайна pipeline
  • API ящика databox
  • API набора данных datasrc?
@gzhulikov нужно более подробно привести дополнительные ограничения, накладываемые на API модуля каталогом модулей. Требования ли это к - API сервиса mlcmp - API пайплайна pipeline - API ящика databox - API набора данных datasrc?
Author
Owner

Требования к API пайплайна.

  1. Основное различие: каталог предполагает, что если пользователь загружает один файл, то на вход пайплайна передаётся этот один файл, а если пользователь загружает в одну входную переменную несколько файлов, то они все загружаются в одну и ту же папку, и эта папка передаётся на вход пайплайна.
    То есть через каталог нельзя передать на вход пайплайна папку с одним файлом.

  2. Ограничение на типы загружаемых файлов. Уже обсуждалось, что предполагается загрузка файлов одного типа в один вход пайплайна. Сейчас компоненты фреймворка (API пайплана и сам пайплайн) не делают это ограничение строгим, но каталог не позволяет загружать файлы разных типов в один вход. Возможно, это уже отдельная проблема (доработка/улучшение) - сделать ограничение более строгим и задокументировать его.

Требования к API пайплайна. 1. Основное различие: каталог предполагает, что если пользователь загружает один файл, то на вход пайплайна передаётся этот один файл, а если пользователь загружает в одну входную переменную несколько файлов, то они все загружаются в одну и ту же папку, и эта папка передаётся на вход пайплайна. То есть через каталог нельзя передать на вход пайплайна папку с одним файлом. 2. Ограничение на типы загружаемых файлов. Уже обсуждалось, что предполагается загрузка файлов одного типа в один вход пайплайна. Сейчас компоненты фреймворка (API пайплана и сам пайплайн) не делают это ограничение строгим, но каталог не позволяет загружать файлы разных типов в один вход. Возможно, это уже отдельная проблема (доработка/улучшение) - сделать ограничение более строгим и задокументировать его.
Owner

Требования к API пайплайна.

  1. Основное различие: каталог предполагает, что если пользователь загружает один файл, то на вход пайплайна передаётся этот один файл, а если пользователь загружает в одну входную переменную несколько файлов, то они все загружаются в одну и ту же папку, и эта папка передаётся на вход пайплайна.
    То есть через каталог нельзя передать на вход пайплайна папку с одним файлом.

API Pipelines при разборе пути использует те же соглашения, что и для API Files:

  1. Если локация является пустой ('', '/', None), то файловая группа = None, файл = None.
  2. Если локация состоит из одного сегмента ('fg', 'fg/', то файловая группа = fg, файл = None.
  3. Если локация состоит из любого числа сегментов, но оканчивается на '/'
    ('f/g/', 'f/g/h/'), то файловая группа = локация целиком, файл = None.
  4. Если локация состоит из более чем одного сегмента и не оканчивается на '/' (
    ('fg/f1', 'f/g/f2'), то файловая группа = все сегменты, кроме последнего,
    файл - последний сегмент.

Файловая группа = "папка".

Путь к файлу: /a/b
Путь к папке: /a/c/
Путь к одному файлу в папке: /a/c/b

  1. Ограничение на типы загружаемых файлов. Уже обсуждалось, что предполагается загрузка файлов одного типа в один вход пайплайна. Сейчас компоненты фреймворка (API пайплана и сам пайплайн) не делают это ограничение строгим, но каталог не позволяет загружать файлы разных типов в один вход. Возможно, это уже отдельная проблема (доработка/улучшение) - сделать ограничение более строгим и задокументировать его.

В API Pipelines у каждого входа и выхода один datatype и один content_type. Допустимые значения определяются в APIComponent. Фактический тип загруженного файла в S3 API Pipelines не проверяет.

> Требования к API пайплайна. > > 1. Основное различие: каталог предполагает, что если пользователь загружает один файл, то на вход пайплайна передаётся этот один файл, а если пользователь загружает в одну входную переменную несколько файлов, то они все загружаются в одну и ту же папку, и эта папка передаётся на вход пайплайна. > То есть через каталог нельзя передать на вход пайплайна папку с одним файлом. API Pipelines при разборе пути использует те же соглашения, что и для API Files: 1. Если локация является пустой ('', '/', None), то файловая группа = None, файл = None. 2. Если локация состоит из одного сегмента ('fg', 'fg/', то файловая группа = fg, файл = None. 3. Если локация состоит из любого числа сегментов, но оканчивается на '/' ('f/g/', 'f/g/h/'), то файловая группа = локация целиком, файл = None. 4. Если локация состоит из более чем одного сегмента и не оканчивается на '/' ( ('fg/f1', 'f/g/f2'), то файловая группа = все сегменты, кроме последнего, файл - последний сегмент. Файловая группа = "папка". Путь к файлу: /a/b Путь к папке: /a/c/ Путь к одному файлу в папке: /a/c/b > 2. Ограничение на типы загружаемых файлов. Уже обсуждалось, что предполагается загрузка файлов одного типа в один вход пайплайна. Сейчас компоненты фреймворка (API пайплана и сам пайплайн) не делают это ограничение строгим, но каталог не позволяет загружать файлы разных типов в один вход. Возможно, это уже отдельная проблема (доработка/улучшение) - сделать ограничение более строгим и задокументировать его. > В API Pipelines у каждого входа и выхода один datatype и один content_type. Допустимые значения определяются в APIComponent. Фактический тип загруженного файла в S3 API Pipelines не проверяет.
Author
Owner

API Pipelines при разборе пути использует те же соглашения, что и для API Files:

В самом API Pipelines всё логично, и проблем нет. Проблема в каталоге - что через него нельзя передать на вход папку с одним файлом, потому что формат запроса не контролируется пользователем. Также - нельзя передать папку с вложенными папками. Все файлы, загруженные через каталог, будут сложены в корневую папку входа пайплайна.

Проблема 2 тогда - это проблема документации. По ней пока вопросов больше нет.

> API Pipelines при разборе пути использует те же соглашения, что и для API Files: В самом API Pipelines всё логично, и проблем нет. Проблема в каталоге - что через него нельзя передать на вход папку с одним файлом, потому что формат запроса не контролируется пользователем. Также - нельзя передать папку с вложенными папками. Все файлы, загруженные через каталог, будут сложены в корневую папку входа пайплайна. Проблема 2 тогда - это проблема документации. По ней пока вопросов больше нет.
Author
Owner

Для API mlcmp тоже есть несоответствие самого API и каталога, но его я хуже помню.

  1. Каталог всегда запрашивает все выходные данные, даже если указано optional в docstring.
  2. Могу ошибаться - можно не указывать content_type для переменных mlcmp, и тогда API считает, что может быть передан любой content_type, а каталог предполагает конкретный content_type. Пока не могу перепроверить.
Для API mlcmp тоже есть несоответствие самого API и каталога, но его я хуже помню. 1. Каталог всегда запрашивает все выходные данные, даже если указано `optional` в docstring. 2. Могу ошибаться - можно не указывать content_type для переменных mlcmp, и тогда API считает, что может быть передан любой content_type, а каталог предполагает конкретный content_type. Пока не могу перепроверить.
vpolezhaev added the
catalogue
label 2025-04-10 14:58:00 +00:00
Sign in to join this conversation.
No description provided.