更新时间:2024-10-23 GMT+08:00
分享

查询AI应用详情

功能介绍

查询AI应用详情,根据AI应用ID查询AI应用的详细信息。

调试

您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。

URI

GET /v1/{project_id}/models/{model_id}

表1 路径参数

参数

是否必选

参数类型

描述

model_id

String

模型ID,在创建AI应用时即可在返回体中获取,也可通过查询AI应用列表接口获取当前用户拥有的AI应用,其中model_id字段即为模型ID。

project_id

String

用户项目ID。获取方法请参见获取项目ID和名称

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。

响应参数

状态码: 200

表3 响应Body参数

参数

参数类型

描述

model_version

String

模型版本。

source_job_version

String

来源训练作业的版本。

source_location

String

模型所在的OBS路径或SWR镜像的模板地址。

source_job_id

String

来源训练作业的ID。

source_copy

String

镜像复制开关,仅当“model_type”为“Image”时有效。

  • true:默认值,复制镜像模式,无法极速创建AI应用,SWR源目录中的镜像更改或删除不影响服务部署。

  • false:不复制镜像模式,可极速创建AI应用,更改或删除SWR源目录中的镜像会影响服务部署。

description

String

模型描述信息。

project

String

模型所属租户的项目ID。

workspace_id

String

工作空间ID。获取方法请参见查询工作空间列表。未创建工作空间时默认值为“0”,存在创建并使用的工作空间,以实际取值为准。

model_algorithm

String

模型算法类型,如predict_analysis、object_detection、image_classification。

model_name

String

模型名称。

tenant

String

模型所属租户的账号id。

model_docs

Array of GuideDoc objects

模型文档列表。

owner

String

模型所属租户的用户id。

execution_code

String

执行代码存放的OBS地址,名称固定为“customize_service.py”。

schema_doc

String

模型schema文档的下载地址。

image_address

String

模型打包后的镜像地址。

output_params

Array of ModelParamsInfo objects

模型的输出参数集。

health

ModelHealth object

模型健康检查接口信息。

runtime

String

模型运行时环境。

model_metrics

String

模型精度信息。

source_type

String

模型来源的类型,仅当模型为自动学习部署过来时有值,取值为auto。

model_type

String

模型类型,取值为TensorFlow/Image/PyTorch/Template/MindSpore。

model_id

String

模型ID。

dependencies

Array of ModelDependencies objects

运行代码及模型需安装的包。

model_size

Long

模型大小,单位为字节数。

model_status

String

模型状态。

apis

String

模型所有的apis入参出参信息(从模型预览中获取)。

model_source

String

模型来源。

  • auto:自动学习

  • algos:预置算法

  • custom:自定义

tunable

Boolean

标识模型是否支持二次调优。

  • true:支持

  • false:不支持

market_flag

Boolean

标识模型是否来自市场。

  • true:来自市场

  • false:不来自市场

publishable_flag

Boolean

标识模型是否可发布至市场。

  • true:可以发布至市场

  • false:不可以发布至市场

model_labels

Array of strings

模型标签数组。

labels_map

Map<String,String>

模型标签Map,key固定为labels,value为模型标签数组。

install_type

Array of strings

支持部署服务类型。

config

String

模型配置参数。包括health,readiness_health,startup_health等探针配置

specification

ModelSpecification object

模型部署最小部署规格。

input_params

Array of ModelParamsInfo objects

模型的输入参数集。

create_at

Long

模型创建时间,距“1970.1.1 0:0:0 UTC”毫秒数。

表4 GuideDoc

参数

参数类型

描述

doc_url

String

文档http(s)链接。

doc_name

String

文档名称,支持1-48位可见字符(含中文),只能以英文大小写字母或者中文字符开头,名称可以包含字母、中文、数字、中划线、下划线。

表5 ModelHealth

参数

参数类型

描述

protocol

String

健康检查接口请求协议,当前仅支持http。

initial_delay_seconds

String

实例启动后,延迟initial_delay_seconds秒再执行健康检查。

timeout_seconds

String

健康检查超时时间。

url

String

健康检查接口路径。

表6 ModelDependencies

参数

参数类型

描述

installer

String

安装方式,当前只支持pip。

packages

Array of Packages objects

依赖包集合。

表7 Packages

参数

参数类型

描述

package_version

String

依赖包版本。不填时默认安装最新版本。不能含有中文及特殊字符&!'"<>=。

package_name

String

依赖包名称。请确保包名正确且存在。不能含有中文及特殊字符&!'"<>=。

restraint

String

版本限制条件,当且仅当package_version存在时必填,取值包含:

  • EXACT:和指定的版本完全一致。

  • ATLEAST:不低于指定的版本。

  • ATMOST:不高于指定的版本。

表8 ModelSpecification

参数

参数类型

描述

min_cpu

String

最小CPU规格。

min_gpu

String

最小GPU规格。

min_memory

String

最小内存。

min_ascend

String

最小Ascend规格。

表9 ModelParamsInfo

参数

参数类型

描述

protocol

String

请求协议,如http。

url

String

API代表的URL路径。

min

Number

表示数值类型参数的最小值。

method

String

请求方法,如post。

max

Number

表示数值类型参数的最大值。

param_desc

String

参数描述。

param_name

String

参数名称。

param_type

String

参数类型。

请求示例

GET https://{endpoint}/v1/{project_id}/models/{model_id}

响应示例

状态码: 200

模型详情。

{
  "model_id" : "10eb0091-887f-4839-9929-cbc884f1e20e",
  "model_name" : "mnist",
  "model_version" : "1.0.0",
  "runtime" : "python2.7",
  "tenant" : "6d28e85aa78b4e1a9b4bd83501bcd4a1",
  "project" : "d04c10db1f264cfeb1966deff1a3527c",
  "owner" : "6d28e85aa78b4e1a9b4bd83501bcd4a1",
  "source_location" : "https://models.obs.xxxxx.com/mnist",
  "model_type" : "TensorFlow",
  "model_size" : 5633481,
  "model_status" : "published",
  "execution_code" : "https://testmodel.obs.xxxxx.com/customize_service.py",
  "image_address" : "100.125.5.235:20202/models/10eb0091-887f-4839-9929-cbc884f1e20e:1.0.0",
  "input_params" : [ {
    "url" : "/",
    "method" : "post",
    "protocol" : "http",
    "param_name" : "data",
    "param_type" : "object",
    "param_desc" : "{\"type\":\"object\",\"properties\":{\"req_data\":{\"items\":[{\"type\":\"object\",\"properties\":{}}],\"type\":\"array\"}}}"
  } ],
  "output_params" : [ {
    "url" : "/",
    "method" : "post",
    "protocol" : "http",
    "param_name" : "data",
    "param_type" : "object",
    "param_desc" : "{\"type\":\"object\",\"properties\":{\"resp_data\":{\"type\":\"array\",\"items\":[{\"type\":\"object\",\"properties\":{}}]}}}"
  } ],
  "dependencies" : [ {
    "installer" : "pip",
    "packages" : [ {
      "package_name" : "pkg1",
      "package_version" : "1.0.1",
      "restraint" : "ATLEAST"
    } ]
  } ],
  "model_metrics" : "{\"f1\":0.52381,\"recall\":0.666667,\"precision\":0.466667,\"accuracy\":0.625}",
  "apis" : "[{\"protocol\":\"http\",\"method\":\"post\",\"url\":\"/\",\"input_params\":{\"type\":\"object\",\"properties\":{\"data\":{\"type\":\"object\",\"properties\":{\"req_data\":{\"items\":[{\"type\":\"object\",\"properties\":{}}],\"type\":\"array\"}}}}},\"output_params\":{\"type\":\"object\",\"properties\":{\"data\":{\"type\":\"object\",\"properties\":{\"resp_data\":{\"type\":\"array\",\"items\":[{\"type\":\"object\",\"properties\":{}}]}}}}}}]",
  "model_labels" : [ ],
  "labels_map" : {
    "labels" : [ ]
  },
  "workspace_id" : "0",
  "install_type" : [ "realtime", "batch", "edge" ],
  "specification" : { },
  "config" : "{\"model_algorithm\":\"image_classification\",\"model_source\":\"auto\",\"tunable\":false,\"downloadable_flag\":true,\"algorithm\":\"resnet_v2_50,mobilenet_v1\",\"metrics\":{\"f1\":0.912078373015873,\"recall\":0.9125,\"precision\":0.9340277777777778,\"accuracy\":0.263250724969475},\"model_type\":\"TensorFlow\",\"runtime\":\"tf1.13-python3.6-cpu\",\"apis\":[{\"protocol\":\"https\",\"url\":\"/\",\"method\":\"post\",\"request\":{\"data\":{\"type\":\"object\",\"properties\":{\"images\":{\"type\":\"file\"}}},\"Content-type\":\"multipart/form-data\"},\"response\":{\"data\":{\"type\":\"object\",\"required\":[\"predicted_label\",\"scores\"],\"properties\":{\"predicted_label\":{\"type\":\"string\"},\"scores\":{\"type\":\"array\",\"items\":{\"type\":\"array\",\"minItems\":2,\"maxItems\":2,\"items\":[{\"type\":\"string\"},{\"type\":\"number\"}]}}}},\"Content-type\":\"multipart/form-data\"}}],\"dependencies\":[{\"installer\":\"pip\",\"packages\":[{\"package_name\":\"numpy\",\"package_version\":\"1.17.0\",\"restraint\":\"EXACT\"},{\"package_name\":\"h5py\",\"package_version\":\"2.8.0\",\"restraint\":\"EXACT\"},{\"package_name\":\"Pillow\",\"package_version\":\"5.2.0\",\"restraint\":\"EXACT\"},{\"package_name\":\"scipy\",\"package_version\":\"1.2.1\",\"restraint\":\"EXACT\"},{\"package_name\":\"resampy\",\"package_version\":\"0.2.1\",\"restraint\":\"EXACT\"},{\"package_name\":\"scikit-learn\",\"package_version\":\"0.19.1\",\"restraint\":\"EXACT\"}]}],\"health\":{\"check_method\":\"HTTP\",\"protocol\":\"http\",\"url\":\"/health\",\"period_seconds\":\"5\",\"failure_threshold\":\"10\",\"initial_delay_seconds\":\"12\"},\"readiness_health\":{\"check_method\":\"HTTP\",\"protocol\":\"http\",\"url\":\"/readiness_health\",\"period_seconds\":\"5\",\"failure_threshold\":\"20\",\"initial_delay_seconds\":\"12\"},\"startup_health\":{\"check_method\":\"HTTP\",\"protocol\":\"http\",\"url\":\"/startup_health\",\"period_seconds\":\"5\",\"failure_threshold\":\"10\",\"initial_delay_seconds\":\"12\"}}"
}

状态码

状态码

描述

200

模型详情。

错误码

请参见错误码

相关文档