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

View file

@ -1,5 +1,14 @@
# ExperimentPipeline
- [ExperimentPipeline](#experimentpipeline)
- [Переменные](#переменные)
- [Взаимодействие кода модуля с фреймворком](#взаимодействие-кода-модуля-с-фреймворком)
- [Манифест ExperimentPipeline](#манифест-experimentpipeline)
- [Манифест APIComponent отдельного пайплайна](#манифест-apicomponent-отдельного-пайплайна)
- [Манифест APIComponent пайплайнов в целом](#манифест-apicomponent-пайплайнов-в-целом)
- [Изменение пути монтирования отдельных переменных (необязательно).](#изменение-пути-монтирования-отдельных-переменных-необязательно)
Компонент ExperimentPipeline позволяет создать сервис для асинхронной обработки запросов пользователей.
ExperimentPipeline подходит для вычислительных задач, которые:
@ -22,10 +31,7 @@ ExperimentPipeline подходит для вычислительных зада
## Добавление пайплайна в приложение
### Переменные
## Переменные
Данные передаются на вход и выход пайплайна, а также между его отдельными этапами через *переменные*. Эти переменные используются в нескольких частях работы пайплайна:
@ -39,7 +45,7 @@ ExperimentPipeline подходит для вычислительных зада
* выходные - могут быть переданы в поле `outputs` при вызове пайплайна через API. Значением может быть только путь к папке, не к файлу.
* внутренние - не передаются через API, но могут быть указаны как входные и выходные переменные отдельных этапов пайплайна, и в таком случае данные будут автоматически переданы между этапами.
### Взаимодействие кода модуля с фреймворком
## Взаимодействие кода модуля с фреймворком
Для каждого контейнера, созданного во время выполнения пайплайна, будут определены переменные окружения в формате `UNIP_PIPELINE_<VAR_NAME>`. Значения таких переменных - пути к файлами и папкам в локальной файловой системе контейнера, с которыми должен работать код модуля.
@ -70,7 +76,7 @@ def main():
Входные переменные могут быть файлами или папками, а выходная - только папкой, поэтому в примере добавляется путь к файлу.
### Манифест ExperimentPipeline
## Манифест ExperimentPipeline
Пример манифеста самого пайплайна.
@ -161,7 +167,7 @@ spec:
Каждый этап работает с собственными входными и выходными данными. Переменные, определённые здесь, в пайплайне, но не определённые в API, считаются внутренними переменными. Например, в примере выше такой переменной является `model`.
### Манифест APIComponent отдельного пайплайна
## Манифест APIComponent отдельного пайплайна
Пример манифеста API пайплайна
@ -231,7 +237,7 @@ spec:
Если данные переданы не в виде файла, они сохраняются в файл, и этот файл уже передаётся в контейнер. Данные сохраняются простым преобразованием в строку и сохранением этой строки в текстовый файл.
### Манифест APIComponent пайплайнов в целом
## Манифест APIComponent пайплайнов в целом
```yaml
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`
### Изменение пути монтирования отдельных переменных (необязательно).
## Изменение пути монтирования отдельных переменных (необязательно).
Иногда необходимо подключить к модулю данные из файлового хранилища, которые не загружал пользователь. Частый пример - веса ИИ-моделей, которые используются при запросах всех пользователей. В таких случаях для входной переменной можно указать конкретный путь, к которому она будет подключена, вместо того, чтобы выводить её в API.