Уведомление о переводе ИИ
Эта документация была автоматически переведена ИИ.
ModelDefinition
ModelDefinition определяет параметры создания модели потока, которые используются для создания экземпляра модели с помощью метода FlowEngine.createModelAsync(). Оно включает базовую конфигурацию, свойства, подмодели и другую информацию о модели.
Определение типа
interface CreateModelOptions {
uid?: string;
use: RegisteredModelClassName | ModelConstructor;
props?: IModelComponentProps;
flowRegistry?: Record<string, Omit<FlowDefinitionOptions, 'key'>>;
stepParams?: StepParams;
subModels?: Record<string, CreateSubModelOptions[]>;
parentId?: string;
subKey?: string;
subType?: 'array' | 'single';
sortIndex?: number;
flowRegistry?: Record<string, Omit<FlowDefinitionOptions, 'key'>>;
}
Использование
const engine = new FlowEngine();
// Создание экземпляра модели
const model = await engine.createModelAsync({
uid: 'unique-model-id',
use: 'MyModel',
props: {
title: 'My Model',
description: 'A sample model'
},
stepParams: {
step1: { param1: 'value1' }
},
subModels: {
childModels: [
{
use: 'ChildModel',
props: { name: 'Child 1' }
}
]
}
});
Описание свойств
uid
Тип: string
Обязательно: Нет
Описание: Уникальный идентификатор экземпляра модели
Если не указан, система автоматически сгенерирует уникальный UID.
Пример:
uid: 'model-123'
uid: 'user-profile-model'
uid: 'data-processing-instance'
use
Тип: RegisteredModelClassName | ModelConstructor
Обязательно: Да
Описание: Класс модели для использования
Может быть строкой с именем зарегистрированного класса модели или конструктором класса модели.
Пример:
// Использование строковой ссылки
use: 'MyModel'
// Использование конструктора
use: MyModel
// Использование динамической ссылки
const ModelClass = await engine.getModelClassAsync('MyModel');
use: ModelClass
props
Тип: IModelComponentProps
Обязательно: Нет
Описание: Конфигурация свойств модели
Объект свойств, передаваемый в конструктор модели.
Пример:
props: {
title: 'My Model',
description: 'A sample model instance',
config: {
theme: 'dark',
language: 'ru-RU'
},
metadata: {
version: '1.0.0',
author: 'Developer'
}
}
stepParams
Тип: StepParams
Обязательно: Нет
Описание: Конфигурация параметров шагов
Задает параметры для каждого шага в рабочем процессе.
Пример:
stepParams: {
loadData: {
url: 'https://api.example.com/data',
method: 'GET',
timeout: 5000
},
processData: {
processor: 'advanced',
options: {
format: 'json',
encoding: 'utf8'
}
},
saveData: {
destination: 'database',
table: 'processed_data'
}
}
subModels
Тип: Record<string, CreateSubModelOptions[]>
Обязательно: Нет
Описание: Конфигурация подмоделей
Определяет подмодели модели, поддерживая как массивы, так и отдельные подмодели.
Пример:
subModels: {
// Подмодель типа "массив"
childModels: [
{
use: 'ChildModel1',
props: { name: 'Child 1', type: 'primary' }
},
{
use: 'ChildModel2',
props: { name: 'Child 2', type: 'secondary' }
}
],
// Отдельная подмодель
singleChild: {
use: 'SingleChildModel',
props: { name: 'Single Child' }
}
}
parentId
Тип: string
Обязательно: Нет
Описание: UID родительской модели
Используется для установления связи "родитель-потомок" между моделями.
Пример:
parentId: 'parent-model-123'
parentId: 'master-instance'
subKey
Тип: string
Обязательно: Нет
Описание: Имя ключа подмодели в родительской модели
Используется для идентификации положения подмодели внутри родительской модели.
Пример:
subKey: 'childModels'
subKey: 'subComponents'
subKey: 'nestedItems'
subType
Тип: 'array' | 'single'
Обязательно: Нет
Описание: Тип подмодели
'array': Подмодель типа "массив", которая может содержать несколько экземпляров
'single': Отдельная подмодель, которая может содержать только один экземпляр
Пример:
subType: 'array' // Тип "массив"
subType: 'single' // Тип "одиночный"