Small fixes

This commit is contained in:
Georgii Zhulikov 2025-03-26 17:26:59 +03:00
parent 22e768aa2c
commit 76fab7da40
2 changed files with 19 additions and 13 deletions

View file

@ -43,7 +43,7 @@
- Образы Docker - Образы Docker
Роль и связь компонентов модуля: Связь компонентов модуля:
```mermaid ```mermaid
flowchart LR flowchart LR
@ -57,8 +57,8 @@ flowchart LR
%% S3 Infrastructure %% S3 Infrastructure
S3Storage[(S3 Хранилище)] S3Storage[(S3 Хранилище)]
FileAPI ---> S3Box-UserData[S3 Box: Данные пользователей] FileAPI <---> S3Box-UserData[S3 Box: Данные пользователей]
FileAPI ---> S3Box-ModelWeights[S3 Box: Веса моделей] FileAPI <---> S3Box-ModelWeights[S3 Box: Веса моделей]
S3Box-UserData --> S3Storage S3Box-UserData --> S3Storage
%% ML Component Section %% ML Component Section
@ -67,7 +67,7 @@ flowchart LR
MLService[ML Service] MLService[ML Service]
end end
MLAPI --> ML-Component MLAPI <--> ML-Component
ML-Component --> S3Box-UserData ML-Component --> S3Box-UserData
ML-Component --> S3Box-ModelWeights ML-Component --> S3Box-ModelWeights
S3Box-ModelWeights --> S3Storage S3Box-ModelWeights --> S3Storage

View file

@ -1,5 +1,14 @@
# ExperimentPipeline # ExperimentPipeline
- [ExperimentPipeline](#experimentpipeline)
- [Переменные](#переменные)
- [Взаимодействие кода модуля с фреймворком](#взаимодействие-кода-модуля-с-фреймворком)
- [Манифест ExperimentPipeline](#манифест-experimentpipeline)
- [Манифест APIComponent отдельного пайплайна](#манифест-apicomponent-отдельного-пайплайна)
- [Манифест APIComponent пайплайнов в целом](#манифест-apicomponent-пайплайнов-в-целом)
- [Изменение пути монтирования отдельных переменных (необязательно).](#изменение-пути-монтирования-отдельных-переменных-необязательно)
Компонент ExperimentPipeline позволяет создать сервис для асинхронной обработки запросов пользователей. Компонент ExperimentPipeline позволяет создать сервис для асинхронной обработки запросов пользователей.
ExperimentPipeline подходит для вычислительных задач, которые: ExperimentPipeline подходит для вычислительных задач, которые:
@ -22,10 +31,7 @@ ExperimentPipeline подходит для вычислительных зада
## Переменные
## Добавление пайплайна в приложение
### Переменные
Данные передаются на вход и выход пайплайна, а также между его отдельными этапами через *переменные*. Эти переменные используются в нескольких частях работы пайплайна: Данные передаются на вход и выход пайплайна, а также между его отдельными этапами через *переменные*. Эти переменные используются в нескольких частях работы пайплайна:
@ -39,7 +45,7 @@ ExperimentPipeline подходит для вычислительных зада
* выходные - могут быть переданы в поле `outputs` при вызове пайплайна через API. Значением может быть только путь к папке, не к файлу. * выходные - могут быть переданы в поле `outputs` при вызове пайплайна через API. Значением может быть только путь к папке, не к файлу.
* внутренние - не передаются через API, но могут быть указаны как входные и выходные переменные отдельных этапов пайплайна, и в таком случае данные будут автоматически переданы между этапами. * внутренние - не передаются через API, но могут быть указаны как входные и выходные переменные отдельных этапов пайплайна, и в таком случае данные будут автоматически переданы между этапами.
### Взаимодействие кода модуля с фреймворком ## Взаимодействие кода модуля с фреймворком
Для каждого контейнера, созданного во время выполнения пайплайна, будут определены переменные окружения в формате `UNIP_PIPELINE_<VAR_NAME>`. Значения таких переменных - пути к файлами и папкам в локальной файловой системе контейнера, с которыми должен работать код модуля. Для каждого контейнера, созданного во время выполнения пайплайна, будут определены переменные окружения в формате `UNIP_PIPELINE_<VAR_NAME>`. Значения таких переменных - пути к файлами и папкам в локальной файловой системе контейнера, с которыми должен работать код модуля.
@ -70,7 +76,7 @@ def main():
Входные переменные могут быть файлами или папками, а выходная - только папкой, поэтому в примере добавляется путь к файлу. Входные переменные могут быть файлами или папками, а выходная - только папкой, поэтому в примере добавляется путь к файлу.
### Манифест ExperimentPipeline ## Манифест ExperimentPipeline
Пример манифеста самого пайплайна. Пример манифеста самого пайплайна.
@ -161,7 +167,7 @@ spec:
Каждый этап работает с собственными входными и выходными данными. Переменные, определённые здесь, в пайплайне, но не определённые в API, считаются внутренними переменными. Например, в примере выше такой переменной является `model`. Каждый этап работает с собственными входными и выходными данными. Переменные, определённые здесь, в пайплайне, но не определённые в API, считаются внутренними переменными. Например, в примере выше такой переменной является `model`.
### Манифест APIComponent отдельного пайплайна ## Манифест APIComponent отдельного пайплайна
Пример манифеста API пайплайна Пример манифеста API пайплайна
@ -231,7 +237,7 @@ spec:
Если данные переданы не в виде файла, они сохраняются в файл, и этот файл уже передаётся в контейнер. Данные сохраняются простым преобразованием в строку и сохранением этой строки в текстовый файл. Если данные переданы не в виде файла, они сохраняются в файл, и этот файл уже передаётся в контейнер. Данные сохраняются простым преобразованием в строку и сохранением этой строки в текстовый файл.
### Манифест APIComponent пайплайнов в целом ## Манифест APIComponent пайплайнов в целом
```yaml ```yaml
apiVersion: "unified-platform.cs.hse.ru/v1" apiVersion: "unified-platform.cs.hse.ru/v1"
@ -252,7 +258,7 @@ spec:
Главное отличие от других APIComponent - пункт `pipelines.enabled: true`. Изменяемые разработчиком пункты - имя приложения `metadata.namespace`, имя самого компонента `metadata.name` и имя секрета с реквизитами `spec.restfulApi.auth.basic.credentials` Главное отличие от других APIComponent - пункт `pipelines.enabled: true`. Изменяемые разработчиком пункты - имя приложения `metadata.namespace`, имя самого компонента `metadata.name` и имя секрета с реквизитами `spec.restfulApi.auth.basic.credentials`
### Изменение пути монтирования отдельных переменных (необязательно). ## Изменение пути монтирования отдельных переменных (необязательно).
Иногда необходимо подключить к модулю данные из файлового хранилища, которые не загружал пользователь. Частый пример - веса ИИ-моделей, которые используются при запросах всех пользователей. В таких случаях для входной переменной можно указать конкретный путь, к которому она будет подключена, вместо того, чтобы выводить её в API. Иногда необходимо подключить к модулю данные из файлового хранилища, которые не загружал пользователь. Частый пример - веса ИИ-моделей, которые используются при запросах всех пользователей. В таких случаях для входной переменной можно указать конкретный путь, к которому она будет подключена, вместо того, чтобы выводить её в API.