调用API和SDK
部署服务后,“应用开发>部署”页面下方的调用指南,显示“API调用”和“SDK调用”页签,您可以通过调用API和SDK调用当前模板服务。
调用时,如果出现ModelArts.4204报错,请参见ModelArts.4204服务未开通报错进行处理。
SDK调用
本章节以Python SDK为例介绍如何进行使用,其他语言SDK使用方法相同。
- 获取SDK。
在自定义OCR的“部署”页面,选择“SDK调用”获取SDK。
图2 获取SDK
- 导入SDK至PyCharm(请在PyCharm中提前配置python环境)。
图3 导入SDK
- 获取AK、SK。
AK/SK(Access Key ID/Secret Access Key)即访问密钥,包含访问密钥ID(AK)和秘密访问密钥(SK)两部分,华为云通过AK识别用户的身份,通过SK对请求数据进行签名验证,用于确保请求的机密性、完整性和请求者身份的正确性。
登录访问密钥页面,依据界面操作指引,获取AK、SK。下载得到的访问密钥为credentials.csv文件,文件中的B列和C列分别是AK、SK信息。
图4 新增访问密钥
图5 AKSK文件
- 修改OCRDemo.py文件。
(1)填写获取的AK、SK。
(2)将代码示例中的请求url替换为自定义OCR部署后生成的url,只使用图片中用蓝色标注的字段进行替换。
(3)将代码示例中的# option["side"]="front"替换为:
option["template_id"]="xxx"
template_id的值可以在自定义OCR部署发布后获取。
图6 修改代码文件(修改前)
图7 修改代码文件(修改后)
- 调用自定义OCR SDK。
API调用
本章节以postman为例介绍如何调用API,建议使用SDK。
使用API调用时,因为需要使用Token进行认证鉴权,在鉴权中,会存在因华为账号升级导致的“无法使用主账户获取Token”的情况,产生“The username or password is wrong.”报错,该问题可以通过创建一个IAM子用户获取Token解决,处理步骤请参见帐密报错“The username or password is wrong.”。
- 获取Token。
由于自定义OCR部署在华北-北京四区域,因此需要获取北京四(cn-north-4)区域的Token。
POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens Request Header: Content-Type: application/json Request Body: { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "IAM子用户名", "password": "密码", "domain": { "name": "主账户的用户名" } } } }, "scope": { "project": { "name": "cn-north-4" } } }
图8 请求header
图9 请求body
- 调用自定义OCR API。
依据下图的对应关系,将自定义OCR部署后生产的API填写至postman中。url中的{endpoint}需要替换为ocr.cn-north-4.myhuaweicloud.com。
在"image"参数中,输入图片的base64编码即可调用API。图10 调用自定义OCR API