华为云用户手册

  • 响应示例 状态码: 200 OK { "count" : 1, "tasks" : [ { "task_id" : "ddwRJeTnjpiq4dNUZOq", "name" : "V001", "data_source" : { "type" : "DATASET", "source" : "X6c3N3eztX7cr3Arvqu" }, "inputs" : [ { "type" : "DATASET", "source" : "X6c3N3eztX7cr3Arvqu" } ], "template" : { "id" : "sys_data_analyse", "name" : "data analyse template name", "operator_params" : [ { "id" : "sys_data_analyse", "params" : { "op_list" : [ ], "task_type" : "image_classification", "manifest_path" : "s3://test-obs/classify/output/dataset-3026-X6c3N3eztX7cr3Arvqu/annotation/V001/V001.manifest", "file_path" : "s3://test-obs/classify/output/dataset-3026-X6c3N3eztX7cr3Arvqu/annotation/evaluation/V001", "is_normed" : false } } ] }, "status" : 2, "duration_seconds" : 11, "create_time" : 1606372570023, "version_id" : "J4Eh2FDEWH1qnDlD3hQ", "version_name" : "V001", "is_current" : true } ] }
  • 功能介绍 查询处理任务列表,包括“特征分析”任务和“数据处理”两大类任务。可通过指定“task_type”参数来单独查询某类任务的列表。 “特征分析”是指基于图片或目标框对图片的各项特征,如模糊度、亮度进行分析,并绘制可视化曲线,帮助处理数据集。 “数据处理”是指从大量的、杂乱无章的、难以理解的数据中抽取或者生成对某些特定的人们来说是有价值、有意义的数据。“数据处理”又分为“数据校验”、“数据清洗”、“数据选择”和“数据增强”四类。 “数据校验”表示对数据集进行校验,保证数据合法。 “数据清洗”表示对数据进行去噪、纠错或补全的过程。 “数据选择”表示从全量数据中选择数据子集的过程。 “数据增强”表示通过简单的数据扩增例如缩放、裁剪、变换、合成等操作直接或间接的方式增加数据量。
  • URI GET /v2/{project_id}/datasets/{dataset_id}/auto-annotations/samples 表1 路径参数 参数 是否必选 参数类型 描述 dataset_id 是 String 数据集ID。 project_id 是 String 用户项目ID。获取方法请参见获取项目ID和名称。 表2 Query参数 参数 是否必选 参数类型 描述 high_score 否 String 置信度上界,默认为1。 label_name 否 String 标签名。 label_type 否 Integer 标注类型。可选值如下: 0:图像分类 1:物体检测 3: 图像分割 100:文本分类 101:命名实体 102:文本三元组 200:声音分类 201:语音内容 202:语音分割 400:表格数据集 600:视频标注 900:自由格式 limit 否 Integer 指定每一页返回的最大条目数,取值范围[1,100],默认为10。 low_score 否 String 置信度下界,默认为0。 offset 否 Integer 分页列表的起始页,默认为0。 order 否 String 指定查询的排序顺序。可选值如下: asc:递增排序 desc:递减排序(默认值) process_parameter 否 String 图像缩略设置,同OBS缩略图设置,详见OBS缩略图设置。如:image/resize,m_lfit,h_200表示等比缩放目标缩略图并设置高度为200像素。 search_conditions 否 String URL编码后的多维筛选条件(多个SearchCondition之间为and的关系)。
  • 响应示例 状态码: 200 OK { "sample_count" : 1, "samples" : [ { "sample_id" : "10de574cbf0f09d4798b87ba0eb34e37", "sample_type" : 0, "labels" : [ { "name" : "sunflowers", "type" : 0, "id" : "1", "property" : { "@modelarts:hard_coefficient" : "0.0", "@modelarts:hard" : "false" }, "score" : 1.0 } ], "source" : "https://test-obs.obs.xxx.com:443/animals/8_1597649054631.jpeg?AccessKeyId=alRn0xskf5luJaG2jBJe&Expires=1606299230&x-image-process=image%2Fresize%2Cm_lfit%2Ch_200&Signature=MNAAjXz%2Fmwn%2BSabSK9wkaG6b6bU%3D", "metadata" : { "@modelarts:hard_coefficient" : 1.0, "@modelarts:hard" : true, "@modelarts:import_origin" : 0, "@modelarts:hard_reasons" : [ 8, 6, 5, 3 ] }, "sample_time" : 1601432758000, "sample_status" : "UN_ANNOTATION" } ] }
  • 响应示例 状态码: 200 OK { "charging_mode" : "POST_PAID", "cloud_server" : { "type" : "ECS" }, "create_at" : 1699348284990, "flavor" : "Si2.large.4", "id" : "62383738-e52a-450a-9f84-f9e705402be8", "image" : { "arch" : "X86", "image_id" : "c90fb553-2cdb-4b81-b56a-ef68812c6cf7", "name" : "Ubuntu18.04_x86_64_CPU", "server_type" : "ECS" }, "name" : "EI-evs-1107", "status" : "DELETING", "update_at" : 1699348285077 }
  • 响应参数 状态码: 200 表2 响应Body参数 参数 参数类型 描述 add_sample_count Long 新增样本数量。 create_time Long 任务创建时间。 dataset_id String 数据集ID。 deleted_sample_count Long 已删除样本数量。 duration_time Long 任务运行时间。 error_code String 错误码。 error_msg String 错误信息。 status String 任务当前状态。可选值如下: QUEUING:排队中 STARTING:开始执行 RUNNING:运行中 COMPLETED:已完成 FAILED:已失败 NOT_EXIST:任务不存在 task_id String 同步任务ID。 total_sample_count Long 总样本数量。
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 current Integer 当前页数。 data Array of ImageResponse objects 数据。 pages Integer 总的页数。 size Integer 每一页的数量。 total Long 总的记录数量。 表4 ImageResponse 参数 参数类型 描述 arch String 该镜像所支持处理器架构类型。枚举值如下: X86_64:x86处理器架构。 AARCH64:ARM体系架构。 create_at Long 镜像创建的时间,UTC毫秒。 description String 该镜像所对应的描述信息,长度限制512个字符。 dev_services Array of strings 镜像支持的服务。枚举值如下: NOTEBOOK:镜像支持通过https协议访问Notebook。 SSH:镜像支持本地IDE通过SSH协议远程连接Notebook。 id String 待创建开发环境实例的镜像,需要指定镜像ID,ID格式为通用唯一识别码(Universally Unique Identifier,简称UUID)。预置镜像的ID参考查询支持的镜像列表获取。 name String 镜像名称,长度限制512个字符,支持小写字母、数字、中划线、下划线和点。 namespace String 镜像所属组织,可以在SWR控制台“组织管理”创建和查看。 origin String 指定镜像来源,可选项,默认自定义构建镜像为CUSTOMIZE。枚举值如下: CUSTOMIZE: 用户自定义构建镜像。 IMAGE_SAVE:开发环境实例保存镜像。 resource_categories Array of strings 镜像支持的规格。枚举值如下: CPU GPU ASCEND service_type String 镜像支持服务类型。枚举值如下: COMMON:通用镜像。 INFERENCE: 建议仅在推理部署场景使用。 TRAIN: 建议仅在训练任务场景使用。 DEV: 建议仅在开发调测场景使用。 UNKNOWN: 未明确设置的镜像支持的服务类型。 size Long 镜像大小(单位KB)。 status String 镜像状态。枚举值如下: INIT:初始化。 CREATING:镜像保存中,此时Notebook不可用。 CREATE_FAILED:镜像保存失败。 ERROR:错误。 DELETED:已删除。 ACTIVE:镜像保存成功,保存的镜像可以在SWR控制台查看,同时可以基于保存的镜像创建Notebook实例。 status_message String 镜像保存操作过程中,构建信息展示。 swr_path String SWR镜像地址。 tag String 镜像Tag。 type String 镜像类型。枚举值如下: BUILD_IN:系统内置镜像。 DEDICATED:用户保存的镜像。 update_at Long 镜像最后更新的时间,UTC毫秒。 visibility String 镜像可见度。枚举值: PRIVATE:私有镜像。 PUBLIC: 所有用户可以根据ImageId来进行只读使用。 workspace_id String 工作空间ID。未创建工作空间时默认值为“0”,存在创建并使用的工作空间,以实际取值为准。
  • 响应示例 状态码: 200 OK { "current" : 4, "data" : [ { "arch" : "x86_64", "create_at" : 1638841805439, "description" : "AI inference application development, preconfigured ModelBox and AI engine LibTorch, only SSH connection supported.", "dev_services" : [ "AI_FLOW", "SSH" ], "id" : "e1a07296-22a8-4f05-8bc8-e936c8e54103", "name" : "modelbox1.3.0-libtorch1.9.1-cuda10.2-cudnn8-euler2.9.6", "resource_categories" : [ "GPU" ], "service_type" : "TRAIN", "status" : "ACTIVE", "swr_path" : "swr.xxx.com/atelier/modelarts-modelbox-libtorch-gpu-x86:1.3.0-20221027202714-160a680", "tag" : "1.3.0-20221027202714-160a680", "type" : "BUILD_IN", "update_at" : 1638234504492, "workspace_id" : "0" }, { "arch" : "x86_64", "create_at" : 1638841805439, "description" : "CPU and GPU general algorithm development and training, preconfigured with AI engine PyTorch1.8", "dev_services" : [ "NOTEBOOK", "SSH" ], "id" : "278e88d1-5b71-4766-8502-b3ba72e824d9", "name" : "pytorch1.8-cuda10.2-cudnn7-ubuntu18.04", "resource_categories" : [ "GPU", "CPU" ], "service_type" : "COMMON", "status" : "ACTIVE", "swr_path" : "swr.xxx.com/atelier/pytorch_1_8:pytorch_1.8.0-cuda_10.2-py_3.7-ubuntu_18.04-x86_64-20220926104358-041ba2e", "tag" : "pytorch_1.8.0-cuda_10.2-py_3.7-ubuntu_18.04-x86_64-20220926104358-041ba2e", "type" : "BUILD_IN", "update_at" : 1638234504492, "workspace_id" : "0" } ], "pages" : 54, "size" : 2, "total" : 107 }
  • URI GET /v1/{project_id}/images 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 用户项目ID,获取方法请参见获取项目ID和名称。 表2 Query参数 参数 是否必选 参数类型 描述 limit 否 Integer 每一页的数量,默认值200。 name 否 String 镜像名称,长度限制512个字符,支持小写字母、数字、中划线、下划线和点。 name_fuzzy_match 否 Boolean 镜像名称是否模糊匹配,默认为true。 namespace 否 String 镜像所属组织,可以在SWR控制台“组织管理”创建和查看。 offset 否 Integer 分页记录的起始位置偏移量,默认值0。 service_type 否 String 镜像支持服务类型。枚举值如下: COMMON:通用镜像。 INFERENCE: 建议仅在推理部署场景使用。 TRAIN: 建议仅在训练任务场景使用。 DEV: 建议仅在开发调测场景使用。 UNKNOWN: 未明确设置的镜像支持的服务类型。 sort_dir 否 String 排序方式,ASC升序,DESC降序,默认DESC。 sort_key 否 String 排序的字段,多个字段使用(“,”)逗号分割。 type 否 String 镜像类型。枚举值如下: BUILD_IN:系统内置镜像。 DEDICATED:用户保存的镜像。 workspace_id 否 String 工作空间ID。未创建工作空间时默认值为“0”,存在创建并使用的工作空间,以实际取值为准。
  • 请求消息体 请求消息体通常以结构化格式发出,与请求消息头中Content-type对应,传递除请求消息头之外的内容。若请求消息体中参数支持中文,则中文字符必须为UTF-8编码。 每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根据具体接口而定。 对于获取用户Token接口,您可以从接口的请求部分看到所需的请求参数及参数说明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填写,其中user_name为用户名,domain_name为用户所属的账号名,user_password为用户登录密码,cn-north-1为项目名称,获取方法请参见获取用户名、获取账号名和账号ID和获取项目名称。 scope参数定义了Token的作用域,示例中获取的Token仅能访问project下的资源。Modelarts使用区域的Endpoint(非全局域名)调用该接口,推荐您将scope设置为project。您还可以设置Token作用域为某个账号下所有资源或账号的某个project下的资源,详细定义请参见获取用户Token。 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type:application/json { "auth": { "identity": { "methods": ["password"], "password": { "user": { "name": "user_name", "password": "user_password", "domain": { "name": "domain_name" } } } }, "scope": { "project": { "name": "cn-north-1" } } } } 到这里为止这个请求需要的内容就具备齐全了,您可以使用curl、Postman或直接编写代码等方式发送请求调用API。对于获取用户Token接口,返回的响应消息头中“x-subject-token”的值,就是需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。
  • 请求URI 请求URI由如下部分组成: {URI-scheme} :// {Endpoint} / {resource-path} ? {query-string} 表1 请求URI 参数 说明 URI-scheme 传输请求的协议,当前所有API均采用HTTPS协议。 Endpoint 承载REST服务端点的服务器域名或IP,不同服务在不同区域时,对应Endpoint不同,可以从终端节点中获取。 例如IAM服务在“华北-北京一”区域的Endpoint为“iam.cn-north-1.myhuaweicloud.com”。 resource-path 资源路径,即API访问路径。从具体API的URI模块获取,例如“获取用户Token”API的resource-path为“/v3/auth/tokens”。 query-string 查询参数,可选,查询参数前面需要带一个“?”,形式为“参数名=参数取值”,例如“limit=10”,表示查询不超过10条数据。 例如您需要获取“华北-北京一”区域的Token,则需使用“华北-北京一”区域的Endpoint(iam.cn-north-1.myhuaweicloud.com),并在获取用户Token的URI部分找到resource-path(/v3/auth/tokens),拼接起来如下所示。 https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens 图1 URI示意图 为查看方便,服务每个具体API的URI,只给出resource-path部分,并将请求方法写在一起。这是因为URI-scheme都是HTTPS,而Endpoint在同一个区域也相同,所以简洁起见将这两部分省略。
  • 请求方法 HTTP请求方法(也称为操作或动词),它告诉服务你正在请求什么类型的操作。 表2 HTTP方法 方法 说明 GET 请求服务器返回指定资源。 PUT 请求服务器更新指定资源。 POST 请求服务器新增资源或执行特殊操作。 DELETE 请求服务器删除指定资源,如删除对象等。 HEAD 请求服务器资源头部。 PATCH 请求服务器更新资源的部分内容。 当资源不存在的时候,PATCH可能会去创建一个新的资源。 在获取用户Token的URI部分,您可以看到其请求方法为“POST”,则其请求为: POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens
  • 请求消息头 附加请求头字段,如指定的URI和HTTP方法所要求的字段。例如定义消息体类型的请求头“Content-Type”,请求鉴权信息等。 需要添加到请求中的公共消息头如表3所示。 表3 公共请求消息头 参数名 说明 是否必选 示例 Content-type 消息体的类型(格式),默认取值为“application/json”。 是 application/json Content-Length 请求body长度,单位为Byte。 POST/PUT请求必填,GET不能包含。 3495 X-Project-Id project id,用于不同project取token。 否 e9993fc787d94b6c886cbaa340f9c0f4 X-Auth-Token 用户Token,也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 否,使用Token认证时必选。 - X-Sdk-Date 请求的发生时间,格式为(YYYYMMDD'T'HHMMSS'Z')。 取值为当前系统的GMT时间。 否,如果使用AK/SK做接口认证的时候,那么此字段必须设置;如果使用PKI token的时候,不必设置。 20190307T101459Z Authorization 签名认证信息。 该值来源于请求签名结果,使用AK/SK进行加密签名的时候需要。 类型:字符串 默认值:无 否,使用AK/SK认证时必选。 SDK-HMAC-SHA256 Credential=ZIRRKMTWPTQFQI1WKNKB/20150907//ec2/sdk_request, SignedHeaders=content-type;host;x-sdk-date, Signature=55741b610f3c9fa3ae40b5a8021ebf7ebc2a28a603fc62d25cb3bfe6608e1994 Host 请求的服务器信息,从服务API的URL中获取。 值为hostname[:port]。 端口缺省时使用默认的端口,https的默认端口为443。 否,使用AK/SK认证时必选。 code.test.com or code.test.com:443 API同时支持使用AK/SK认证,AK/SK认证是使用SDK对请求进行签名,签名过程会自动往请求中添加Authorization(签名认证信息)和X-Sdk-Date(请求发送的时间)请求头。AK/SK认证的详细说明请参见API签名指南。 对于获取用户Token接口,由于不需要认证,所以只添加“Content-Type”即可,添加消息头后的请求如下所示。 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json
  • URI GET /v2/{project_id}/algorithms 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 用户项目ID。获取方法请参见获取项目ID和名称。 表2 Query参数 参数 是否必选 参数类型 描述 offset 否 Integer 查询算法的偏移量,最小为0。例如设置为1,则表示从第二条开始查。 limit 否 Integer 查询算法的限制量。最小为1,最大为50。 sort_by 否 String 查询算法排列顺序的指标。默认使用create_time排序。 order 否 String 查询算法排列顺序,默认为“desc”,降序排序。也可以选择对应的“asc”,升序排序。 group_by 否 String 查询算法要搜索的分组条件。 searches 否 String 查询算法所要过滤的条件,如算法名称模糊匹配。 workspace_id 否 String 工作空间ID。
  • 响应示例 状态码: 200 ok { "total" : 1, "count" : 1, "limit" : 1, "offset" : 0, "sort_by" : "create_time", "order" : "desc", "group_by" : "", "items" : [ { "metadata" : { "id" : "2e5451fe-913f-4492-821a-2981031382f7", "name" : "TestModelArtsalgorithm", "description" : "This is a ModelArts algorithm", "create_time" : 1636600721742, "workspace_id" : "0", "ai_project" : "default-ai-project", "user_name" : "", "domain_id" : "xxxxxxxxxxxxxxxxxxxxxxxxxx", "source" : "custom", "api_version" : "", "is_valid" : true, "state" : "", "size" : 4791, "tags" : null, "attr_list" : null, "version_num" : 0, "update_time" : 0 }, "job_config" : { "code_dir" : "/algo-test/pytorch/work1/code/", "boot_file" : "/algo-test/pytorch/work1/code/test-pytorch.py", "command" : "", "parameters" : [ { "name" : "test-parameter", "description" : "", "i18n_description" : null, "value" : "10", "constraint" : { "type" : "String", "editable" : true, "required" : false, "sensitive" : false, "valid_type" : "None", "valid_range" : [ ] } } ], "parameters_customization" : true, "inputs" : [ { "name" : "data_url", "description" : "name to translate" } ], "outputs" : [ { "name" : "train_url", "description" : "name to translate" } ], "engine" : { "engine_id" : "pytorch-cp36-1.3.0", "engine_name" : "PyTorch", "engine_version" : "PyTorch-1.3.0-python3.6" }, "code_tree" : { "name" : "code/", "children" : [ { "name" : "test-pytorch.py" } ] } }, "resource_requirements" : null, "advanced_config" : { } } ] }
  • 功能介绍 创建处理任务,支持创建“特征分析”任务和“数据处理”两大类任务。可通过指定请求体中的复合参数“template”的“id”字段来创建某类任务。 “特征分析”是指基于图片或目标框对图片的各项特征,如模糊度、亮度进行分析,并绘制可视化曲线,帮助处理数据集。 “数据处理”是指从大量的、杂乱无章的、难以理解的数据中抽取或者生成对某些特定的人们来说是有价值、有意义的数据。“数据处理”又分为“数据校验”、“数据清洗”、“数据选择”和“数据增强”四类。 “数据校验”表示对数据集进行校验,保证数据合法。 “数据清洗”表示对数据进行去噪、纠错或补全的过程。 “数据选择”表示从全量数据中选择数据子集的过程。 “数据增强”表示通过简单的数据扩增例如缩放、裁剪、变换、合成等操作直接或间接的方式增加数据量。
  • 请求示例 创建特征分析任务。设置任务类型为“sys_data_analyse”。 { "name" : "V001", "description" : "", "data_source" : { "type" : "DATASET", "source" : "X6c3N3eztX7cr3Arvqu" }, "template" : { "id" : "sys_data_analyse", "operator_params" : [ { "id" : "sys_data_analyse", "params" : { "op_list" : [ ] } } ] }, "version_id" : "J4Eh2FDEWH1qnDlD3hQ" } 创建数据处理(数据校验)任务。设置任务类型为“sys_data_validation”。 { "name" : "PRE-e77c", "inputs" : [ { "type" : "DATASET", "source" : "PYc9H2HGv5BJNwBGXyK", "version_id" : "yoJ5ssClpNlOrsjjFDa" } ], "work_path" : { "type" : "DATASET", "path" : "PYc9H2HGv5BJNwBGXyK", "version_name" : "V0010" }, "description" : "", "create_version" : true, "template" : { "id" : "sys_data_validation", "operator_params" : [ { "name" : "MetaValidation", "advanced_params_switch" : false, "params" : { "task_type" : "image_classification", "dataset_type" : "manifest", "source_service" : "select", "filter_func" : "data_validation_select", "image_max_width" : "1920", "image_max_height" : "1920", "total_status" : "[0,1,2]" } } ] }, "workspace_id" : "0" } 创建数据处理(数据清洗)任务。设置任务类型为“sys_data_cleaning”。 { "name" : "PRE-330f", "inputs" : [ { "type" : "DATASET", "source" : "gfghHSokody6AJigS5A", "version_id" : "54IXbeJhfttGpL46lbv" } ], "work_path" : { "type" : "DATASET", "path" : "gfghHSokody6AJigS5A", "version_name" : "V004" }, "description" : "", "create_version" : true, "template" : { "id" : "sys_data_cleaning", "operator_params" : [ { "name" : "PCC", "advanced_params_switch" : false, "params" : { "task_type" : "image_classification", "dataset_type" : "manifest", "source_service" : "select", "filter_func" : "data_cleaning_select", "prototype_sample_path" : "obs://test-obs/classify/data/animals/", "criticism_sample_path" : "", "n_clusters" : "auto", "simlarity_threshold" : "0.9", "embedding_distance" : "0.2", "checkpoint_path" : "/home/work/user-job-dir/test-lxm/resnet_v1_50", "total_status" : "[0,2]", "do_validation" : "True" } } ] }, "workspace_id" : "0" } 创建数据处理(数据筛选)任务。设置任务类型为“sys_data_selection”。 { "name" : "PRE-aae5", "inputs" : [ { "type" : "DATASET", "source" : "gLNSdlQ1iAAmPgl0Won", "version_id" : "WAVPSYpKE3FggbgRxiK" } ], "work_path" : { "type" : "DATASET", "path" : "gLNSdlQ1iAAmPgl0Won", "version_name" : "V003" }, "description" : "", "create_version" : true, "template" : { "id" : "sys_data_selection", "operator_params" : [ { "name" : "SimDeduplication", "advanced_params_switch" : false, "params" : { "task_type" : "image_classification", "dataset_type" : "manifest", "source_service" : "select", "filter_func" : "data_deduplication_select", "simlarity_threshold" : "0.9", "total_status" : "[0,2]", "do_validation" : "True" } } ] }, "workspace_id" : "0" } 创建数据处理(数据增强)任务。设置任务类型为“sys_data_augmentation”。 { "name" : "PRE-637c", "inputs" : [ { "type" : "DATASET", "source" : "XGrRZuCV1qmMxnsmD5u", "version_id" : "kjPDTOSi6BQqhtXZlFv" } ], "work_path" : { "type" : "DATASET", "path" : "XGrRZuCV1qmMxnsmD5u", "version_name" : "V002" }, "description" : "", "create_version" : true, "template" : { "id" : "sys_data_augmentation", "operator_params" : [ { "name" : "AddNoise", "advanced_params_switch" : false, "params" : { "task_type" : "image_classification", "dataset_type" : "manifest", "AddNoise" : "1", "noise_type" : "Gauss", "loc" : "0", "scale" : "1", "lam" : "2", "p" : "0.01", "total_status" : "[3]", "filter_func" : "data_augmentation", "do_validation" : "True" } } ] }, "workspace_id" : "0" }
  • 从控制台获取项目ID和名称 从控制台获取项目ID(project_id)和名称(project name)的步骤如下: 注册并登录管理ModelArts控制台。 在页面右上角单击用户名,然后在下拉列表中单击“我的凭证”,进入“我的凭证”页面。 如果您登录的是华为云官网,而非管理控制台。在单击用户名后,选择下拉列表中的“帐号中心”,然后单击“管理我的凭证”进入“我的凭证”页面。 在“API凭证”页面的项目列表中查看项目ID和名称(即“项目”)。 图1 查看项目ID 多项目时,展开“所属区域”,从“项目ID”列获取子项目ID。
  • 调用API获取项目ID 项目ID通过调用查询指定条件下的项目信息API获取。 获取项目ID的接口为GET https://{iam-endpoint}/v3/projects,其中{iam-endpoint}为IAM的终端节点,可以从地区和终端节点处获取。 响应示例如下,例如ModelArts部署的区域为"cn-north-4",响应消息体中查找“name”为"cn-north-4",其中projects下的“id”即为项目ID。 { "projects": [{ "domain_id": "65382450e8f64ac0870cd180d14e684b", "is_domain": false, "parent_id": "65382450e8f64ac0870cd180d14e684b", "name": "cn-north-4", "description": "", "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects/a4a5d4098fb4474fa22cd05f897d6b99" }, "id": "a4a5d4098fb4474fa22cd05f897d6b99", "enabled": true }], "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects" } }
  • 响应示例 状态码: 200 服务列表 { "total_count" : 1, "count" : 1, "services" : [ { "failed_times" : 1, "owner" : "b575785bcece44beb23597770fb819f9", "infer_type" : "real-time", "service_name" : "mnist", "description" : "", "project" : "b575785bcece44beb23597770fb819f9", "invocation_times" : 50, "publish_at" : 1243143243, "workspace_id" : 0, "is_shared" : false, "service_id" : "195c1f2d-136d-40af-a0f3-db5717d2634a", "shared_count" : 0, "tenant" : "b575785bcece44beb23597770fb819f9", "status" : "running" } ] }
  • URI GET /v1/{project_id}/services 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 用户项目ID。获取方法请参见获取项目ID和名称。 表2 Query参数 参数 是否必选 参数类型 描述 service_id 否 String 服务ID,默认不过滤服务ID。 service_name 否 String 服务名称,默认不过滤服务名。 model_id 否 String 模型ID,默认不过滤模型ID。 workspace_id 否 String 工作空间ID,未配置则只查询默认工作空间。 infer_type 否 String 推理方式,默认不过滤推理方式。取值包含: real-time:在线服务 batch:批量服务 edge: 边缘服务 status 否 String 服务状态,默认不过滤服务状态,取值包含: running:运行中,服务正常运行。 deploying:部署中,服务正在部署,包含打镜像和调度资源部署。 concerning:告警,后端实例部分存在异常。 failed:失败,服务部署失败,失败原因可以看事件和日志标签页。 stopped:停止。 finished:只有批量服务会有这个状态,表示运行完成。 stopping: 停止中。 deleting: 删除中。 pending: 待启动,仅在线有这个状态。 waiting: 资源排队中,仅在线服务有这个状态。 offset 否 Integer 分页列表的起始页,默认为0。 limit 否 Integer 指定每一页返回的最大条目数,默认为1000。 sort_by 否 String 指定排序字段,枚举值如下: publish_at: 服务发布时间,默认值 service_name: 服务名称 transition_at:更新时间 order 否 String 排序方式,枚举值如下: asc : 递增排序 desc: 递减排序,默认值 tags 否 String 标签,默认不过滤标签。
  • 请求示例 批量更新团队标注样本的标签 { "samples" : [ { "sample_id" : "0a0939d6d3c48a3d2a2619245943ac21", "worker_id" : "8c15ad080d3eabad14037b4eb00d6a6f", "labels" : [ { "name" : "tulips" } ] }, { "sample_id" : "0e1b5a16a5a577ee53aeb34278a4b3e7", "worker_id" : "8c15ad080d3eabad14037b4eb00d6a6f", "labels" : [ { "name" : "tulips" } ] } ] }
  • 响应参数 状态码: 200 表7 响应Body参数 参数 参数类型 描述 error_code String 操作失败的错误码。 error_msg String 操作失败的错误信息。 results Array of BatchResponse objects 批量更新样本标签的响应结果列表。 success Boolean 操作是否执行成功。可选值如下: true:执行成功 false:执行失败 表8 BatchResponse 参数 参数类型 描述 error_code String 操作失败的错误码。 error_msg String 操作失败的错误信息。 success Boolean 操作是否执行成功。可选值如下: true:执行成功 false:执行失败
  • URI PUT /v2/{project_id}/datasets/{dataset_id}/workforce-tasks/{workforce_task_id}/data-annotations/samples 表1 路径参数 参数 是否必选 参数类型 描述 dataset_id 是 String 数据集ID。 project_id 是 String 用户项目ID。获取方法请参见获取项目ID和名称。 workforce_task_id 是 String 标注任务ID。
  • 工作空间管理权限 表1 工作空间管理细化权限说明 权限 对应API接口 授权项 依赖的授权项 IAM项目 企业项目 创建工作空间 POST /v1/{project_id}/workspaces modelarts:workspace:create - √ √ 查询工作空间列表 GET /v1/{project_id}/workspaces modelarts:workspace:list - √ √ 查询工作空间详情 GET /v1/{project_id}/workspaces/{ws_id} modelarts:workspace:get - √ √ 修改工作空间 PUT /v1/{project_id}/workspaces/{ws_id} modelarts:workspace:update - √ √ 删除工作空间 DELETE /v1/{project_id}/workspaces/{ws_id} modelarts:workspace:delete modelarts:service:delete modelarts:model:delete modelarts:tensorboard:delete modelarts:trainJob:delete modelarts:exemlProject:deletemodelarts:notebook:delete modelarts:dataset:delete modelarts:notebook:delete - √ √ 查询工作空间配额 GET /v1/{project_id}/workspaces/{workspace_id}/quotas modelarts:workspace:getQuotas - √ √ 修改工作空间配额 PUT /v1/{project_id}/workspaces/{workspace_id}/quotas modelarts:workspace:updateQuotas - √ √ 父主题: 权限策略和授权项
  • 响应示例 状态码: 200 OK { "current" : 0, "data" : [ { "description" : "api-test", "feature" : "DEFAULT", "flavor" : "modelarts.vm.cpu.free", "id" : "f9937afa-ca78-45b6-bc12-7ecf42553c48", "image" : { "id" : "e1a07296-22a8-4f05-8bc8-e936c8e54090", "name" : "notebook2.0-mul-kernel-cpu-cp36", "swr_path" : "swr.xxxxx.com/atelier/notebook2.0-mul-kernel-cpu-cp36:3.3.2-release_v1", "type" : "BUILD_IN" }, "lease" : { "create_at" : 1638841805439, "duration" : 3600000, "enable" : true, "update_at" : 1638841805439 }, "name" : "notebook_5ee4bf0e", "status" : "CREATING", "token" : "58ba50c6-e8ff-245c-4840-49e51aa70737", "volume" : { "category" : "EVS", "ownership" : "MANAGED", "mount_path" : "/home/ma-user/work/", "capacity" : 50 }, "workspace_id" : "0" }, { "description" : "api-test", "feature" : "NOTEBOOK", "flavor" : "modelarts.vm.cpu.2u", "id" : "f9937afa-4451-42db-a76b-72d624749f66", "image" : { "id" : "e1a07296-22a8-4f05-8bc8-e936c8e54090", "name" : "notebook2.0-mul-kernel-cpu-cp36", "swr_path" : "swr.xxxxx.com/atelier/notebook2.0-mul-kernel-cpu-cp36:3.3.2-release_v1", "type" : "BUILD_IN" }, "lease" : { "create_at" : 1638841744515, "duration" : 3600000, "enable" : true, "update_at" : 1638841744515 }, "name" : "notebooks_test", "status" : "CREATING", "token" : "3eff13f2-3d70-5456-6dc7-e3f99f562022", "volume" : { "category" : "EVS", "ownership" : "MANAGED", "mount_path" : "/home/ma-user/work/", "capacity" : 50 }, "workspace_id" : "0" } ], "pages" : 1, "size" : 10, "total" : 2 }
  • URI GET /v1/{project_id}/notebooks 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 用户项目ID,获取方法请参见获取项目ID和名称。 表2 Query参数 参数 是否必选 参数类型 描述 feature 否 String 实例类别,默认为NOTEBOOK。枚举值如下: DEFAULT:CodeLab免费规格实例,每个用户最多只能创建一个。 NOTEBOOK:计费规格实例。 limit 否 Integer 每一页的数量,默认值10。 name 否 String 实例名称,限制128个字符,支持大小写字母、数字、中划线和下划线;模糊匹配。 pool_id 否 String 专属资源池ID。 offset 否 Integer 分页记录的起始位置偏移量,默认值0。 owner 否 String 实例归属的User Id,长度位32位小写字母、数字,在大账号/有admin权限场景下生效,值通常为当前登录用户ID。 sort_dir 否 String 排序方式,ASC升序,DESC降序,默认DESC。 sort_key 否 String 排序的字段,多个字段使用(“,”)逗号分割。 status 否 String 实例状态。枚举值如下: INIT:初始化 CREATING:创建中 STARTING:启动中 STOPPING:停止中 DELETING:删除中 RUNNING:运行中 STOPPED:已停止 SNAPSHOTTING:快照中(保存镜像时的状态) CREATE_FAILED:创建失败 START_FAILED:启动失败 DELETE_FAILED:删除失败 ERROR:错误 DELETED:已删除 FROZEN:冻结 workspaceId 否 String 工作空间ID。未创建工作空间时默认值为“0”,存在创建并使用的工作空间,以实际取值为准。
  • 概述 创建数据集并进行标注的流程如下: 调用认证鉴权接口获取用户Token,在后续的请求中需要将Token放到请求消息头中作为认证。 调用创建数据集接口创建一个图像分类类型的数据集。 调用查询数据集详情接口根据数据集ID查询数据集的详情。 调用查询样本列表接口根据数据集ID获取数据集的样本详情。 调用批量更新样本标签接口根据数据集ID和样本ID给样本添加标签进行人工标注。 调用查询数据集的统计信息接口查看数据集的标注统计信息。 当数据集使用完成或不再使用时,调用删除数据集接口删除数据集。
  • 操作步骤 调用认证鉴权接口获取用户的Token。 请求消息体: URI格式:POST https://{iam_endpoint}/v3/auth/tokens 请求消息头:Content-Type →application/json 请求Body: { "auth": { "identity": { "methods": ["password"], "password": { "user": { "name": "user_name", "password": "user_password", "domain": { "name": "domain_name" } } } }, "scope": { "project": { "name": "cn-north-1" } } } } 其中,加粗的斜体字段需要根据实际值填写: iam_endpoint为IAM的终端节点。 user_name为IAM用户名。 user_password为用户登录密码。 domain_name为用户所属的账号名。 cn-north-1为项目名,代表服务的部署区域。 返回状态码“201 Created”,在响应Header中获取“X-Subject-Token”的值即为Token,如下所示: x-subject-token →MIIZmgYJKoZIhvcNAQcCoIIZizCCGYcCAQExDTALBglghkgBZQMEAgEwgXXXXXX... 调用创建数据集接口创建一个图像分类类型的数据集。 请求消息体: URI格式:POST https://{ma_endpoint}/v2/{project_id}/datasets 请求消息头: X-auth-Token →MIIZmgYJKoZIhvcNAQcCoIIZizCCGYcCAQExDTALBglghkgBZQMEAgEwgXXXXXX... Content-Type →application/json 请求body: { "workspace_id" : "0", "dataset_name" : "dataset-f9e8", "dataset_type" : 0, "data_sources" : [ { "data_type" : 0, "data_path" : "/test-obs/classify/input/cat-dog/" } ], "description" : "", "work_path" : "/test-obs/classify/output/", "work_path_type" : 0, "labels" : [ { "name" : "Cat", "type" : 0, "property" : { "@modelarts:color" : "#3399ff" } }, { "name" : "Dog", "type" : 0, "property" : { "@modelarts:color" : "#3399ff" } } ] } 其中,加粗的斜体字段需要根据实际值填写: ma_endpoint为ModelArts的终端节点。 project_id为用户的项目ID。 X-auth-Token的值为获取到的Token值。 “dataset_name”为创建的数据集名称。 “dataset_type”为“0”表示数据集类型为图像分类。 “data_path”为数据源所在的存储路径。 “work_path”为数据集输出位置。 “labels”为数据集的标签列表,填写标签信息。 返回状态码为“201 Created”,响应Body如下: { "dataset_id": "2MCIopOFu0bOmSxFkZ4" } “dataset_id”为新建的数据集ID,记录该值用于后续步骤。 调用查询数据集详情接口根据数据集ID查询数据集的详情。 请求消息体: URI格式:GET https://{ma_endpoint}/v2/{project_id}/datasets/{dataset_id} 请求消息头:X-auth-Token →MIIZmgYJKoZIhvcNAQcCoIIZizCCGYcCAQExDTALBglghkgBZQMEAgEwgXXXXXX... 其中,加粗的斜体字段需要根据实际值填写,dataset_id为上一步记录的数据集ID。 返回状态码为“200 OK”,响应Body如下所示: { "dataset_id" : "DINKm5SUIDhhGb1eWm3", "dataset_name" : "dataset-f9e8", "dataset_type" : 0, "data_format" : "Default", "next_version_num" : 4, "status" : 1, "data_sources" : [ { "data_type" : 0, "data_path" : "/test-obs/classify/input/cat-dog/" } ], "create_time" : 1605690595404, "update_time" : 1605690595404, "description" : "", "current_version_id" : "54IXbeJhfttGpL46lbv", "current_version_name" : "V003", "total_sample_count" : 10, "annotated_sample_count" : 10, "unconfirmed_sample_count" : 0, "work_path" : "/test-obs/classify/output/", "inner_work_path" : "/test-obs/classify/output/dataset-f9e8-DINKm5SUIDhhGb1eWm3/", "inner_annotation_path" : "/test-obs/classify/output/dataset-f9e8-DINKm5SUIDhhGb1eWm3/annotation/", "inner_data_path" : "/test-obs/classify/output/dataset-f9e8-DINKm5SUIDhhGb1eWm3/data/", "inner_log_path" : "/test-obs/classify/output/dataset-f9e8-DINKm5SUIDhhGb1eWm3/logs/", "inner_temp_path" : "/test-obs/classify/output/dataset-f9e8-DINKm5SUIDhhGb1eWm3/temp/", "inner_task_path" : "/test-obs/classify/output/dataset-f9e8-DINKm5SUIDhhGb1eWm3/task/", "work_path_type" : 0, "workspace_id" : "0", "enterprise_project_id" : "0", "workforce_task_count" : 0, "feature_supports" : [ "0" ], "managed" : false, "import_data" : false, "ai_project" : "default-ai-project", "label_task_count" : 1, "dataset_format" : 0, "dataset_version_count" : 3, "dataset_version" : "v1", "content_labeling" : true, "labels" : [ { "name" : "Cat", "type" : 0, "property" : { "@modelarts:color" : "#3399ff" } }, { "name" : "Dog", "type" : 0, "property" : { "@modelarts:color" : "#3399ff" } } ] } 根据响应可以了解数据集详情,其中“status”为“1”表示数据集创建成功且状态正常。 调用查询样本列表接口根据数据集ID获取数据集的样本详情。 请求消息体: URI格式:GET https://{ma_endpoint}/v2/{project_id}/datasets/{dataset_id}/data-annotations/samples 请求消息头:X-auth-Token →MIIZmgYJKoZIhvcNAQcCoIIZizCCGYcCAQExDTALBglghkgBZQMEAgEwgXXXXXX... 其中,加粗的斜体字段需要根据实际值填写。 返回状态码为“200 OK”,响应Body如下所示: { "sample_count" : 2, "samples" : [ { "sample_id": "012f99f3cf405860130b6ed2350c2228", "sample_type": 0, "labels": [], "source": "https://test-obs.obs.{ma_endpoint}.com:443/classify/input/cat-dog/36502.jpg......", "preview": "https://test-obs.obs.{ma_endpoint}.com:443/classify/input/cat-dog/36502.jpg......", "metadata": { "@modelarts:source_image_info": "https://test-obs.obs.{ma_endpoint}.com:443/classify/input/cat-dog/36502.jpg......", "@modelarts:import_origin": 0 }, "sample_time": 1623914750831, "sample_status": "UN_ANNOTATION" }, { "sample_id": "0192f3acfb000666033a0f85c21577c7", "sample_type": 0, "labels": [], "source": "https://test-obs.obs.xxx.com:443/classify/input/cat-dog/36139.jpg......", "preview": "https://test-obs.obs.xxx.com:443/classify/input/cat-dog/36139.jpg......", "metadata": { "@modelarts:source_image_info": "https://test-obs.obs.xxx.com:443/classify/input/cat-dog/36139.jpg......", "@modelarts:import_origin": 0 }, "sample_time": 1623914751076, "sample_status": "UN_ANNOTATION" } ] } 根据响应可以了解数据集的样本数量,以及每个样本的详细信息,其中“sample_count”为“2”表示该数据集共有2个样本,记录“sample_id”(样本ID)用于后续人工标注。 调用批量更新样本标签接口根据数据集ID和样本ID给样本添加标签进行人工标注。 请求消息体: URI格式:PUT https://{ma_endpoint}/v2/{project_id}/datasets/{dataset_id}/data-annotations/samples 请求消息头: X-auth-Token →MIIZmgYJKoZIhvcNAQcCoIIZizCCGYcCAQExDTALBglghkgBZQMEAgEwgXXXXXX... Content-Type →application/json 请求body: { "samples" : [ { "sample_id" : "012f99f3cf405860130b6ed2350c2228", "labels" : [ { "name" : "Cat" } ] }, { "sample_id" : "0192f3acfb000666033a0f85c21577c7", "labels" : [ { "name" : "Dog" } ] } ] } 其中,加粗的字段需要根据实际值填写: “sample_id”为要标注的样本ID,为上一步记录的值。 “labels”为样本需要标注的标签。 返回状态码为“200 OK”表示标注成功,响应Body如下所示: { "success" : true } 调用查询数据集的统计信息接口查看数据集的标注统计信息。 消息请求体: URI格式:GET https://{ma_endpoint}/v2/{project_id}/datasets/{dataset_id}/data-annotations/stats 请求消息头:X-auth-Token →MIIZmgYJKoZIhvcNAQcCoIIZizCCGYcCAQExDTALBglghkgBZQMEAgEwgXXXXXX... 其中,加粗的斜体字段需要根据实际值填写。 返回状态码为“200 OK”,响应Body如下所示: { "label_stats": [ { "name": "Cat", "type": 0, "property": { "@modelarts:color": "#3399ff" }, "count": 5, "sample_count": 2 }, { "name": "Dog", "type": 0, "property": { "@modelarts:color": "", "@modelarts:shortcut": "" }, "count": 4, "sample_count": 3 } ], "sample_stats": { "un_annotation": 10, "all": 15, "total": 15, "deleted": 0, "manual_annotation": 5, "auto_annotation": 0, "lefted": 15 }, "key_sample_stats": { "total": 15, "non_key_sample": 15, "key_sample": 0 }, "deletion_stats": {}, "metadata_stats": {}, "data_spliting_enable": true } 根据响应可以了解数据集的标签统计信息、样本状态统计信息等。 当数据集使用完成或不再使用时,调用删除数据集接口删除数据集。 请求消息体: URI格式:DELETE https://{ma_endpoint}/v2/{project_id}/datasets/{dataset_id} 请求消息头: X-auth-Token →MIIZmgYJKoZIhvcNAQcCoIIZizCCGYcCAQExDTALBglghkgBZQMEAgEwgXXXXXX... Content-Type →application/json 其中,加粗的斜体字段需要根据实际值填写。 返回状态码“204 No Content”表示数据集删除成功。
  • 响应示例 状态码: 200 OK { "resource_id" : "XGrRZuCV1qmMxnsmD5u", "create_time" : "2020-11-23 11:08:20", "progress" : 10.0, "status" : 1, "message" : "Start to export annotations. Export task id is jMZGm2SBp4Ymr2wrhAK", "code" : "ModelArts.4902", "elapsed_time" : 0, "result" : { "total_sample_count" : 49, "annotated_sample_count" : 30 }, "export_type" : 0, "config" : { "ambiguity" : false, "worker_server_num" : 0, "collect_sample" : false, "algorithm_type" : "fast", "image_brightness" : false, "image_colorfulness" : false } }
共100000条