在线服务处于运行中状态时,如何填写推理请求的request header和request body?
问题现象
部署在线服务完成且在线服务处于“运行中”状态时,通过ModelArts console的调用指南页签可以获取到推理请求的地址,但是不知道如何填写推理请求的header及body。
原因分析
在线服务部署完成且服务处于运行中状态后,可以通过“服务”页签的调用URL对推理服务发起预测请求,出于安全考虑,ModelArts会通过相关的认证鉴权机制避免在线服务被无关人员非法调用。所以在预测请求的header信息中包含的是调用者的身份信息,在body部分是需要进行预测的内容。
header的部分需要按照华为云的相关认证机制添加认证信息,body部分需要根据推理服务的格式要求输入。
处理方法
- Header:
在线服务支持无认证、Token认证、API Key认证三种认证方式,不同认证方式可在服务页签的调用配置中获取对应的API调用地址,对于不同认证方式Header的组织也不同。具体如下:
- IAM Token认证方式:需要在header的X-Auth-Token字段上填入该租户在该region的domain级别的token。具体指导参见获取IAM用户Token。
- API Key认证的方式:需要在header的Authorization字段填入该租户的API Key。
- 无认证方式:无需填写认证信息。
- Body:
body的组装和模型强相关,不同来源的模型body的组装方式不同。
- 推理服务为从容器镜像中导入的:需要按照自定义镜像的要求组织,请咨询该镜像的制作人。
- 推理服务为从对象存储(OBS)导入的:此时对body的要求会在推理代码中体现,具体在推理代码的_preprocess方法中,该方法将输入的http body转换成模型期望的输入,具体的指导可以查看文档:模型推理代码编写说明。
- 模型从AI Gallery中获取的:请查看AI Gallery中的调用说明或者咨询该推理服务的提供方。