更新时间:2023-04-24 GMT+08:00
分享

对接华为云ModelArts Pro

背景信息

ModelArts Pro是为企业级AI应用打造的专业开发套件。基于华为云的先进算法和快速训练能力,提供预置工作流和模型,提升企业AI应用的开发效率,降低开发难度。同时,支持客户自主进行工作流编排,快速实现应用的开发、共享和发布,共建开放生态,实现普惠行业AI落地。ModelArts Pro包括自然语言处理套件、文字识别套件、视觉套件等,能够快速响应不同行业、不同场景的AI落地需求。更多关于ModelArts Pro的介绍,请参见ModelArts Pro官方网站

在AstroZero中,通过配置ModelArts Pro连接器,可实现AstroZero与华为ModelArts Pro对接。对接后可使用ModelArts Pro提供的文字识别套件、自然语言处理套件提供的能力。

场景描述

对行程码进行识别。

前提条件

  • 使用ModelArts Pro过程中,ModelArts Pro需要访问ModelArts服务的云资源。请先申请开通华为云ModelArts服务,具体操作请参见准备工作
  • AstroZero对接ModelArts Pro,使用ModelArts Pro提供的文字识别套件、自然语言处理套件提供的能力。因此需要先申请文字识别套件和自然语言处理套件,具体操作请参见申请行业套件
  • 已参考获取AK/SK中操作,获取AK(Access Key ID)、SK(Secret Access Key),即访问密钥对。
  • 本节场景是对行程码图片进行识别,需要在ModelArts Pro上创建并部署上线用于对行程码进行识别的模型。由于各省份行程码可能不一致,所以部署的为多模板,具体操作请参见使用多模板工作流开发应用

创建ModelArts Pro连接器

  1. 参考创建连接器入口中操作,进入创建连接器页面。
  2. 在左侧列表中,选择“AI > ModelArtsPro”,单击“+”。

    图1 创建ModelArtsPro连接器

  3. 设置ModelArts Pro对接参数,单击“保存”。

    图2 创建ModelArtsPro
    • 名称:连接器的名称。
    • 区域:对接ModelArts Pro的服务区域。
    • 访问密钥:访问密钥ID,与私有访问密钥关联的唯一标识符,访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。配置为前提条件中“AK”的值。
    • 密钥:私有访问密钥,与访问密钥ID结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。配置为前提条件中“SK”的值。
    • 项目ID:ModelArts Pro服务区域对应的项目ID。
    • 打包当前配置:默认为选中,对信息敏感的场景,建议不勾选。

      选中该选项后,应用打包时会将当前配置的连接器信息(包括访问密钥和密钥)一并带入应用包中。例如,如果应用包发布到运行环境,当前配置默认会被同步到运行环境中。

  4. (可选)测试是否可识别行程码。

    1. 在该连接器详情页面,单击“测试”。
    2. 配置测试参数,单击“测试”。
      页面弹出“成功”提示框,表明成功识别行程码。
      图3 配置测试参数
      • 选择类型:识别的主体可以是图片或文本信息。本示例选择“文字识别套件 / 图片文件”,并上传待识别的行程码图片。
        • 文字识别套件 / 图片URL:识别的主体是图片URL。
        • 文字识别套件 / 图片文件:识别的主体为图片文件。
        • 自然语言处理套件 / 文本信息:识别的主体为文本。
      • 模型Apig-Code:标识ModelArts Pro管理控制台中已部署服务的API接口,用于AstroZero调用ModelArts Pro中已上线的服务。“选择类型”设置为“自然语言处理套件 / 文本信息”时,才显示该参数。该参数值获取方法如下:
        1. 已部署模型,具体可参考自然语言处理套件(使用文本分类工作流开发应用)
        2. 登录ModelArts Pro管理控制台,单击“自然语言处理”套件卡片的“进入套件”,进入自然语言处理套件控制台。
        3. 在左侧导航栏,选择“应用开发>工作台”,进入我的应用页签。
        4. 在“我的应用”页签下,选择已创建的应用,单击操作列的“查看”。
        5. 单击页面上方的“应用监控”,查看“API URL”,如图4所示,该参数值为“API URL”中的一串字符串。
          图4 查看“API URL”
      • 模型Id:ModelArts Pro管理控制台中,已上线的模型ID。
        图5 获取模型Id
      • 是否多模板:模型模板是否为多模板。“选择类型”设置为“文字识别套件”时,才会显示该参数。本示例场景,识别行程码的模板为多模板,请选择“是”。

在脚本中调用连接器

在脚本中,通过调用连接器,实现调用ModelArts Pro的接口。

  1. 参考开发一个简单脚本实例中操作,创建一个空白脚本。

    图6 新建空白脚本

  2. 在脚本编辑器中,输入如下代码。

    import * as modelartspro from 'modelartspro';
    
    export class Input {
        @action.param({ type: "String", required: false, description: "the image url" })
        url: string;
    
        @action.param({ type: "String", required: false, description: "the base64 coded image" })
        image: string;
    
        @action.param({ type: "Boolean", required: false, description: "" })
        isMultiTemplate: boolean
    
        @action.param({ type: "String", required: false, description: "" })
        modelId: string
    }
    
    export class Output {
        @action.param({ type: "string" })
        result: string;
    }
    
    
    export class testModelartsPro {
    
        @action.method({ input: "Input", output: "Output", description: "modelartspro test case" })
        run(input: Input): void {
            // 填写实例化的modelartspro连接器名称
            let client = modelartspro.newClient("custom_defined_ocr")
            let result = null
            result = client.customOCRWithURL(input.url, input.isMultiTemplate, input.modelId);
            console.log(result)
        }
    }

    代码modelartspro.newClient("custom_defined_ocr")中“custom_defined_ocr”为连接器的名称,如果连接器名称带有命名空间前缀,代码中也要携带。

  3. 单击脚本编辑器页面上方的,保存脚本。
  4. 保存成功后,单击,运行脚本。
  5. 在页面底部“输入参数”中,设置输入请求参数,单击测试窗口右上角的

    {
        "url": "https://XXXXXXXX/testModelArtsPro.jpg",
        "isMultiTemplate": true,
        "modelId": "0b7f0f28-27e2-11ec-8f30-0255ac100057"
    }

    其中,“url”为图片的URL。

  6. 在日志页签,可查看到识别结果,表示执行脚本成功。

  7. 单击脚本编辑器页面上方的,启用脚本。

在服务编排中调用连接器

在服务编排中,调用连接器实现与ModelArts Pro的对接。

  1. 参考如何开发服务编排中操作,创建一个空白服务编排。

    图7 添加服务编排

  2. 创建该服务编排的入参和出参变量。

    由于该服务编排调用的是ModelArts Pro的服务接口,需要定义该服务编排的入参和出参,与接口的入参和出参类型保持一致。
    表1 服务编排变量

    变量类型

    参数名

    参数类型

    Input/Output Type

    说明

    普通变量

    isMultiTemplate

    复选框

    Input Only

    是否为多模板。

    普通变量

    image

    文本

    Input Only

    行程码图片URL。

    普通变量

    modelID

    文本

    Input Only

    模型Id。

    普通变量

    result

    任意

    Output Only

    输出的查询结果。

    普通变量

    error

    文本

    Output Only

    报错时的错误信息。

    1. 在服务编排设计页面右侧,单击
    2. 在全局上下文页面,单击“变量”后的加号。
      图8 创建变量
    3. 修改变量名为“isMultiTemplate”,并修改类型为复选框。
      图9 设置变量
      图10 修改类型为复选框
    4. 新增表1中其他变量,单击开始图元,在右侧设置整个服务编排的入参、出参。
      图11 设置入参、出参

  3. 在服务编排设计页面左侧,选择“连接器 > AI > ModelArtsPro”,拖拽“ModelArtsPro”图元到画布中。

    ModelArtsPro是系统预置的,与ModelArts Pro对接的接口。

    图12 拖拽ModelArtsPro图元到画布中

  4. 选中ModelArtsPro图元,单击
  5. 在“基本信息 > 连接器”中,选择已创建的连接器“custom_defined_ocr”。

    图13 选择已创建的连接器

  6. 单击,设置动作参数。

    图14 设置动作参数
    • 动作:调用的ModelArts的具体接口。本示例选择“custom_ocr_with_url”。
      • custom_ocr_with_url:根据图片URL识别图片。
      • custom_ocr_with_image:根据图片文件识别图片。
      • custom_nlp_with_text:根据文本信息识别文本。
    • 输入参数:调用接口的输入参数。在“目标”中选择参数,在“源”中拖入全局上下文中的对应变量。
    • 输出参数:调用接口的输出参数。
      • 在“源”中选择“result”,“目标”中拖入全局上下文中的“result”,用于接收调用结果。
      • 在“源”中选择“error”,“目标”中拖入全局上下文中的“error”,用于接收错误信息。

  7. 连接开始和ModelArtsPro图元。

    图15 连接图元

  8. 保存成功后,单击,运行服务编排。
  9. 设置输入参数,单击“运行”

    {
        "image": "https://XXXXXXX/testModelArtsPro.jpg",
        "isMultiTemplate": "true",
        "modelID": "0b7f0f28-27e2-11ec-8f30-0255ac100057"
    }

    其中,“image”为图片的URL。若输出识别结果,表示成功调用连接器。

    图16 输出结果

  1. 单击编辑器上方的,启用服务编排。
分享:

    相关文档

    相关产品