手把手教你用ModelArts模型部署上线&在线推理(二)【我的华为云体验之旅】
上一篇文章:
https://bbs.huaweicloud.com/blogs/313145
前文的教程已经将模型成功部署上了华为云,并已经已在线服务的形式运行,接下来将继续分享如何在本地用python代码调用在线服务。
本地调用在线服务
这一节来演示如何用本地调用在线服务。
获取token
想要在本地远程推理,首先需要获取token,因为请求的时候会验证token,因为不能谁都乱用你的在线服务对吧。获取token的在线方法:
具体填写方法:
1、region 选择在线服务上线的区域
2、methods选择password
3、domain name、name、password从右上角个人信息那里的“我的凭证”里,domain name就是账户名, name就是IAM用户名,密码就是账号密码
4、scope 里只需要填写project name即可,如果是在北京4就填写"cn-north-4",其他就填写其他
具体的官网教程:https://support.huaweicloud.com/api-modelarts/modelarts_03_0004.html
获取的token结果是下图箭头的部分,很长,我们把这个token值存为本地txt文件里【token有效期只有24h】:
本地代码编写
先在下一个官网代码demo包:https://obs.cn-north-1.myhuaweicloud.com/apig-sdk/ApiGateway-python-sdk.zip
打开demo包,文件结构如下图,主要修改main.py文件:
将main.py修改成如下,其中,token.txt是刚才获取token后写在txt文件的那个文件,url地址从在线服务中的API接口地址来,一般是长这个样子:https://xxxxxxxxxxxxx.apig.cn-north-4.huaweicloudapis.com/v1/infers/aaaa-fccc7-dddd-eeee-xxxxx的形式,如下图,请求采用post方法:
# coding=utf-8
import requests
from apig_sdk import signer
if __name__ == '__main__':
with open('token.txt', 'r') as token_file:
token = token_file.readline()
X_Auth_Token = token[:-1]
headers = {"content-type": "application/json", 'X-Auth-Token': X_Auth_Token}
url = "https://xxxxxxxxxxxxx.apig.cn-north-4.huaweicloudapis.com/v1/infers/aaaa-fccc7-dddd-eeee-xxxxx"
r = requests.request("POST", url, data=json_data_dumps, headers=headers, verify=False)
resp = requests.request(r.method, r.scheme + "://" + r.host + r.uri, headers=r.headers, data=r.body)
print(resp.status_code, resp.reason)
print(resp.content)
接着运行代码即可~。如果打印的status code =200那么说明请求没问题,值得注意的是,请求的数据需要是json的格式。
- 点赞
- 收藏
- 关注作者
评论(0)