华为云用户手册

  • 响应示例 状态码: 200 OK { "label_stats" : [ { "name" : "Bees", "type" : 1, "property" : { "@modelarts:color" : "#3399ff" }, "count" : 8, "sample_count" : 5 } ], "sample_stats" : { "un_annotation" : 309, "all" : 317, "total" : 317, "deleted" : 0, "manual_annotation" : 8, "auto_annotation" : 0, "lefted" : 317 }, "key_sample_stats" : { "total" : 317, "non_key_sample" : 315, "key_sample" : 2 }, "metadata_stats" : { }, "data_spliting_enable" : false }
  • URI GET /v2/{project_id}/datasets/{dataset_id}/data-annotations/stats 表1 路径参数 参数 是否必选 参数类型 描述 dataset_id 是 String 数据集ID。 project_id 是 String 用户项目ID。获取方法请参见获取项目ID和名称。 表2 Query参数 参数 是否必选 参数类型 描述 email 否 String 标注团队成员邮箱。 locale 否 String 语言。可选值如下: zh-cn:中文 en-us:英文(默认值) sample_state 否 String 查询指定样本状态下的统计信息。可选样本状态如下: __ALL__:已标注 __NONE__:未标注 __UNCHECK__:待验收 __ACCEPTED__:验收通过 __REJECTED__:已驳回 __UNREVIEWED__:待审核 __REVIEWED__:已审核 __WORKFORCE_SAMPLED__:已采样 __WORKFORCE_SAMPLED_UNCHECK__:采样待验收 __WORKFORCE_SAMPLED_CHECKED__:采样已验收 __WORKFORCE_SAMPLED_ACCEPTED__:采样已通过 __WORKFORCE_SAMPLED_REJECTED__:采样已驳回 __AUTO_ANNOTATION__:待确认
  • 响应示例 状态码: 200 服务部署规格列表。 { "total_count" : 3, "count" : 3, "specifications" : [ { "specification" : "modelarts.vm.cpu.2u", "billing_spec" : "modelarts.vm.cpu.2u", "category" : "CPU", "cpu_info" : { "arch" : "x86", "cpu" : 2.0 }, "memory_info" : { "unit" : "GB", "memory" : 8 }, "gpu_info" : { "unit" : "MB", "gpu" : 0.0, "memory" : 0 }, "npu_info" : { "unit" : "MB", "npu" : 0, "memory" : 0 }, "display_en" : "CPU: 2 vCPUs | 8 GiB", "display_cn" : "CPU: 2 Core 8 GiB", "is_open" : true, "spec_status" : "normal", "is_free" : false, "over_quota" : false, "extend_params" : 1 }, { "specification" : "modelarts.vm.gpu.pnt004", "billing_spec" : "modelarts.vm.gpu.pnt004", "category" : "GPU", "cpu_info" : { "arch" : "x86", "cpu" : 8.0 }, "memory_info" : { "unit" : "GB", "memory" : 32 }, "gpu_info" : { "unit" : "GB", "brand" : "NVIDIA", "version" : "Pnt004", "gpu" : 1.0, "memory" : 16 }, "npu_info" : { "unit" : "MB", "npu" : 0, "memory" : 0 }, "display_en" : "CPU: 8 vCPUs | 32 GiB GPU:Pnt004", "display_cn" : "CPU:8 Core 32 GiB GPU:1 * Pnt004", "is_open" : true, "spec_status" : "normal", "is_free" : false, "over_quota" : false, "extend_params" : 1 }, { "specification" : "modelarts.vm.ai1.snt3", "billing_spec" : "modelarts.vm.ai1.snt3", "category" : "NPU", "cpu_info" : { "arch" : "x86", "cpu" : 2.0 }, "memory_info" : { "unit" : "GB", "memory" : 8 }, "gpu_info" : { "unit" : "MB", "gpu" : 0.0, "memory" : 0 }, "npu_info" : { "unit" : "GB", "brand" : "Ascend", "version" : "Snt3", "npu" : 1, "memory" : 8 }, "display_en" : "CPU: 2 vCPUs | 8 GiB Ascend: 1 x Ascend snt3", "display_cn" : "CPU:2 Core 8 GiB Ascend: 1 * Ascend snt3", "is_open" : false, "spec_status" : "normal", "is_free" : false, "over_quota" : false, "extend_params" : 1 } ] }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 total_count Integer 部署服务规格总数。 count Integer 当前列表的规格数量。 specifications Array of Specification objects 支持的服务部署规格列表。 表5 Specification 参数 参数类型 描述 is_open Boolean 是否开放此规格,默认是true;取值为false时,用户需要提工单申请才可使用此规格。 spec_status String 规格状态,取值为: normal:正常。 sellout:售罄,售罄时无法使用此规格部署服务。 specification String 规格的唯一标识。 billing_spec String 计费对应规格的唯一标识。 category String 规格类型。 cpu_info CpuInfo object 规格的CPU信息。 memory_info MemoryInfo object 规格的内存信息。 gpu_info GpuInfo object 规格的GPU信息。 npu_info NpuInfo object 规格的NPU信息。 source_type String 此规格应用于模型的类型,取值为空或auto,默认为空,代表是用户自己产生的模型;取值为auto时,代表是自动学习训练的模型,计费方式有差别。 is_free Boolean 当前规格是否是免费规格,“true”表示是免费规格。 over_quota Boolean 当前规格是否超过可用配额,“true”表示超过可用配额。 extend_params Integer 计费因子。 display_en String 规格的英文描述。 display_cn String 规格的中文描述。 表6 CpuInfo 参数 参数类型 描述 arch String 架构类型。 cpu Number CPU核心数。 表7 MemoryInfo 参数 参数类型 描述 unit String 单位。 memory Integer 内存大小。 表8 GpuInfo 参数 参数类型 描述 brand String 品牌。 version String 卡类型。 unit String 单位。 memory Integer 卡内存大小。 gpu Number GPU数。 表9 NpuInfo 参数 参数类型 描述 brand String 品牌。 version String 卡类型。 unit String 单位。 memory Integer 卡内存大小。 npu Integer NPU数。
  • URI GET /v1/{project_id}/services/specifications 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 用户项目ID。获取方法请参见获取项目ID和名称。 表2 Query参数 参数 是否必选 参数类型 描述 is_personal_cluster 否 Boolean 是否查询专属资源池支持的服务部署规格列表,默认为false。 infer_type 否 String 推理方式,枚举值如下: real-time:在线服务,默认值 batch:批量服务 edge: 边缘服务 limit 否 String 指定每一页返回的最大条目数,默认为1000。 offset 否 String 返回数据的起始偏移量,默认为0。
  • 响应示例 状态码: 200 OK { "labels" : [ { "name" : "Rabbits", "type" : 0, "property" : { "@modelarts:color" : "#3399ff" } }, { "name" : "Bees", "type" : 0, "property" : { "@modelarts:color" : "#3399ff" } } ], "metadata" : { }, "labelers" : [ "human/test_123/test_123", "human/xxx@xxx.com", "human/xxx@xxx.com" ] }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 error_code String 操作失败的错误码。 error_msg String 操作失败的错误信息。 results Array of BatchResponse objects 批量删除样本的响应列表。 success Boolean 操作是否执行成功。可选值如下: true:执行成功 false:执行失败 表4 BatchResponse 参数 参数类型 描述 error_code String 操作失败的错误码。 error_msg String 操作失败的错误信息。 success Boolean 操作是否执行成功。可选值如下: true:执行成功 false:执行失败
  • 请求参数 表2 请求Body参数 参数 是否必选 参数类型 描述 delete_source 否 Boolean 是否删除源文件,对非文本类型数据集有效(文本类型数据集因为是导入的整个文本文件,故删除一条样本不会对源文本有影响)。可选值如下: false:不删除源文件(默认值) true:删除源文件(注意:此操作可能影响已使用这些文件的数据集版本或其他数据集,导致页面展示异常或者训练/推理异常) samples 否 Array of strings 样本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/{dataset_id}/tasks 请求消息头: X-auth-Token →MIIZmgYJKoZIhvcNAQcCoIIZizCCGYcCAQExDTALBglghkgBZQMEAgEwgXXXXXX... Content-Type →application/json 其中,加粗的斜体字段需要根据实际值填写: ma_endpoint为ModelArts的终端节点。 project_id为用户的项目ID。 dataset_id为待启动智能标注任务的数据集ID。 X-auth-Token的值为获取到的Token值。 请求body: { "task_type" : "auto-label", "collect_key_sample" : true, "config" : { "algorithm_type" : "fast"} } 只有“task_type”填写“auto-label”才表示创建的是智能标注任务。 返回状态码为“200 OK”,响应Body如下所示: { "task_id": "7eAtpiNSaI1mCHJK3SJ" } “task_id”为创建的智能标注任务ID,记录该值用于后续步骤。 调用获取智能任务的信息接口根据智能标注的任务ID查询任务详情。 请求消息体: URI格式:GET https://{ma_endpoint}/v2/{project_id}/datasets/{dataset_id}/tasks/{task_id} 请求消息头:X-auth-Token →MIIZmgYJKoZIhvcNAQcCoIIZizCCGYcCAQExDTALBglghkgBZQMEAgEwgXXXXXX... 其中,加粗的斜体字段需要根据实际值填写,task_id为上一步记录的任务ID。 返回状态码为“200 OK”,响应Body如下所示: { "resource_id": "6mHUGe7ETlhayb4qDMN", "create_time": "2021-06-18 19:14:55", "progress": 30, "status": 1, "message": "Submit auto labeling task succeed, waiting for auto labeling task to finish. ", "code": "ModelArts.4914", "elapsed_time": 55, "result": { "total_sample_count": 30, "annotated_sample_count": 28, "events": [ { "name": "start", "create_time": 1624014895314, "elapsed_time": 21, "ordinal": 1, "level": 1, "status": "success" }, { "name": "init", "create_time": 1624014916770, "elapsed_time": 0, "ordinal": 2, "level": 1, "status": "success" }, { "name": "labeling", "create_time": 1624014916770, "ordinal": 3, "level": 1, "events": [ { "name": "jobstat_init", "create_time": 1624014927183, "elapsed_time": 0, "ordinal": 1, "level": 2, "status": "success" }, { "name": "jobstat_waiting", "create_time": 1624014927184, "elapsed_time": 0, "ordinal": 2, "level": 2, "status": "success" }, { "name": "jobstat_running", "create_time": 1624014927184, "elapsed_time": 20, "ordinal": 3, "level": 2, "status": "running" }, { "name": "jobstat_completed", "ordinal": 4, "level": 2, "status": "waiting" } ], "status": "running" }, { "name": "result_processing", "ordinal": 4, "level": 1, "status": "waiting" }, { "name": "end", "ordinal": 5, "level": 1, "status": "waiting" } ], "train_job_name": "AUTO_TRAINING_cls_6mHUGe7ETlhayb4qDMN_7eAtpiNSaI", "train_job_id": "932777", "version_id": "1777740", "continuity": false }, "export_type": 0, "config": { "ambiguity": false, "name": "ouIsrAuG226MgMknu9j", "worker_server_num": 0, "collect_sample": false, "confidence_scope": "0.0-0.5", "algorithm_type": "fast", "image_brightness": false, "image_colorfulness": false } } 根据响应可以了解智能标注任务详情,其中“progress”为“30”表示当前任务进度为30%,“status”为“1”表示任务状态为在运行中。 待智能标注任务完成后,调用查询智能标注的样本列表接口可以查看标注结果。 请求消息体: URI格式:GET https://{ma_endpoint}/v2/{project_id}/datasets/{dataset_id}/auto-annotations/samples 请求消息头:X-auth-Token →MIIZmgYJKoZIhvcNAQcCoIIZizCCGYcCAQExDTALBglghkgBZQMEAgEwgXXXXXX... 其中,加粗的斜体字段需要根据实际值填写。 返回状态码为“200 OK”,响应Body如下所示: { "sample_count": 2, "samples": [ { "sample_id": "44827d0dc5fd6ff5be6dd0e14103121e", "sample_type": 0, "labels": [ { "name": "rose", "type": 0, "id": "1", "property": { "@modelarts:hard_coefficient": "0.0", "@modelarts:hard": "false" }, "score": 1 } ], "source": "https://test.obs.{ma_endpoint}.com:443/DATASETS/input/145862135_ab710de93c_n.jpg......", "preview": "https://test.obs.{ma_endpoint}.com:443/DATASETS/input/145862135_ab710de93c_n.jpg......", "metadata": { "@modelarts:new_source": "s3://test/DATASETS/input/145862135_ab710de93c_n.jpg", "@modelarts:hard_coefficient": 1, "@modelarts:origin_source": "s3://test/DATASETS/input/145862135_ab710de93c_n.jpg", "@modelarts:hard": true, "@modelarts:source_image_info": "https://test.obs.{ma_endpoint}.com:443/DATASETS/input/145862135_ab710de93c_n.jpg......", "@modelarts:data_checked": true, "@modelarts:origin_source_id": "44827d0dc5fd6ff5be6dd0e14103121e", "@modelarts:import_origin": 0, "@modelarts:size": [ 320, 238, 3 ], "@modelarts:check_result": [ { "language": "en-us", "result_property": 0, "result_descriptions": [] }, { "language": "zh-cn", "result_property": 0, "result_descriptions": [] } ], "@modelarts:hard_reasons": [ 3 ] }, "sample_time": 1623922030282, "sample_status": "UN_ANNOTATION", "annotated_by": "" }, { "sample_id": "1b87c42574ddc1faf05580d2e3a7bd4f", "sample_type": 0, "labels": [ { "name": "dasiy", "type": 0, "id": "1", "property": { "@modelarts:hard_coefficient": "0.0", "@modelarts:hard": "false" }, "score": 1 } ], "source": "https://test.obs.{ma_endpoint}.com:443/DATASETS/input/153210866_03cc9f2f36.jpg?......", "preview": "https://test.obs.{ma_endpoint}.com:443/DATASETS/input/153210866_03cc9f2f36.jpg?......", "metadata": { "@modelarts:new_source": "s3://test/DATASETS/input/153210866_03cc9f2f36.jpg", "@modelarts:hard_coefficient": 0, "@modelarts:origin_source": "s3://test/DATASETS/input/153210866_03cc9f2f36.jpg", "@modelarts:hard": false, "@modelarts:source_image_info": "https://test.obs.{ma_endpoint}.com:443/DATASETS/input/153210866_03cc9f2f36.jpg?......", "@modelarts:data_checked": true, "@modelarts:origin_source_id": "1b87c42574ddc1faf05580d2e3a7bd4f", "@modelarts:import_origin": 0, "@modelarts:size": [ 500, 375, 3 ], "@modelarts:check_result": [ { "language": "en-us", "result_property": 0, "result_descriptions": [] }, { "language": "zh-cn", "result_property": 0, "result_descriptions": [] } ], "@modelarts:hard_reasons": [] }, "sample_time": 1623922028739, "sample_status": "UN_ANNOTATION", "annotated_by": "" } ] } 根据响应可以了解智能标注的样本数量和样本列表,由“sample_count”参数可知总共标注了2个样本,从“@modelarts:hard”参数可知有一个难例样本。 调用批量更新样本标签接口根据上一步获取的智能标注样本列表确认智能标注结果。 请求消息体: URI格式:PUT https://{ma_endpoint}/v2/{project_id}/datasets/{dataset_id}/data-annotations/samples 请求消息头: X-auth-Token →MIIZmgYJKoZIhvcNAQcCoIIZizCCGYcCAQExDTALBglghkgBZQMEAgEwgXXXXXX... Content-Type →application/json 其中,加粗的字段需要根据实际值填写。 复制上一步的响应body,只保留“sample_id”和“labels”字段直接作为请求body,如下所示: { "samples": [ { "sample_id": "44827d0dc5fd6ff5be6dd0e14103121e", "labels": [ { "name": "rose", "type": 0, "id": "1", "property": { "@modelarts:hard_coefficient": "0.0", "@modelarts:hard": "false" }, "score": 1 } ], }, { "sample_id": "1b87c42574ddc1faf05580d2e3a7bd4f", "labels": [ { "name": "dasiy", "type": 0, "id": "1", "property": { "@modelarts:hard_coefficient": "0.0", "@modelarts:hard": "false" }, "score": 1 } ], } ] } 返回状态码为“200 OK”表示确认完成,响应Body如下所示: { "success" : true }
  • 前提条件 已获取IAM的EndPoint和ModelArts的EndPoint。 确认服务的部署区域,获取项目名称和ID、获取账号名和ID和获取用户名和ID。 已准备好用于智能标注的图像分类的数据集,并获取数据集ID,例如“6mHUGe7ETlhayb4qDMN”,数据集的创建和ID获取请参见创建图像分类数据集并进行标注任务。 用于智能标注的数据集必须存在至少2种标签,且每种标签已标注的图片不少于5张。 用于智能标注的数据集必须存在未标注图片。 检查用于标注的图片数据,确保您的图片数据中,不存在RGBA四通道图片。如果存在四通道图片,智能标注任务将运行失败,因此,请从数据集中删除四通道图片后,再启动智能标注。 启动智能标注前要保证当前数据集不存在正在进行中的智能标注任务。
  • 服务管理权限 表1 服务管理细化权限说明 权限 对应API接口 授权项 依赖的授权项 IAM项目 企业项目 部署模型服务 POST /v1/{project_id}/services modelarts:service:create - √ √ 查询模型服务列表 GET /v1/{project_id}/services modelarts:service:list - √ √ 查询模型服务详情 GET /v1/{project_id}/services/{service_id} modelarts:service:get - √ √ 更新模型服务 PUT /v1/{project_id}/services/{service_id} modelarts:service:update - √ √ 删除模型服务 DELETE /v1/{project_id}/services/{service_id} modelarts:service:delete - √ √ 启动停止服务 PUT /v1/{project_id}/services/{service_id} (request body携带status信息) modelarts:service:action - √ √ 启动停止边缘节点服务实例 PUT /v1/{project_id}/services/{service_id}/nodes/{node_id}/status (request body携带status信息) modelarts:nodeservice:action - √ √ 查询服务监控信息 GET /v1/{project_id}/services/{service_id}/monitor modelarts:service:getMonitor - √ √ 查询服务更新日志 GET /v1/{project_id}/services/{service_id}/logs modelarts:service:getLogs - √ √ 查询服务事件日志 GET /v1/{project_id}/services/{service_id}/events modelarts:service:getEvents - √ √ 父主题: 权限策略和授权项
  • 响应参数 状态码: 200 表2 响应Body参数 参数 参数类型 描述 total Integer 训练作业引擎规格总数。 items Array of items objects 引擎规格参数列表。 表3 items 参数 参数类型 描述 engine_id String 引擎规格的ID。如“caffe-1.0.0-python2.7”。 engine_name String 引擎规格的名称。如“Caffe”。 engine_version String 引擎规格的版本。对一个引擎名称,有多个版本的引擎,如使用python2.7的"Caffe-1.0.0-python2.7"等。 v1_compatible Boolean 是否为v1兼容模式。 run_user String 引擎默认启动用户uid。 image_info image_info object 引擎具体信息。 表4 image_info 参数 参数类型 描述 cpu_image_url String cpu规格下对应镜像。 gpu_image_url String gpu或者Ascend规格下对应镜像。 image_version String 镜像版本。
  • 响应示例 状态码: 200 ok { "total" : 20, "items" : [ { "engine_id" : "caffe-1.0.0-python2.7", "engine_name" : "Caffe", "engine_version" : "caffe-1.0.0-python2.7", "v1_compatible" : true, "run_user" : "", "image_info" : { "cpu_image_url" : "modelarts-job-dev-image/caffe1-cpu-cp27:1.0.0", "gpu_image_url" : "modelarts-job-dev-image/caffe1-gpu-cuda8-cp27:1.0.0", "image_version" : "3.1.0" } }, { "engine_id" : "horovod-cp36-tf-1.16.2", "engine_name" : "Horovod", "engine_version" : "0.16.2-TF-1.13.1-python3.6", "v1_compatible" : true, "run_user" : "", "image_info" : { "cpu_image_url" : "modelarts-job-dev-image/tensorflow-gpu-cuda10-cp36-horovod0162:1.13.1", "gpu_image_url" : "modelarts-job-dev-image/tensorflow-gpu-cuda10-cp36-horovod0162:1.13.1", "image_version" : "3.2.1" } }, { "engine_id" : "horovod_0.20.0-tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64", "engine_name" : "Horovod", "engine_version" : "horovod_0.20.0-tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64", "v1_compatible" : false, "run_user" : "1102", "image_info" : { "cpu_image_url" : "aip/horovod_tensorflow:train", "gpu_image_url" : "aip/horovod_tensorflow:train", "image_version" : "horovod_0.20.0-tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64-20210912152543-1e0838d" } }, "......", { "engine_id" : "tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64", "engine_name" : "TensorFlow", "engine_version" : "tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64", "v1_compatible" : false, "run_user" : "1102", "image_info" : { "cpu_image_url" : "aip/tensorflow_2_1:train", "gpu_image_url" : "aip/tensorflow_2_1:train", "image_version" : "tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64-20210912152543-1e0838d" } }, { "engine_id" : "xgboost-sklearn-python3.6", "engine_name" : "XGBoost-Sklearn", "engine_version" : "XGBoost-0.80-Sklearn-0.18.1-python3.6", "v1_compatible" : true, "run_user" : "", "image_info" : { "cpu_image_url" : "modelarts-job-dev-image/python-train-py36:secure", "gpu_image_url" : "", "image_version" : "2.0.10-20211101113705" } } ] }
  • Token认证 Token的有效期为24小时,需要使用同一个Token鉴权时,可以缓存起来,避免频繁调用。 Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限。 Token可通过调用获取用户Token接口获取,调用本服务API需要project级别的Token,即调用获取用户Token接口时,请求body中“auth.scope”的取值需要选择“project”,请求示例如下所示。 在构造请求中以调用获取用户Token接口为例说明了如何调用API。 { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "user_name", "password": "user_password", "domain": { "name": "domain_name" } } } }, "scope": { "project": { "name": "project_name" } } } } 获取Token后,再调用其他接口时,您需要在请求消息头中添加“X-Auth-Token”,其值即为Token。例如Token值为“ABCDEFJ....”,则调用接口时将“X-Auth-Token: ABCDEFJ....”加到请求消息头即可,如下所示。 GET https://modelarts.cn-north-1.myhuaweicloud.com/v1/{project_id}/services Content-Type: application/json X-Auth-Token: ABCDEFJ.... 您还可以通过这个视频教程了解如何使用Token认证:https://bbs.huaweicloud.com/videos/101333 。
  • AK/SK认证 AK/SK签名认证方式仅支持消息体大小12M以内,12M以上的请求请使用Token认证。 AK/SK认证就是使用AK/SK对请求进行签名,在请求时将签名信息添加到消息头,从而通过身份认证。 AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。 SK(Secret Access Key):与访问密钥ID结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。 使用AK/SK认证时,您可以基于签名算法使用AK/SK对请求进行签名,也可以使用专门的签名SDK对请求进行签名。详细的签名方法和SDK使用方法请参见API签名指南。 签名SDK只提供签名功能,与服务提供的SDK不同,使用时请注意。
  • 操作步骤 调用认证鉴权接口获取用户的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://{endpoint}/v1/{project_id}/workspaces 请求消息头: X-auth-Token →MIIZmgYJKoZIhvcNAQcCoIIZizCCGYcCAQExDTALBglghkgBZQMEAgEwgXXXXXX... Content-Type →application/json 请求Body: { "name": "test_workspace", "description": "It is my workspace", "enterprise_project_id": "0", "auth_type": "PUBLIC", "grants": [ { "user_id": "aa7efa8801024da08a7fa92dc0******", "user_name": "" } ] } 其中,加粗的斜体字段需要根据实际值填写: endpoint为ModelArts的终端节点。 project_id为用户的项目ID。 “X-auth-Token”是上一步获取到的Token值。 “user_id”为用户ID。 返回状态码“200 OK”,响应Body如下所示: { "id": "f3deca1406da4910a50f3919940b9bda", "name": "test_workspace", "description": "It is my workspace", "owner": "test166", "create_time": 1625453558000, "update_time": 1625453558000, "enterprise_project_id": "0", "enterprise_project_name": "default", "auth_type": "public", "status": "NORMAL", "status_info": "" } “id”为新建的工作空间ID,记录该值用于后续步骤。 调用查询工作空间详情接口根据工作空间ID查询工作空间的详细信息。 请求消息体: URI:GET https://{endpoint}/v1/{project_id}/workspaces/{workspaces_id} 请求消息头:X-auth-Token →MIIZmgYJKoZIhvcNAQcCoIIZizCCGYcCAQExDTALBglghkgBZQMEAgEwgXXXXXX... 其中,加粗的斜体字段需要根据实际值填写,“workspace_id”为2获取的工作空间ID。 返回状态码“200 OK”,响应Body如下所示: { "id": "f3deca1406da4910a50f3919940b9bda", "name": "test_workspace", "description": "It is my workspace", "owner": "test166", "create_time": 1625453558000, "update_time": 1625453558000, "enterprise_project_id": "0", "enterprise_project_name": "default", "auth_type": "public", "status": "NORMAL", "status_info": "" } 根据响应可以了解工作空间的详细信息,其中“status”为“NORMAL”表示工作空间的状态正常。 调用修改工作空间接口根据工作空间ID修改工作空间的名称、描述、授权类型等信息。 请求消息体: URI:PUT https://{endpoint}/v1/{project_id}/workspaces/{workspaces_id} 请求消息头: X-auth-Token →MIIZmgYJKoZIhvcNAQcCoIIZizCCGYcCAQExDTALBglghkgBZQMEAgEwgXXXXXX... Content-Type →application/json 请求Body: { "name": "new_name", "description": "update description", "auth_type":"INTERNAL", "grants": [ {"user_id": "aa7efa8801024da08a7fa92dc0******"} ] } 其中,加粗的斜体字段需要根据实际值填写,“name”和“description”填写要修改的工作空间名称和描述。 返回状态码“200 OK”表示修改完成,响应Body如下所示: { "workspace_id": "f3deca1406da4910a50f3919940b9bda" } 当不需要该工作空间时,可以调用删除工作空间接口删除工作空间。 请求消息体: URI:DELETE https://{endpoint}/v1/{project_id}/workspaces/{workspaces_id} 请求消息头:X-auth-Token →MIIZmgYJKoZIhvcNAQcCoIIZizCCGYcCAQExDTALBglghkgBZQMEAgEwgXXXXXX... 其中,加粗的斜体字段需要根据实际值填写。 返回状态码“200 OK”表示删除成功,响应Body如下所示: { "workspace_id": "f3deca1406da4910a50f3919940b9bda" }
  • URI GET /v1/{project_id}/services/{service_id}/logs 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 用户项目ID。获取方法请参见获取项目ID和名称。 service_id 是 String 服务ID。 表2 Query参数 参数 是否必选 参数类型 描述 update_time 否 Number 待过滤的更新时间,查询在线服务更新日志可使用,可准确过滤出某次更新任务;默认不过滤。
  • 响应示例 状态码: 200 服务更新日志 { "service_name" : "mnist", "service_id" : "195c1f2d-136d-40af-a0f3-db5717d2634a", "logs" : [ { "result" : "SUCCESS", "update_time" : 1574770228888, "config" : [ { "model_version" : "0.0.1", "specification" : "modelarts.vm.cpu.2u", "model_name" : "minst", "weight" : 100, "model_id" : "0e07b41b-173e-42db-8c16-8e1b44cc0d44", "instance_count" : 1 } ] } ] }
  • URI GET /v2/{project_id}/workforces/workers 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 用户项目ID。获取方法请参见获取项目ID和名称。 表2 Query参数 参数 是否必选 参数类型 描述 limit 否 Integer 指定每一页返回的最大条目数,取值范围[1,100],默认为10。 offset 否 Integer 分页列表的起始页,默认为0。 order 否 String 指定查询的排序顺序。可选值如下: asc:递增排序 desc:递减排序(默认值) role 否 Integer 根据成员角色过滤查询。可选值如下: 0:标注人员(默认值) 1:审核人员 2:团队管理员 sort_by 否 String 指定查询的排序方式。可选值如下: create_time:按创建时间排序(默认值) email:按邮件排序
  • 响应示例 状态码: 200 OK { "total_number" : 2, "workers" : [ { "email" : "xxx@xxx.com", "worker_id" : "df40e4afcb793d13f01f6c9022341e6f", "workforce_id" : "feSUo5NUIUnQAQNNTiS", "status" : 0, "role" : 2, "description" : "", "create_time" : 1595927749772, "update_time" : 1595927749772 }, { "email" : "xxx@xxx.com", "worker_id" : "27906df1d06c0827b7c24f761d618541", "workforce_id" : "XiL5RcHmxyIt3aYIOtI", "status" : 0, "role" : 2, "description" : "", "create_time" : 1590027298717, "update_time" : 1590027298717 } ] }
  • 响应示例 状态码: 200 OK { "total_number" : 1, "datasets" : [ { "dataset_id" : "gfghHSokody6AJigS5A", "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/animals/" } ], "create_time" : 1605690595404, "update_time" : 1605690595404, "description" : "", "current_version_id" : "54IXbeJhfttGpL46lbv", "current_version_name" : "V003", "total_sample_count" : 10, "annotated_sample_count" : 10, "work_path" : "/test-obs/classify/output/", "inner_work_path" : "/test-obs/classify/output/dataset-f9e8-gfghHSokody6AJigS5A/", "inner_annotation_path" : "/test-obs/classify/output/dataset-f9e8-gfghHSokody6AJigS5A/annotation/", "inner_data_path" : "/test-obs/classify/output/dataset-f9e8-gfghHSokody6AJigS5A/data/", "inner_log_path" : "/test-obs/classify/output/dataset-f9e8-gfghHSokody6AJigS5A/logs/", "inner_temp_path" : "/test-obs/classify/output/dataset-f9e8-gfghHSokody6AJigS5A/temp/", "inner_task_path" : "/test-obs/classify/output/dataset-f9e8-gfghHSokody6AJigS5A/task/", "work_path_type" : 0, "workspace_id" : "0", "enterprise_project_id" : "0", "exist_running_task" : false, "exist_workforce_task" : false, "running_tasks_id" : [ ], "workforce_task_count" : 0, "feature_supports" : [ "0" ], "managed" : false, "import_data" : false, "label_task_count" : 1, "dataset_format" : 0, "content_labeling" : true, "samples" : [ { "url" : "https://test-obs.obs.xxx.com:443/classify/input/animals/15.jpg?AccessKeyId=vprCCTY1NmHudlvC0bXr&Expires=1606100112&Signature=tuUo9jl6lqoMKAwNBz5g8dxO%2FdE%3D", "create_time" : 1605690596035 }, { "url" : "https://test-obs.obs.xxx.com:443/classify/input/animals/8.jpg?AccessKeyId=vprCCTY1NmHudlvC0bXr&Expires=1606100112&Signature=NITOdBnkUXtdnKuEgDzZpkQzNfM%3D", "create_time" : 1605690596046 }, { "url" : "https://test-obs.obs.xxx.com:443/classify/input/animals/9.jpg?AccessKeyId=vprCCTY1NmHudlvC0bXr&Expires=1606100112&Signature=%2BwUo1BL38%2F2d7p7anPi4fNzm1VU%3D", "create_time" : 1605690596050 }, { "url" : "https://test-obs.obs.xxx.com:443/classify/input/animals/7.jpg?AccessKeyId=vprCCTY1NmHudlvC0bXr&Expires=1606100112&Signature=tOrHfcWo%2FEJ0wRzfi1M5Wk2MrXg%3D", "create_time" : 1605690596043 } ] } ] }
  • URI GET /v2/{project_id}/datasets 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 用户项目ID。获取方法请参见获取项目ID和名称。 表2 Query参数 参数 是否必选 参数类型 描述 check_running_task 否 Boolean 是否检测数据集中正在运行(包括初始化)的任务。可选值如下: true:检测数据集中正在运行(包括初始化)的任务 false:不检测数据集中正在运行的任务(默认值) contain_versions 否 Boolean 数据集是否包含版本。 dataset_type 否 Integer 数据集类型。可选值如下: 0:图像分类 1:物体检测 3: 图像分割 100:文本分类 101:命名实体 102:文本三元组 200:声音分类 201:语音内容 202:语音分割 400:表格数据集 600:视频标注 900:自由格式 file_preview 否 Boolean 查询数据集的同时是否支持预览。可选值如下: true:支持预览,同时返回一部分数据集文件列表,每个数据集返回4个。 false:不支持预览(默认值)。 limit 否 Integer 指定每一页返回的最大条目数,取值范围[1,100],默认为10。 offset 否 Integer 分页列表的起始页,默认为0。 order 否 String 指定查询的排序顺序。可选值如下: asc:递增排序 desc:递减排序(默认值) running_task_type 否 Integer 指定需要检测的正在运行任务(包括初始化)的类型。可选值如下: 0:自动标注 1:预标注 2:导出任务 3:切换版本 4:导出manifest 5:导入manifest 6:发布版本 7:自动分组 search_content 否 String 模糊匹配名称,默认为空。 sort_by 否 String 指定查询的排序方式。可选值如下: create_time:按创建时间排序(默认值) dataset_name:按数据集名称排序 support_export 否 Boolean 是否过滤只支持导出的数据集(当前仅图像分类、物体检测、自由格式三种数据集支持导出),不传该参数或参数取值为false表示不过滤。可选值如下: true:过滤只支持导出的数据集 false:不过滤只支持导出的数据集(默认值) train_evaluate_ratio 否 String 根据版本切分比例筛选数据集。例如:“0.0,1.0”,根据逗号分隔最小和最大切分比例,筛选出切分比例在此范围内的版本。说明:如果参数值为空或无该参数,系统默认不根据版本切分比例筛选数据集。 version_format 否 Integer 根据数据集发布的版本格式筛选数据集,过滤出包含符合筛选条件的数据集列表。可选值如下: 0:默认格式 1:Carbon格式(仅表格数据集支持) 2:CSV格式 with_labels 否 Boolean 返回数据集的标签。可选值如下: true:返回标签信息 false:不返回标签信息(默认值) workspace_id 否 String 工作空间ID。未创建工作空间时默认值为“0”,存在创建并使用的工作空间,以实际取值为准。 dataset_version 否 String 数据集版本(用于区分标注任务解耦前的数据集和解耦后的数据集)。可选值如下: v1:数据集与标注任务解耦前的数据集(默认值) v2:数据集与标注任务解耦后的数据集 all:所有数据集
  • URI POST /v2/{project_id}/processor-tasks/{task_id}/versions/{version_id}/stop 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 用户项目ID。获取方法请参见获取项目ID和名称。 task_id 是 String 数据处理任务ID。 version_id 是 String 数据处理任务的版本ID。
  • 响应示例 状态码: 200 OK { "app" : { "app_id" : "f29eddd1443e4dceb76898f881c07a4d", "app_name" : "app_xq0XT", "app_remark" : "autotest", "app_key" : "bcb835430eab4c72bd45e2315d98fdb9", "app_secret" : "55816679b0f8447c9d51d2c35e4f679a", "user_id" : "04f258c8fb00d42a1f65c00df88cc4dc", "project_id" : "04f258c84780d5a52f3bc00dc15aa5e7", "app_type" : "APIG", "app_codes" : [ ], "created_at" : 1698745606957, "updated_at" : 1703162969843, "bounded_api_count" : 0 } }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 app ApigAppDetailInfo object 创建的APP基础信息。 表5 ApigAppDetailInfo 参数 参数类型 描述 app_codes Array of strings APP Code列表,当APP类型为APIC时,此参数为空。 app_id String APP编号。 app_key String APP的key。 app_name String APP名称。 app_remark String APP描述,默认为空。不超过200个字符。 app_secret String APP密钥。 app_type String APP类型。枚举值如下: APIC:该APP注册在roma connect网关上 APIG:该APP注册在共享API网关上 DEDICATE_APIG:该APP注册在专享API网关上 bounded_api_count Integer APP绑定API数量。 created_at Long APP创建时间。 project_id String 项目ID。 updated_at Long APP更新时间。 user_id String APP创建用户ID。 状态码: 401 表6 响应Body参数 参数 参数类型 描述 error_code String ModelArts错误码。 error_msg String 具体错误信息。 状态码: 403 表7 响应Body参数 参数 参数类型 描述 error_code String ModelArts错误码。 error_msg String 具体错误信息。 状态码: 404 表8 响应Body参数 参数 参数类型 描述 error_code String ModelArts错误码。 error_msg String 具体错误信息。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 否 String 消息体的类型。设置为text/plain,返回临时预览链接。设置为application/octet-stream,返回临时下载链接。 X-Auth-Token 是 String 用户token。 表3 请求Body参数 参数 是否必选 参数类型 描述 app_name 是 String app名称。 app_remark 否 String app备注。 workspace_id 否 String 工作空间id。
  • URI GET /v1/{project_id}/training-jobs/{job_id}/versions/{version_id}/log/file-names 参数说明如表1所示。 表1 参数说明 参数 是否必选 参数类型 说明 project_id 是 String 用户项目ID。获取方法请参见获取项目ID和名称。 job_id 是 Long 训练作业的ID。 version_id 是 Long 训练作业的版本ID。
  • 响应消息 相应参数如表2所示。 表2 响应参数 参数 参数类型 说明 is_success Boolean 请求是否成功。 error_message String 调用失败时的错误信息。 调用成功时无此字段。 error_code String 调用失败时的错误码,具体请参见错误码。调用成功时无此字段。 log_file_list String 训练作业的日志文件名。单机作业日志仅有一个文件,分布式作业日志有多个文件。
  • 响应参数 状态码: 200 表5 响应Header参数 参数 参数类型 描述 X-Request-Id String 请求链路编号,可用于日志追踪 表6 响应Body参数 参数 参数类型 描述 update_time String 本次更新时间,仅触发服务配置升级时会返回,比如修改config参数,可根据此时间从服务更新记录中过滤出此次的更新结果;修改描述或启停服务不会返回此参数。 resource_ids String 更新的资源ID。 状态码: 400 表7 响应Header参数 参数 参数类型 描述 X-Request-Id String 请求链路编号,可用于日志追踪 表8 响应Body参数 参数 参数类型 描述 error_code String ModelArts错误码。 error_msg String 具体错误信息。
  • 请求示例 通过patch操作对服务进行更新。 PATCH https://{endpoint}/v1/{project_id}/services/{service_id} [ { "op" : "replace", "path" : "/config/0/envs", "value" : { } }, { "op" : "replace", "path" : "/config/0/model_id", "value" : "a9542b46-8dfd-4184-bd81-c8d8946edb47" }, { "op" : "replace", "path" : "/config/0/additional_properties", "value" : { "persistent_volumes" : [ { "storage_type" : "obs_pfs", "source_address" : "/dongcong4", "mount_path" : "/var/tmp", "storage_type_text" : "atelier_webservice_detail_model_config_volumes_type_obs" } ] } }, { "op" : "replace", "path" : "/config/0/specification", "value" : "modelarts.vm.ai1.a310" }, { "op" : "replace", "path" : "/config/0/pool_name", "value" : "pool-c8e2-04f258c84780d5a52f3bc00dc15aa5e7" } ]
共100000条