更新时间:2024-04-02 GMT+08:00
分享

调用API和SDK

部署服务后,“应用开发>部署”页面下方的调用指南,显示“API调用”“SDK调用”页签,您可以通过调用API和SDK调用当前模板服务。

图1 部署服务

调用时,如果出现ModelArts.4204报错,请参见ModelArts.4204服务未开通报错进行处理。

SDK调用

本章节以Python SDK为例介绍如何进行使用,其他语言SDK使用方法相同。

  1. 获取SDK。

    在自定义OCR的“部署”页面,选择“SDK调用”获取SDK。

    图2 获取SDK
  2. 导入SDK至PyCharm(请在PyCharm中提前配置python环境)。
    图3 导入SDK
  3. 获取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文件
  4. 修改OCRDemo.py文件。

    在文件中找到“aksk_request”,修改内容有两处:

    (1)填写获取的AK、SK。

    (2)将代码示例中的请求url替换为自定义OCR部署后生成的url,只使用图片中用蓝色标注的字段进行替换。

    (3)将代码示例中的# option["side"]="front"替换为:

    option["template_id"]="xxx"

    template_id的值可以在自定义OCR部署发布后获取。

    图6 修改代码文件(修改前)
    图7 修改代码文件(修改后)
  5. 调用自定义OCR SDK。

    在示例代码“img_path”中输入需要识别的图片,并执行代码。

API调用

本章节以postman为例介绍如何调用API,建议使用SDK。

使用API调用时,因为需要使用Token进行认证鉴权,在鉴权中,会存在因华为账号升级导致的“无法使用主账户获取Token”的情况,产生“The username or password is wrong.”报错,该问题可以通过创建一个IAM子用户获取Token解决,处理步骤请参见帐密报错“The username or password is wrong.”

  1. 获取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
  2. 调用自定义OCR API。

    依据下图的对应关系,将自定义OCR部署后生产的API填写至postman中。url中的{endpoint}需要替换为ocr.cn-north-4.myhuaweicloud.com。

    在"image"参数中,输入图片的base64编码即可调用API。
    图10 调用自定义OCR API

相关文档