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

如何开发推荐类AI应用

推荐类AI应用通过分析用户历史行为,快速推荐合适的内容给感兴趣的用户。

场景描述

根据所有客户的历史下单情况给某些客户精准推荐感兴趣的产品。

前提条件

  1. 参考如何登录经典版环境配置中操作,登录AstroZero经典版环境配置。
  2. 在左侧导航栏中,选择“系统管理 > 数据处理 > 数据导入”,单击“新建”,导入对象依赖的选项列表数据“picklist.zip”(单击下载链接,获取该包)。
  3. 推荐前,需要准备好有效的推荐内容、接收人、交互对象。
    本节示例场景下请参考如下方法导入对象元数据:在AstroZero管理中心左侧导航栏中,选择“系统管理 > 数据处理 > 元数据导入”,单击“新建”,导入元数据包“推荐类AI应用对象元数据表.zip”(单击下载链接,获取该包)。
    • 推荐内容表示您想要推荐的内容,例如产品对象“aienable__product__CST”。
    • 接收人表示接收推荐的人,例如互联网用户对象“aienable__customer__CST”。
    • 交互对象表示推荐对象与接收人对象之间的交互对象,例如订购关系对象“aienable__order__CST”。
    表1 aienable__product__CST对象说明

    字段标签

    字段名称

    数据类型

    字段描述

    product_id

    aienable__productId__CST

    文本

    产品ID。

    product_category_name

    aienable__productCategoryName__CST

    文本

    产品所属分类。

    product_name_lenght

    aienable__productNameLenght__CST

    数字

    产品名称。

    product_description_lenght

    aienable__productDescriptionLenght__CST

    数字

    产品描述信息。

    product_photos_qty

    aienable__productPhotosQty__CST

    选项列表

    展示该产品的图片数量。

    product_weight_g

    aienable__productWeightG__CST

    数字

    产品重量。

    product_length_cm

    aienable__productLengthCm__CST

    数字

    产品长度。

    product_height_cm

    aienable__productHeightCm__CST

    数字

    产品高度。

    product_width_cm

    aienable__productWidthCm__CST

    数字

    产品宽度。

    表2 aienable__customer__CST对象说明

    字段标签

    字段名称

    数据类型

    字段描述

    customer_state

    aienable__customerState__CST

    选项列表

    客户所在地区。

    customer_id

    aienable__customerId__CST

    文本

    客户ID。

    表3 aienable__order__CST对象说明

    字段标签

    字段名称

    数据类型

    字段描述

    order_id

    aienable__orderId__CST

    文本

    订单ID。

    customer_id

    aienable__customerId__CST

    文本

    客户ID。

    product_id

    aienable__productId__CST

    文本

    产品ID。

    price

    aienable__price__CST

    数字

    产品单价。

    freight_value

    aienable__freightValue__CST

    数字

    包装重量。

    order_status

    aienable__orderStatus__CST

    选项列表

    订单状态。

    order_purchase_timestamp

    aienable__orderPurchaseTimestamp__CST

    文本

    客户下单该产品日期。

    order_delivered_customer_date

    aienable__orderDeliveredCustomerDate__CST

    文本

    产品预计开始邮寄的日期。

    order_estimated_delivery_date

    aienable__orderEstimatedDeliveryDate__CST

    文本

    产品预计到手日期。

  1. 已准备好用于分析的历史数据。其中推荐内容数据至少需要10条,接收人数据至少需要10条,交互对象数据至少需要50条。

    本节示例场景下请参考如下方法导入数据:在AstroZero管理中心左侧导航栏中,选择“系统管理 > 数据处理 > 数据导入”,单击“新建”,导入数据包“推荐类AI应用数据样例.zip”(单击下载链接,获取该包)。

创建推荐类AI应用

  1. 参考如何进入经典开发环境中操作,登录经典版开发环境。
  2. 首页 > 项目页签中,单击“AI应用”。
  3. 单击“创建场景式AI服务”,设置应用名称、描述信息(可选),选择“推荐服务”类型,单击“确定”。
  4. 根据业务需求,选择推荐内容对象、接收人对象以及交互对象,单击“下一步”。
  5. 选择与推荐内容与接收人有关的字段,单击“下一步”。
  6. 检查配置是否正确,单击“开始训练”。

    系统将根据数据训练推荐项目模型,通常需要花费几分钟,请耐心等待。

  7. 查看此训练相关的详细信息,单击“发布”。

    如下图所示,状态为“已发布”,表示场景式AI服务发布成功。

    图1 已发布

在服务编排中使用AI服务

  1. 推荐模型发布后,在图1中单击“使用”,可使用该推荐模型进行推荐。

    系统支持使用服务编排或者脚本来调用推荐服务。

  2. 选择使用该推荐服务的应用,保持默认所选页签“在Flow中使用”,单击“开发”。

    图2 在服务编排中使用

    系统会自动为所选应用创建好“AIExample”文件夹和归属于该文件夹的服务编排。

  3. 在弹出的服务编排编辑页面查看如下信息。

    1. 在页面右侧选择,在全局上下文页面查看到系统已自动创建如下变量。
      图3 查看变量
      表4 变量说明

      变量名

      类型

      描述

      dataInputs

      任意

      输入参数。

      resCode

      文本

      返回码,如果返回“0”代表请求成功。

      resMsg

      文本

      返回消息,如果成功状态,通常会返回“成功”,其他情况会返回具体的错误信息。

      result

      任意

      调用推荐服务请求返回的推荐内容。

    2. 查看整个服务编排的入参、出参。
      图4 查看入参出参
    3. 选择推荐服务图元,查看配置信息。
      图5 图元配置

  4. 单击编辑器上方的,保存服务编排。
  5. 单击编辑器上方的,运行服务编排。
  6. 输入入参,入参可从图2中“输入参数详情”区域单击获取,给入参即相关字段配上测试值。

    其中,“recipients_id”为5配置的接收人对象字段值,该场景表示接受推荐内容的客户ID。以下输入参数中“fff7466a253c0e59499ea943462c10f9”和“677ea793bab5253b52c7f73f0e120b74”为有效的客户ID,“6775ba6a3e92020abc8e6cd6e19e867a”为无效的客户ID,即该客户ID不存在。

    “N”表示给接收人推荐的产品数量。
    {
      "dataInputs": {
        "recipients_id": [
          "fff7466a253c0e59499ea943462c10f9",
          "677ea793bab5253b52c7f73f0e120b74",
          "6775ba6a3e92020abc8e6cd6e19e867a"
        ],
        "N": 3
      }
    }

    输出以下结果,表示调用推荐服务成功,给有效客户ID的推荐内容为5配置的产品ID。其中,“rating”值为预测接收人购买该产品的概率。这里看出,当输入无效客户ID时,不会推荐相关内容。

    {
      "interviewId": "002N000000pLvvBbbBke",
      "outputs": {
        "resCode": "0",
        "resMsg": "成功",
        "result": {
          "677ea793bab5253b52c7f73f0e120b74": [
            {
              "aienable__productId__CST": "5727b4e9463bfa0b43bf97397c4b7c44",
              "rating": 0.9780523919210801
            },
            {
              "aienable__productId__CST": "58e3dad74a022a8e41571be503143e5b",
              "rating": 0.9343108103239535
            },
            {
              "aienable__productId__CST": "58efb9b638561ce132216a9a612513e2",
              "rating": 0.9228962093643385
            }
          ],
          "fff7466a253c0e59499ea943462c10f9": [
            {
              "aienable__productId__CST": "5727b4e9463bfa0b43bf97397c4b7c44",
              "rating": 1
            },
            {
              "aienable__productId__CST": "57f2bc497c1a3ebe41ba7a06d78ed159",
              "rating": 0.979109618457509
            },
            {
              "aienable__productId__CST": "574597aaf385996112490308e37399ce",
              "rating": 0.9502617871072747
            }
          ]
        }
      }
    }

  7. 单击编辑器上方的,启用服务编排。

在脚本中使用AI服务

  1. 推荐模型发布后,在图1中单击“使用”,可使用该推荐模型进行推荐。

    系统支持使用服务编排或者脚本来调用推荐服务。

  2. 选择使用该推荐服务的应用,选择页签“在Script中使用”,单击“开发”。

    图6 在脚本中使用
    系统会自动为所选应用创建好调用该AI的脚本,代码示例如下:
    import * as aienable from 'aienable';
    
    export class Input {
        @action.param({ type: "Any", required: false, description: "name" })
        name: string;  // name为已发布的预测/推荐服务名称
        @action.param({ type: "Any", required: false, description: "input" })
        dataInputs: JSON;
    }
    
    export class Output {
        @action.param({ type: "Any" })
        result: JSON;
    }
    
    export class testAIEnable {
        @action.method({ input: "Input", output: "Output", description: "do a operation" })
        run(input: Input): void {
            let client = aienable.newClient("recommendation_services")
            let result = client.recommend(input.name, input.dataInputs);
            console.log(result)
        }
    }

  3. 单击编辑器上方的,保存脚本。
  4. 单击编辑器上方的,运行脚本。
  5. 在页面底部“输入参数”页签输入请求参数,在图6中“输入参数详情”区域单击获取,给入参即相关字段配上测试值。
  6. 单击测试窗口右上角的,执行脚本。

    其中,“recipients_id”为5配置的接收人对象字段值,该场景表示接受推荐内容的客户ID。以下输入参数中“fff7466a253c0e59499ea943462c10f9”和“677ea793bab5253b52c7f73f0e120b74”为有效的客户ID,“6775ba6a3e92020abc8e6cd6e19e867a”为无效的客户ID,即该客户ID不存在。

    “N”表示给接收人推荐的产品数量。

    {
    	"name": "test_02",
    	"dataInputs": {
    		"recipients_id": [
    			"fff7466a253c0e59499ea943462c10f9",
    			"677ea793bab5253b52c7f73f0e120b74",
    			"6775ba6a3e92020abc8e6cd6e19e867a"
    		],
    		"N": 3
    	}
    }

    输出以下结果,表示调用推荐服务成功,给有效客户ID的推荐内容为5配置的产品ID。其中“rating”值为预测接收人购买该产品的概率。这里看出,当输入无效客户ID时,不会推荐相关内容。

    {
         resCode: '0', 
         resMsg: '成功', 
         result: {
             677ea793bab5253b52c7f73f0e120b74: [ {
                     aienable__productId__CST: '5727b4e9463bfa0b43bf97397c4b7c44', 
                     rating: 0.9780523919210801
                 }, {
                     aienable__productId__CST: '58e3dad74a022a8e41571be503143e5b', 
                     rating: 0.9343108103239535
                 }, {
                     aienable__productId__CST: '58efb9b638561ce132216a9a612513e2', 
                     rating: 0.9228962093643385
                 } ], 
             fff7466a253c0e59499ea943462c10f9: [ {
                     aienable__productId__CST: '5727b4e9463bfa0b43bf97397c4b7c44', 
                     rating: 1
                 }, {
                     aienable__productId__CST: '57f2bc497c1a3ebe41ba7a06d78ed159', 
                     rating: 0.979109618457509
                 }, {
                     aienable__productId__CST: '574597aaf385996112490308e37399ce', 
                     rating: 0.9502617871072747
                 } ]
         }
     }

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

    相关文档

    相关产品