
# 创建数据集
#### 功能介绍
创建数据集。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/ModelArts/doc?api=CreateDataset)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### URI
POST /v2/{project_id}/datasets
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                               |
|:---|:---|:---|:---|
| project_id | 是    | String | 用户项目ID。获取方法请参见[获取项目ID和名称](https://support.huaweicloud.com/api-modelarts/modelarts_03_0147.html)。 |
#### 请求参数
表2请求Body参数 
| 参数                    | 是否必选 | 参数类型                                                                                       | 描述                                                                                                                                                     |
|:---|:---|:---|:---|
| data_format           | 否    | String                                                                                     | 数据格式。可选值如下： - Default：默认格式 - CarbonData：Carbon格式（仅表格数据集支持）                                                                                             |
| data_sources          | 是    | Array of [DataSource] objects           | 数据集输入位置，用于将此目录及子目录下的源数据(如图片/文件/音频等)同步到数据集。对于表格数据集，该参数为导入目录。表格数据集的工作目录不支持为KMS加密桶下的OBS路径。目前仅支持传入单个DataSource。                                            |
| dataset_name          | 是    | String                                                                                     | 数据集名称。                                                                                                                                                 |
| dataset_type          | 否    | Integer                                                                                    | 数据集类型。可选值如下： - 0：图像分类 - 1：物体检测 - 3: 图像分割 - 100：文本分类 - 101：命名实体 - 102：文本三元组 - 200：声音分类 - 201：语音内容 - 202：语音分割 - 400：表格数据集 - 600：视频标注 - 900：自由格式          |
| description           | 否    | String                                                                                     | 数据集描述，默认为空，描述不能包含\^!\<\>=\&"'等特殊字符，长度为0-256。                                                                                                           |
| import_annotations    | 否    | Boolean                                                                                    | 是否自动导入输入目录下的标注信息，支持物体检测、图像分类、文本分类。可选值如下： - true：导入输入目录下的标注信息（默认值） - false：不导入输入目录下的标注信息                                                                |
| import_data           | 否    | Boolean                                                                                    | 是否导入数据，此参数当前仅表格数据集使用。可选值如下： - true：创建数据集时导入数据 - false：创建数据集时不导入数据（默认值）                                                                                 |
| label_format          | 否    | [LabelFormat] object                   | 标签格式信息，此参数仅文本类数据集使用。                                                                                                                                   |
| labels                | 否    | Array of [Label] objects                     | 数据集标签列表。                                                                                                                                               |
| managed               | 否    | Boolean                                                                                    | 是否是托管数据集。可选值如下： - true：托管数据集 - false：不托管数据集（默认值）                                                                                                       |
| schema                | 否    | Array of [Field] objects                     | Schema列表。                                                                                                                                              |
| work_path             | 是    | String                                                                                     | 数据集输出位置，用于存放输出的标注信息等文件。 - 格式为 "/桶名称/文件路径"，例如"/obs-bucket/flower/rose/"（使用目录作为路径）。 - 不能直接使用桶作为路径。 - 输出位置不能与输入位置相同或者是输入位置的子目录。 - 长度限制：不少于3字符，不能超过700个字符。 |
| work_path_type        | 是    | Integer                                                                                    | 数据集输出路径类型。默认值为0，表示OBS桶。                                                                                                                                |
| workforce_information | 否    | [WorkforceInformation] object | 团队标注信息。                                                                                                                                                |
| workspace_id          | 否    | String                                                                                     | 工作空间ID。若未创建工作空间，默认值为"0"；若存在创建并使用的工作空间，以实际取值为准。                                                                                                         |
   
 表3DataSource 
| 参数                 | 是否必选 | 参数类型                                                                           | 描述                                                                                                 |
|:---|:---|:---|:---|
| data_path          | 否    | String                                                                         | 数据源所在路径。                                                                                           |
| data_type          | 否    | Integer                                                                        | 数据类型。可选值如下： - 0：OBS桶（默认值） - 1：GaussDB(DWS)服务 - 2：DLI服务 - 3：RDS服务 - 4：MRS服务 - 5：AI Gallery - 6：推理服务 |
| schema_maps        | 否    | Array of [SchemaMap] objects | 表格数据对应的schema映射信息。                                                                                 |
| source_info        | 否    | [SourceInfo] object         | 导入表格数据源所需的信息。                                                                                      |
| with_column_header | 否    | Boolean                                                                        | 文件中首行是否是列名，用于表格数据集。可选值如下： - true：文件首行为列名 - false：文件首行不为列名                                          |
   
 表4SchemaMap 
| 参数        | 是否必选 | 参数类型   | 描述      |
|:---|:---|:---|:---|
| dest_name | 否    | String | 目的方的列名。 |
| src_name  | 否    | String | 来源方的列名。 |
   
 表5SourceInfo 
| 参数            | 是否必选 | 参数类型   | 描述                                 |
|:---|:---|:---|:---|
| cluster_id    | 否    | String | MRS集群ID。可登录MRS控制台查看。               |
| cluster_mode  | 否    | String | MRS集群运行模式。可选值如下： - 0：普通集群 - 1：安全集群 |
| cluster_name  | 否    | String | MRS集群名称。可登录MRS控制台查看。               |
| database_name | 否    | String | 导入表格数据集，数据库名字。                     |
| input         | 否    | String | 表格数据集，HDFS路径。例如/datasets/demo。     |
| ip            | 否    | String | 用户GaussDB(DWS)集群的IP地址。             |
| port          | 否    | String | 用户GaussDB(DWS)集群的端口。               |
| queue_name    | 否    | String | 表格数据集，DLI队列名。                      |
| subnet_id     | 否    | String | MRS集群的子网ID。                        |
| table_name    | 否    | String | 导入表格数据集，表名。                        |
| user_name     | 否    | String | 用户名，GaussDB(DWS)数据需提供此参数。          |
| user_password | 否    | String | 用户密码，GaussDB(DWS)数据需提供此参数。         |
| vpc_id        | 否    | String | MRS集群所在的vpc的ID。                    |
   
 表6LabelFormat 
| 参数                    | 是否必选 | 参数类型   | 描述                                                                                                                                                                                 |
|:---|:---|:---|:---|
| label_type            | 否    | String | 文本分类的标签类型。可选值如下： - 0：标签和文本分离，以固定后缀"_result"区分。如：文本文件是"abc.txt"，标签文件是"abc_result.txt"。 - 1：默认值，标签和文本在一个文件内，以分隔符分离。文本与标签，标签与标签之间的分隔符可通过text_sample_separator和text_label_separator指定。 |
| text_label_separator  | 否    | String | 标签与标签之间的分隔符，默认为逗号分隔，分隔符需转义。分隔符仅支持一个字符，必须为大小写字母，数字和"!@#$%\^\&\*_=\|?/':.;,"其中的某一字符。                                                                                                 |
| text_sample_separator | 否    | String | 文本与标签之间的分隔符，默认为Tab键分隔，分隔符需转义。分隔符仅支持一个字符，必须为大小写字母，数字和"!@#$%\^\&\*_=\|?/':.;,"其中的某一字符。                                                                                               |
   
 表7Label 
| 参数         | 是否必选 | 参数类型                                                                                     | 描述                                                                                                                                        |
|:---|:---|:---|:---|
| attributes | 否    | Array of [LabelAttribute] objects | 标签的多维度属性，如标签为"音乐"，可能包含属性"风格"、"歌手"等。                                                                                                       |
| name       | 否    | String                                                                                   | 标签名称。                                                                                                                                     |
| property   | 否    | [LabelProperty] object             | 标签基本属性键值对，如颜色、快捷键等。                                                                                                                       |
| type       | 否    | Integer                                                                                  | 标签类型。可选值如下： - 0：图像分类 - 1：物体检测 - 3: 图像分割 - 100：文本分类 - 101：命名实体 - 102：文本三元组关系标签 - 103：文本三元组实体标签 - 200：语音分类 - 201：语音内容 - 202：语音分割 - 600：视频标注 |
   
 表8LabelAttribute 
| 参数            | 是否必选 | 参数类型                                                                                               | 描述                                      |
|:---|:---|:---|:---|
| default_value | 否    | String                                                                                             | 标签属性默认值。                                |
| id            | 否    | String                                                                                             | 标签属性ID。可通过调用标签列表查询。                     |
| name          | 否    | String                                                                                             | 标签属性名称。不能超过64个字符，不能包含字符!\<\>=\&"'。      |
| type          | 否    | String                                                                                             | 标签属性类型。可选值如下： - text：文本 - select：单选下拉列表 |
| values        | 否    | Array of [LabelAttributeValue] objects | 标签属性值列表。                                |
   
 表9LabelAttributeValue 
| 参数    | 是否必选 | 参数类型   | 描述       |
|:---|:---|:---|:---|
| id    | 否    | String | 标签属性值ID。 |
| value | 否    | String | 标签属性值。   |
   
 表10LabelProperty 
| 参数                       | 是否必选 | 参数类型   | 描述                                                                                                                                  |
|:---|:---|:---|:---|
| @modelarts:color         | 否    | String | 内置属性：标签展示的颜色，为色彩的16进制代码，默认为空。例如："#FFFFF0"。                                                                                          |
| @modelarts:default_shape | 否    | String | 内置属性：物体检测标签的默认形状（物体检测标签专用属性），默认为空。可选值如下： - bndbox：矩形。 - polygon：多边形。 - circle：圆形。 - line：直线。 - dashed：虚线。 - point：点。 - polyline：折线。 |
| @modelarts:from_type     | 否    | String | 内置属性：三元组关系标签的起始实体类型，创建关系标签时必须指定，该参数仅文本三元组数据集使用。                                                                                     |
| @modelarts:rename_to     | 否    | String | 内置属性：重命名后的标签名。                                                                                                                      |
| @modelarts:shortcut      | 否    | String | 内置属性：标签快捷键，默认为空。例如："D"。                                                                                                             |
| @modelarts:to_type       | 否    | String | 内置属性：三元组关系标签的指向实体类型，创建关系标签时必须指定，该参数仅文本三元组数据集使用。                                                                                     |
   
 表11Field 
| 参数          | 是否必选 | 参数类型    | 描述         |
|:---|:---|:---|:---|
| description | 否    | String  | Schema描述。  |
| name        | 否    | String  | Schema名称。  |
| schema_id   | 否    | Integer | Schema ID。 |
| type        | 否    | String  | Schema值类型。 |
   
 表12WorkforceInformation 
| 参数                             | 是否必选 | 参数类型                                                                               | 描述                                                                                  |
|:---|:---|:---|:---|
| data_sync_type                 | 否    | Integer                                                                            | 同步类型。可选值如下： - 0：不同步 - 1：同步数据 - 2：同步标签 - 3：同步数据和标签                                   |
| repetition                     | 否    | Integer                                                                            | 每个样本由多少人标注，最少为1。                                                                    |
| synchronize_auto_labeling_data | 否    | Boolean                                                                            | 是否同步更新智能标注数据。可选值如下： - true：同步更新智能标注数据 - false：不同步更新智能标注数据                           |
| synchronize_data               | 否    | Boolean                                                                            | 是否同步更新：如上传文件、同步数据源、导入的未标注文件同步分配至团队成员。可选值如下： - true：同步更新数据至团队成员 - false：不同步更新数据至团队成员 |
| task_id                        | 否    | String                                                                             | 团队标注任务ID。                                                                           |
| task_name                      | 是    | String                                                                             | 团队标注任务名称。                                                                           |
| workforces_config              | 否    | [WorkforcesConfig] object | 团队标注任务的人力分配，委托管理员或自行分配二选一。                                                          |
   
 表13WorkforcesConfig 
| 参数         | 是否必选 | 参数类型                                                                                       | 描述           |
|:---|:---|:---|:---|
| agency     | 否    | String                                                                                     | 管理员。         |
| workforces | 否    | Array of [WorkforceConfig] objects | 执行标注任务的团队列表。 |
   
 表14WorkforceConfig 
| 参数             | 是否必选 | 参数类型                                                                     | 描述                                  |
|:---|:---|:---|:---|
| workers        | 否    | Array of [Worker] objects | 标注成员列表。                             |
| workforce_id   | 否    | String                                                                   | 标注团队ID。                             |
| workforce_name | 否    | String                                                                   | 标注团队名称，名称不能包含!\<\>=\&"'，长度为0-1024位。 |
   
 表15Worker 
| 参数           | 是否必选 | 参数类型    | 描述                                                                 |
|:---|:---|:---|:---|
| create_time  | 否    | Long    | 创建时间。                                                              |
| description  | 否    | String  | 标注成员描述，长度为0-256位，不能包含\^!\<\>=\&"'特殊字符。                             |
| email        | 否    | String  | 标注成员邮箱。                                                            |
| role         | 否    | Integer | 角色。可选值如下： - 0：打标者 - 1：审核者 - 2：团队管理者 - 3：数据集拥有者                     |
| status       | 否    | Integer | 标注成员的当前登录状态。可选值如下： - 0：未发送邀请邮件 - 1：已发送邀请邮件但未登录 - 2：已登录 - 3：标注成员已删除 |
| update_time  | 否    | Long    | 更新时间。                                                              |
| worker_id    | 否    | String  | 标注成员ID。                                                            |
| workforce_id | 否    | String  | 所属标注团队ID。                                                          |
   
#### 响应参数
**状态码： 201**
表16响应Body参数 
| 参数             | 参数类型   | 描述      |
|:---|:---|:---|
| dataset_id     | String | 数据集ID。  |
| error_code     | String | 错误码。    |
| error_msg      | String | 错误信息。   |
| import_task_id | String | 导入任务ID。 |
   
#### 请求示例
- 创建图像分类的数据集
  ```
  {
    "workspace_id" : "0",
    "dataset_name" : "dataset-457f",
    "dataset_type" : 0,
    "data_sources" : [ {
      "data_type" : 0,
      "data_path" : "/test-obs/classify/input/animals/"
    } ],
    "description" : "",
    "work_path" : "/test-obs/classify/output/",
    "work_path_type" : 0,
    "labels" : [ {
      "name" : "Rabbits",
      "type" : 0,
      "property" : {
        "@modelarts:color" : "#3399ff"
      }
    }, {
      "name" : "Bees",
      "type" : 0,
      "property" : {
        "@modelarts:color" : "#3399ff"
      }
    } ]
  }
  ```
- 创建物体检测的数据集
  ```
  {
    "workspace_id" : "0",
    "dataset_name" : "dataset-95a6",
    "dataset_type" : 1,
    "data_sources" : [ {
      "data_type" : 0,
      "data_path" : "/test-obs/detect/input/animals/"
    } ],
    "description" : "",
    "work_path" : "/test-obs/detect/output/",
    "work_path_type" : 0,
    "labels" : [ {
      "name" : "Rabbits",
      "type" : 1,
      "property" : {
        "@modelarts:color" : "#3399ff"
      }
    }, {
      "name" : "Bees",
      "type" : 1,
      "property" : {
        "@modelarts:color" : "#3399ff"
      }
    } ]
  }
  ```
- 创建表格型的数据集
  ```
  {
    "workspace_id" : "0",
    "dataset_name" : "dataset-de83",
    "dataset_type" : 400,
    "data_sources" : [ {
      "data_type" : 0,
      "data_path" : "/test-obs/table/input/",
      "with_column_header" : true
    } ],
    "description" : "",
    "work_path" : "/test-obs/table/output/",
    "work_path_type" : 0,
    "schema" : [ {
      "schema_id" : 1,
      "name" : "150",
      "type" : "STRING"
    }, {
      "schema_id" : 2,
      "name" : "4",
      "type" : "STRING"
    }, {
      "schema_id" : 3,
      "name" : "setosa",
      "type" : "STRING"
    }, {
      "schema_id" : 4,
      "name" : "versicolor",
      "type" : "STRING"
    }, {
      "schema_id" : 5,
      "name" : "virginica",
      "type" : "STRING"
    } ],
    "import_data" : true
  }
  ```
#### 响应示例
**状态码： 201**
Created
```
{
  "dataset_id" : "WxCREuCkBSAlQr9xrde"
}
```
#### 状态码
| 状态码 | 描述           |
|:---|:---|
| 201 | Created      |
| 401 | Unauthorized |
| 403 | Forbidden    |
| 404 | Not Found    |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-modelarts/modelarts_03_0095.html)。
