
# 配置Workflow参数
#### 功能介绍
参数相关的配置使用Placeholder对象来表示，以占位符的形式实现用户数据运行时配置的能力，当前支持的数据类型包括：int、str、bool、float、Enum、dict、list。开发者可根据场景需要，将节点中的相关字段（如算法超参）通过Placeholder的形式透出，支持设置默认值，供用户修改配置使用。
#### 属性总览（Placeholder）
| 属性                 | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | 是否必填 | 数据类型            |
|:---|:---|:---|:---|
| name               | 参数名称，需要保证全局唯一。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | 是    | str             |
| placeholder_type   | 参数类型，与真实数据类型的映射关系如下： PlaceholderType.INT -\> int PlaceholderType.STR -\> str PlaceholderType.BOOL -\> bool PlaceholderType.FLOAT -\> float PlaceholderType.ENUM -\> Enum PlaceholderType.JSON -\> dict PlaceholderType.LIST -\> list - 当类型为PlaceholderType.ENUM时，enum_list字段不能为空。  - 当类型为PlaceholderType.LIST时，placeholder_format字段不能为空，且只能填写str/int/float/bool，用来表示list中的数据类型。   | 是    | PlaceholderType |
| default            | 参数默认值，数据类型需要与placeholder_type一致。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 否    | Any             |
| placeholder_format | 支持的format格式数据，当前支持obs、flavor、train_flavor、swr、pacific。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | 否    | str             |
| delay              | 参数是否运行时输入，默认为"False"，在工作流启动运行前配置。设置为"True"，则在使用的相应节点运行时卡点配置。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | 否    | bool            |
| description        | 参数描述信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | 否    | str             |
| enum_list          | 参数枚举值列表，只有当参数类型为PlaceholderType.ENUM时才需要填写。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | 否    | list            |
| constraint         | 参数相关的约束配置，当前该字段仅支持训练规格的约束，且用户不感知。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | 否    | dict            |
| required           | 参数是否必填标记。 - 默认required=True。  - Delay参数不能设required=False。   运行时前端可以不填此参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | 否    | bool            |
   
#### 使用案例
- int类型参数
  ```
  from modelarts import workflow as wf
  wf.Placeholder(name="placeholder_int", placeholder_type=wf.PlaceholderType.INT, default=1, description="这是一个int类型的参数")
  ```
  
- str类型参数
  ```
  from modelarts import workflow as wf
  wf.Placeholder(name="placeholder_str", placeholder_type=wf.PlaceholderType.STR, default="default_value", description="这是一个str类型的参数")
  ```
  
- bool类型参数
  ```
  from modelarts import workflow as wf
  wf.Placeholder(name="placeholder_bool", placeholder_type=wf.PlaceholderType.BOOL, default=True, description="这是一个bool类型的参数")
  ```
  
- float类型参数
  ```
  from modelarts import workflow as wf
  wf.Placeholder(name="placeholder_float", placeholder_type=wf.PlaceholderType.FLOAT, default=0.1, description="这是一个float类型的参数")
  ```
  
- Enum类型参数
  ```
  from modelarts import workflow as wf
  wf.Placeholder(name="placeholder_enum", placeholder_type=wf.PlaceholderType.ENUM, default="a", enum_list=["a", "b"], description="这是一个enum类型的参数")
  ```
  
- dict类型参数
  ```
  from modelarts import workflow as wf
  wf.Placeholder(name="placeholder_dict", placeholder_type=wf.PlaceholderType.JSON, default={"key": "value"}, description="这是一个dict类型的参数")
  ```
  
- list类型参数
  ```
  from modelarts import workflow as wf
  wf.Placeholder(name="placeholder_list", placeholder_type=wf.PlaceholderType.LIST, default=[1, 2], placeholder_format="int", description="这是一个list类型的参数，并且value类型为int")
  ```
  
 
