文档首页/ AI开发平台ModelArts/ 常见问题/ Standard推理部署/ 部署上线/ 在线服务/ 在线服务处于运行中状态时,如何填写推理请求的request header和request body
更新时间:2024-09-05 GMT+08:00
分享

在线服务处于运行中状态时,如何填写推理请求的request header和request body

问题现象

部署在线服务完成且在线服务处于“运行中”状态时,通过ModelArts console的调用指南tab页签可以获取到推理请求的地址,但是不知道如何填写推理请求的header及body。

原因分析

在线服务部署完成且服务处于运行中状态后,可以通过调用指南页签的调用地址对模型发起预测请求,出于安全考虑,ModelArts会通过相关的认证鉴权机制避免在线服务被无关人员非法调用。所以在预测请求的header信息中包含的是调用者的身份信息,在body部分是需要进行预测的内容。

header的部分需要按照华为云的相关机制进行认证,body部分需要根据模型的要求如前处理脚本的要求,如自定义镜像的要求进行输入。

处理方法

  • Header:

    在调用指南页签上最多可以获取到两个api地址,分别是支持IAM/AKSK认证的地址以及支持APP认证的地址,对于支持不同认证方式的地址, 对header的组织也不同,具体如下:

    • IAM/AKSK认证方式:需要在header的X-Auth-Token字段上填入该租户在该region的domain级别的token。具体指导参见连接:获取IAM用户Token
    • APP认证的方式:APP认证方式又可以细分为AppCode认证和APP签名认证。
      • AppCode认证需要在header的X-Apig-AppCode字段上填入绑定给该在线服务的APP的AppCode。
      • APP签名认证需要在header的X-Sdk-Date和Authorization字段中填入通过sdk或者工具使用该在线服务绑定的APP的AppKey和AppSecret所生产的这两个字段的值,以完成对该请求的签名认证。具体指导参见链接:访问在线服务(APP认证)
  • Body:

    body的组装和模型强相关,不同来源的模型body的组装方式不同。

    • 模型为从容器镜像中导入的:需要按照自定义镜像的要求组织,请咨询该镜像的制作人。
    • 模型为从对象存储(OBS)导入的:此时对body的要求会在推理代码中体现,具体在推理代码的_preprocess方法中,该方法将输入的http body转换成模型期望的输入,具体的指导可以查看文档:模型推理代码编写说明
    • 模型从AI Gallery中获取的:请查看AI Gallery中的调用说明或者咨询该模型的提供方。

建议与总结

相关文档