在线预测服务

部署在线预测服务

  • 接口描述

    对于已经训练成功的模型,部署在线预测服务。

  • 请求(Request)

    • 请求语法:
    POST /v{version}/onlinePredictService HTTP/1.1
    accept-encoding: gzip, deflate
    x-bce-date: {utc-date-string}
    connection: keep-alive
    accept: */*
    host: bml.bj.baidubce.com
    content-type: application/json
    authorization:{bce-authorization-string}
    
    • 请求头域:无特殊Header参数

    • 请求参数:

    参数名 参数类型 必要性 参数描述
    version String 必选 API版本号,当前取值1
    modelId String 必选 要进行部署预测服务的模型. 该模型必须为训练完成的状态,即当前status的value字段等于0
  • 响应(Response)

    • 响应头域:无特殊Header参数
    • 响应参数
    参数 参数类型 参数描述
    serviceId String 在线预测服务ID
    serviceURL String 在线预测服务URL,用来请求服务进行预测的API地址
    accessKey String 在线预测服务的AK,用来在进行预测时签名验证使用
    secretAccessKey String 在线预测服务的SK,用来在进行预测时签名验证使用,不同于用户开放云AK/SK,专门对应具体的预测服务
  • 示例

    • 请求示例
    POST /v1/onlinePredictService HTTP/1.1
    accept-encoding: gzip, deflate
    x-bce-date: 2015-03-24T13:02:00Z
    connection: keep-alive
    accept: */*
    host: bml.bj.baidubce.com
    content-type: application/json
    authorization: bce-auth-v1/46bd9968a6194b4bbdf0341f2286ccce/2015-03-24T13:04:26Z/1800/host;x-bce-date/b1ad7075b37616b846a356d1db86e73abba1aed51b4d7b0d95321f69f17250b1
    {
        "modelId": "model-fdslkj454jd3"
    }
    
    • 响应实例
    HTTP/1.1 200 OK
    x-bce-request-id:73c4e74c-3101-4a00-bf44-fe246959c05e
    Cache-Control: no-cache
    Server: BWS
    Date: Tue, 24 Mar 2015 13:02:01 GMT
    Content-Type: application/json;charset=UTF-8
    {
        "serviceId": "online-predict-59632675d13ff",
        "serviceURL": "http://online-predict-01.bml.bj.baidubce.com/v1/onlinepredict/online-predict-59632675d13ff",
        "accessKey": "9346c3b2a1eee664507b0c412030a4b8",
        "secretAccessKey": "8aac16af3de577251770e56dd5e929f3"
    }
    

查询在线预测服务信息

  • 接口描述

    查询已经部署的在线预测服务信息

  • 请求(Request)

    • 请求语法:
    GET /v{version}/onlinePredictService/{serviceId} HTTP/1.1
    accept-encoding: gzip, deflate
    x-bce-date: {utc-date-string}
    connection: keep-alive
    accept: */*
    host: bml.bj.baidubce.com
    content-type: application/json
    authorization:{bce-authorization-string}
    
    • 请求头域:无特殊Header参数

    • 请求参数:

    参数名 参数类型 必要性 参数描述
    version String 必选 API版本号,当前取值1
    serviceId String 必选 在线预测服务ID
  • 响应(Response)

    • 响应头域:无特殊Header参数
    • 响应参数
    参数 参数类型 参数描述
    serviceId String 在线预测服务ID
    serviceURL String 在线预测服务URL,用来请求服务进行预测的API地址
    accessKey String 在线预测服务的AK,用来在进行预测时签名验证使用
    secretAccessKey String 在线预测服务的SK,用来在进行预测时签名验证使用,不同于用户开放云AK/SK,专门对应具体的预测服务
    instanceTotal Int 在线预测服务总实例数,每个在线预测服务都是负载均衡的分配到多个服务实例上来响应预测请求的
    instanceSuccess Int 成功部署的在线预测服务实例数
    instanceDeploying Int 部署中的在线预测服务实例数
    instanceFailed Int 部署失败的在线预测服务实例数
    status Status 当前在线预测服务状态, status的value大0为服务正在部署中,等于0为服务部署成功,小于0为服务部署失败;当所有实例都部署成功时,status["value"]=0;当有实例在部署中,没有实例部署失败时,status["value"]>0;当有实例部署失败时,status["value"]<0,status["message"]为部署失败的错误提示;只有status["value"]=0时,该预测服务的所有请求都能被正确响应,其他情况该预测服务的请求会有概率被分发到未成功部署的实例上而响应失败。
    modelId String 该在线预测服务对应的部署模型。通常情况下所有服务实例都对应一个模型Id,但当预测服务被重载模型,在重新部署过程中会有短时间的各实例模型不一致的情况,此时返回为最新部署的模型Id。
    createTime String 创建时间,符合日期时间格式约束
    memCost Float 该在线预测服务消耗的内存,单位kb,所有服务实例的平均值
    cpuCost Float 该在线预测服务消耗的CPU百分比,单位%, 所有服务实例的平均值
  • 示例

    • 请求示例
    GET /v1/onlinePredictService/online-predict-59632675d13ff HTTP/1.1
    accept-encoding: gzip, deflate
    x-bce-date: 2015-03-24T13:02:00Z
    connection: keep-alive
    accept: */*
    host: bml.bj.baidubce.com
    content-type: application/json
    authorization: bce-auth-v1/46bd9968a6194b4bbdf0341f2286ccce/2015-03-24T13:04:26Z/1800/host;x-bce-date/b1ad7075b37616b846a356d1db86e73abba1aed51b4d7b0d95321f69f17250b1
    
    • 响应实例
    HTTP/1.1 200 OK
    x-bce-request-id:73c4e74c-3101-4a00-bf44-fe246959c05e
    Cache-Control: no-cache
    Server: BWS
    Date: Tue, 24 Mar 2015 13:02:01 GMT
    Content-Type: application/json;charset=UTF-8 
    {
        "serviceId": "online-predict-59632675d13ff",
        "serviceURL": "http://online-predict-01.bml.bj.baidubce.com/v1/onlinepredict/online-predict-59632675d13ff",
        "accessKey": "9346c3b2a1eee664507b0c412030a4b8",
        "secretAccessKey": "8aac16af3de577251770e56dd5e929f3",
        "instanceTotal": 2,
        "instanceSuccess": 2,
        "instanceDeploying": 0,
        "instanceFailed": 0,
        "status": {
            "value": 0,
            "message": "Online Predict Serivce:online-predict-59632675d13ff Deployed and Running Successfully",
            "time": "2015-07-09T15:00:38Z"
        },
        "modelId": model-5953714ade1f0,
        "createTime" : "2015-07-09T14:53:53Z",
        "memCost": 90456,
        "cpuCost": 0.9
    }
    

查询在线预测服务列表

  • 接口描述

    查询用户创建的所有的在线预测服务列表

  • 请求(Request)

    • 请求语法:
    GET /v{version}/onlinePredictService?marker={marker}&maxKeys={maxKeys} HTTP/1.1
    accept-encoding: gzip, deflate
    x-bce-date: {utc-date-string}
    connection: keep-alive
    accept: */*
    host: bml.bj.baidubce.com
    content-type: application/json
    authorization:{bce-authorization-string}
    
    • 请求头域:无特殊Header参数

    • 请求参数:

    参数名 参数类型 必要性 参数描述
    version String 必选 API版本号,当前取值1
    marker String 可选 批量获取列表的查询的起始位置,是一个由系统生成的字符串
    maxKeys Int 可选 每页包含的最大数量,最大数量不能超过1000。大于1000的会被修正为1000。缺省值为1000
  • 响应(Response)

    • 响应头域:无特殊Header参数

    • 响应参数

    参数名 参数类型 参数描述
    marker String 标记查询的起始位置
    truncated Boolean true表示后面还有数据,false表示已经是最后一页
    nextMarker String 获取下一页所需要传递的marker值。当truncated为false时,该域不出现
    onlinePredictServiceList List\<OnlinePredictService> 返回的在线预测服务列表
  • 示例

    • 请求示例
    GET /v1/onlinePredictService?marker=9e0c8cf1-690c-444a-8727-04241f3beaa5&maxKeys=30 HTTP/1.1
    accept-encoding: gzip, deflate
    x-bce-date: 2015-03-24T13:02:00Z
    connection: keep-alive
    accept: */*
    host: bml.bj.baidubce.com
    content-type: application/json
    authorization: bce-auth-v1/46bd9968a6194b4bbdf0341f2286ccce/2015-03-24T13:04:26Z/1800/host;x-bce-date/b1ad7075b37616b846a356d1db86e73abba1aed51b4d7b0d95321f69f17250b1
    
    • 响应实例
    HTTP/1.1 200 OK
    x-bce-request-id:73c4e74c-3101-4a00-bf44-fe246959c05e
    Cache-Control: no-cache
    Server: BWS
    Date: Tue, 24 Mar 2015 13:02:01 GMT
    Content-Type: application/json;charset=UTF-8 
    {
        "onlinePredictServiceList": [
        {
            "serviceId": "online-predict-59632675d13ff",
            "serviceURL": "http://online-predict-01.bml.bj.baidubce.com/v1/onlinepredict/online-predict-59632675d13ff",
            "accessKey": "9346c3b2a1eee664507b0c412030a4b8",
            "secretAccessKey": "8aac16af3de577251770e56dd5e929f3",
            "instanceTotal": 2,
            "instanceSuccess": 2,
            "instanceDeploying": 0,
            "instanceFailed": 0,
            "status": {
                "value": 0,
                "message": "Online Predict Serivce:online-predict-59632675d13ff Deployed and Running Successfully",
                "time": "2015-07-09T15:00:38Z"
            },
            "modelId": model-5953714ade1f0,
            "createTime" : "2015-07-09T14:53:53Z",
            "memCost": 90456,
            "cpuCost": 0.9,
            "totalCallCount": 21389,
            "last24hourCallCount": 763
        },
        {
            "serviceId": "online-predict-59620e3422ced",
            "serviceURL": "http://online-predict-02.bml.bj.baidubce.com/v1/onlinepredict/online-predict-59620e3422ced",
            "accessKey": "d07c03ea7688b71812d520fad594c7d2",
            "secretAccessKey": "059758ea0d6b86d0f6f64a19265f928a",
            "instanceTotal": 2,
            "instanceSuccess": 1,
            "instanceDeploying": 1,
            "instanceFailed": 0,
            "status": {
                "value": 15001,
                "message": "Online Predict Serivce:online-predict-59620e3422ced is Deploying, Not Available Now",
                "time": "2015-07-09T15:00:38Z"
            },
            "modelId": model-59007b860b463,
            "createTime" : "2015-07-09T14:53:53Z",
            "memCost": 45226,
            "cpuCost": 0.45,
            "totalCallCount": 0,
            "last24hourCallCount": 0
        },
        ......
        ],
        "truncated": false,
        "marker": "9e0c8cf1-690c-444a-8727-04241f3beaa5"
    }
    

查询模型的在线预测服务列表

  • 接口描述

    查询用户使用某一个模型创建的所有在线预测服务列表

  • 请求(Request)

    • 请求语法:
    GET /v{version}/onlinePredictService?modelId={modelId}&marker={marker}&maxKeys={maxKeys} HTTP/1.1
    accept-encoding: gzip, deflate
    x-bce-date: {utc-date-string}
    connection: keep-alive
    accept: */*
    host: bml.bj.baidubce.com
    content-type: application/json
    authorization:{bce-authorization-string}
    
    • 请求头域:无特殊Header参数

    • 请求参数:

    参数名 参数类型 必要性 参数描述
    version String 必选 API版本号,当前取值1
    modelId String 必选 要查询的部署预测服务的模型Id
    marker String 可选 批量获取列表的查询的起始位置,是一个由系统生成的字符串
    maxKeys Int 可选 每页包含的最大数量,最大数量不能超过1000。大于1000的会被修正为1000。缺省值为1000
  • 响应(Response)

    • 响应头域:无特殊Header参数

    • 响应参数

    参数名 参数类型 参数描述
    marker String 标记查询的起始位置
    truncated Boolean true表示后面还有数据,false表示已经是最后一页
    nextMarker String 获取下一页所需要传递的marker值。当truncated为false时,该域不出现
    onlinePredictServiceList List\<OnlinePredictService> 该模型所有部署的在线预测服务列表
  • 示例

    • 请求示例
    GET /v1/onlinePredictService?modelId=model-5953714ade1f0&marker=9e0c8cf1-690c-444a-8727-04241f3beaa5&maxKeys=30 HTTP/1.1
    accept-encoding: gzip, deflate
    x-bce-date: 2015-03-24T13:02:00Z
    connection: keep-alive
    accept: */*
    host: bml.bj.baidubce.com
    content-type: application/json
    authorization: bce-auth-v1/46bd9968a6194b4bbdf0341f2286ccce/2015-03-24T13:04:26Z/1800/host;x-bce-date/b1ad7075b37616b846a356d1db86e73abba1aed51b4d7b0d95321f69f17250b1
    
    • 响应实例
    HTTP/1.1 200 OK
    x-bce-request-id:73c4e74c-3101-4a00-bf44-fe246959c05e
    Cache-Control: no-cache
    Server: BWS
    Date: Tue, 24 Mar 2015 13:02:01 GMT
    Content-Type: application/json;charset=UTF-8 
    {
        "onlinePredictServiceList": [
        {
            "serviceId": "online-predict-59632675d13ff",
            "serviceURL": "http://online-predict-01.bml.bj.baidubce.com/v1/onlinepredict/online-predict-59632675d13ff",
            "accessKey": "d07c03ea7688b71812d520fad594c7d2",
            "secretAccessKey": "059758ea0d6b86d0f6f64a19265f928a",
            "instanceTotal": 2,
            "instanceSuccess": 2,
            "instanceDeploying": 0,
            "instanceFailed": 0,
            "status": {
                "value": 0,
                "message": "Online Predict Serivce:online-predict-59632675d13ff Deployed and Running Successfully",
                "time": "2015-07-09T15:00:38Z"
            },
            "modelId": model-5953714ade1f0,
            "createTime" : "2015-07-09T14:53:53Z",
            "memCost": 90456,
            "cpuCost": 0.9,
            "totalCallCount": 21389,
            "last24hourCallCount": 763
        },
        {
            "serviceId": "online-predict-59621e8a9d028",
            "serviceURL": "http://online-predict-00.bml.bj.baidubce.com/v1/onlinepredict/online-predict-59621e8a9d028",
            "accessKey": "8bb28bad2a82b3ba73630cc4f4d045ab",
            "secretAccessKey": "61856a1743c99a8018e4d6b79d545dc7",
            "instanceTotal": 5,
            "instanceSuccess": 5,
            "instanceDeploying": 0,
            "instanceFailed": 0,
            "status": {
                "value": 0,
                "message": "Online Predict Serivce:online-predict-59621e8a9d028 Deployed and Running Successfully",
                "time": "2015-07-09T15:00:38Z"
            },
            "modelId": model-5953714ade1f0,
            "createTime" : "2015-07-09T14:53:53Z",
            "memCost": 90454,
            "cpuCost": 0.88,
            "totalCallCount": 1574498,
            "last24hourCallCount": 301312
        },
        ......
        ],
        "truncated": false,
        "marker": "9e0c8cf1-690c-444a-8727-04241f3beaa5"
    }
    

重载在线预测服务模型

  • 接口描述

    对于已经部署成功的在线预测服务,重载该服务对应的模型,在线预测服务的id和URL保持不变。
    调用该接口后,已经部署成功的在线预测服务状态会变为部署中,部署的重载过程中(status["value"]>0),会有短时间内该服务的多个服务实例加载模型不一致的情况,此时调用该预测服务的serviceURL进行预测,可能会得到非预期内的结果。
    重载成功后,该在线预测服务后续将使用新模型提供预测,serviceId对应的modelId也会更新为被重载的模型Id。

  • 请求(Request)

    • 请求语法:
    PUT /v{version}/onlinePredictService/reload/{serviceId}/{modelId} HTTP/1.1
    accept-encoding: gzip, deflate
    x-bce-date: {utc-date-string}
    connection: keep-alive
    accept: */*
    host: bml.bj.baidubce.com
    content-type: application/json
    authorization:{bce-authorization-string}
    
    • 请求头域:无特殊Header参数

    • 请求参数:

    参数名 参数类型 必要性 参数描述
    version String 必选 API版本号,当前取值1
    serviceId String 必选 要进行重载的在线预测服务。该在线预测服务必须是部署成功的,即status["value"]=0
    modelId String 必选 要将在线预测服务重载为的模型id。该模型必须是训练成功的,即status["value"]=0;该模型id不能和该服务现在已经部署的modelId一致,否则重载接口会直接返回失败
  • 响应(Response)

    • 响应头域:无特殊Header参数
    • 响应参数
    参数 参数类型 参数描述
    serviceId String 在线预测服务Id
  • 示例

    • 请求示例
    PUT /v1/onlinePredictService/reload/online-predict-59632675d13ff/model-59007b860b463 HTTP/1.1
    accept-encoding: gzip, deflate
    x-bce-date: 2015-03-24T13:02:00Z
    connection: keep-alive
    accept: */*
    host: bml.bj.baidubce.com
    content-type: application/json
    authorization: bce-auth-v1/46bd9968a6194b4bbdf0341f2286ccce/2015-03-24T13:04:26Z/1800/host;x-bce-date/b1ad7075b37616b846a356d1db86e73abba1aed51b4d7b0d95321f69f17250b1
    
    • 响应实例
    HTTP/1.1 200 OK
    x-bce-request-id:73c4e74c-3101-4a00-bf44-fe246959c05e
    Cache-Control: no-cache
    Server: BWS
    Date: Tue, 24 Mar 2015 13:02:01 GMT
    Content-Type: application/json;charset=UTF-8
    {
        "serviceId" : "online-predict-59632675d13ff"
    }
    

删除在线预测服务

  • 接口描述

    删除已创建的在线预测服务。

  • 请求(Request)

    • 请求语法:

      DELETE /v{version}/onlinePredictService/{serviceId} HTTP/1.1
      accept-encoding: gzip, deflate
      x-bce-date: {utc-date-string}
      connection: keep-alive
      accept: */*
      host: bml.bj.baidubce.com
      content-type: application/json
      authorization:{bce-authorization-string}
      
    • 请求头域:无特殊Header参数

    • 请求参数:

    参数名 参数类型 必要性 参数描述
    version String 必选 API版本号,当前取值1
    serviceId String 必选 要删除的在线预测服务Id
  • 响应(Response)

    • 响应头域:无特殊Header参数
    • 响应参数
    参数 参数类型 参数描述
    serviceId String 在线预测服务Id
  • 示例

    • 请求示例
    DELETE /v1/onlinePredictService/online-predict-59632675d13ff HTTP/1.1
    accept-encoding: gzip, deflate
    x-bce-date: 2015-03-24T13:02:00Z
    connection: keep-alive
    accept: */*
    host: bml.bj.baidubce.com
    content-type: application/json
    authorization: bce-auth-v1/46bd9968a6194b4bbdf0341f2286ccce/2015-03-24T13:04:26Z/1800/host;x-bce-date/b1ad7075b37616b846a356d1db86e73abba1aed51b4d7b0d95321f69f17250b1
    
    • 响应实例
    HTTP/1.1 200 OK
    x-bce-request-id:73c4e74c-3101-4a00-bf44-fe246959c05e
    Cache-Control: no-cache
    Server: BWS
    Date: Tue, 24 Mar 2015 13:02:01 GMT
    Content-Type: application/json;charset=UTF-8
    {
        "serviceId" : "online-predict-59632675d13ff"
    }
    

请求在线预测服务进行预测

  • 接口描述

使用已创建的在线预测服务进行预测

  • 请求(Request)

    部署在线预测服务成功后,返回的响应有四个参数:serviceID,serviceURL,accessKey和secretAccessKey。
    serviceURL分成两个部分:serviceURL_host和serviceURL_uri,分别对应URL中的hostname和uri。
    则请求格式如下:

    POST {serviceURL_uri} HTTP/1.1
    accept-encoding: gzip, deflate
    x-bce-date: {utc-date-string}
    connection: keep-alive
    accept: */*
    host: {serviceURL_host}
    content-type: application/json
    content-length: {json-data-length-int}
    authorization:{authorization-string}
    

    虽然serviceURL不是开放云的独立API,但也需要走鉴权流程,鉴权签名的生成过程可以参考百度开放云鉴权认证机制

    注意:1. 本接口生成签名所使用的AK/SK为部署在线预测服务成功后返回的accessKey和secretAccessKey,跟百度开放云统一使用的AK/SK不同。2.为保证成功鉴权,用户在调用接口时需要在请求中携带"content-length"字段。

    • 请求头域:无特殊Header参数

    • 请求参数:

    不同算法的请求参数各有不同,具体描述如下。

    • LR算法

    注意:BML的LR算法仅支持二分类,并不支持多分类。

    参数名 参数类型 必要性 参数描述
    authorization String 必选 该预测请求对应的签名,用于安全验证。
    SampleFormat String 必选 待预测样本的格式。有三种取值:DENSE, SPARSE_ID, SPARSE_ID_WEIGHT(与BML的支持的样本格式相同)
    Sample String 必选 待预测样本,格式和SampleFormat指定的相同
    • KMeans算法
    参数名 参数类型 必要性 参数描述
    authorization String 必选 该预测请求对应的签名,用于安全验证。。
    SampleFormat String 必选 待预测样本的格式。有三种取值:DENSE, SPARSE_ID, SPARSE_ID_WEIGHT(与BML的支持的样本格式相同)
    Sample String 必选 待预测样本,格式和SampleFormat指定的相同
    • LDA算法
    参数名 参数类型 必要性 参数描述
    authorization String 必选 该预测请求对应的签名,用于安全验证。
    SampleFormat String 必选 待预测样本的格式。注意与前面所述算法不同,LDA算法仅支持SPARSE_ID_WEIGHT格式样本
    Sample String 必选 待预测样本,格式和SampleFormat指定的相同
    K String 必选 返回的最相关主题的个数
  • 响应(Response)

    不同算法的响应格式基本一致,具体描述如下。

    • 响应头域:无特殊Header参数
    • 响应参数
    参数 参数类型 参数描述
    code Int 当前样本预测的状态码。0代表成功,负数代表出错。
    data String code为0时,出现data参数,包含预测结果
    message String code为非0时,出现message参数,包含错误信息
  • 示例

    • 请求示例
    POST /v1/onlinepredict/online-predict-59632675d13ff HTTP/1.1
    accept-encoding: gzip, deflate
    x-bce-date: 2015-03-24T13:02:00Z
    connection: keep-alive
    accept: */*
    host: online-predict-01.bml.bj.baidubce.com
    content-type: application/json
    content-length: 119
    authorization:bce-auth-v1/acca5548742d19f9a3e088307cbc**/2015-04-27T08:23:49Z/1800//5f1a448c77c45b75a8d9adcc38b7d04ea98e8750c03d25d936864****
    {
        "Sample": "1000061404853111533,0,0 1,1 1,2 1,3 1,4 1,5 1,6 1,7 1,8 1,9 1,10 1,11 1",
        "SampleType": "SPARSE_ID_WEIGHT"
    }
    
    • 响应实例
    HTTP/1.1 200 OK
    x-bce-request-id:73c4e74c-3101-4a00-bf44-fe246959c05e
    Cache-Control: no-cache
    Server: BWS
    Date: Tue, 24 Mar 2015 13:02:01 GMT
    Content-Type: application/json;charset=UTF-8
    {
        "code" : 0,
        "data":{"0":0.995963438785771,"1":0.0040365612142293}
    }