搭建商品属性值生成系统

为解决电商场景中手动填写商品属性耗时费力且易出错的问题,PolarDB MySQL提供了内置的AI商品属性值生成功能。您无需进行模型训练,通过简单的SQL调用,即可根据商品名称等信息自动填充品牌、材质等属性,从而快速实现商品信息的标准化,显著提升上架效率与数据质量。

功能简介

商品属性值生成功能通过内置的AI模型_polar4ai_cpv_agent实现。该模型是PolarDB基于通义千问语言模型打造,无需您进行额外训练即可直接调用。它的核心能力是根据您提供的商品信息(如商品名称)和类目属性模板,智能推理并生成相应的属性值。

它支持两种调用方式,以满足不同业务场景的需求:

  • 批量推理:对数据库表中已有的多条商品数据进行批量处理。

  • 实时推理:对单条不写入数据库的临时数据进行实时属性值生成。

前提条件

  1. 增加AI节点,并设置AI节点的连接数据库账号:开启PolarDB for AI功能

    说明
    • 若您在购买集群时已添加AI节点,则可以直接为AI节点设置连接数据库的账号。

    • AI节点的连接数据库账号需具有读写权限,以确保能够顺利读取和写入目标数据库。

  2. 使用集群地址连接PolarDB集群:登录PolarDB for AI

输入数据说明

_polar4ai_cpv_agent模型通过解析一个包含特定字段的JSON字符串来获取输入信息。

字段名称

字段类型

是否必选

说明

商品名称

字符串

待推理的商品名称。

类目属性模板

JSON

定义了需要模型填充哪些属性的模板。其格式为JSON对象,其中key为属性名,value为空字符串""

示例:{"类目属性模板": {"品牌": "", "材质": ""}}

类目属性限定

JSON

为特定属性提供一个可选值的列表,以约束模型的输出范围。其格式为JSON对象,其中key为属性名,value为属性值,list类型,包含所有可能取值。

示例:{"类目属性限定": {"适用人群": ["通用", "儿童", "成人"]}}

其他平台类目属性

JSON

可提供商品在其他平台的已有属性作为参考信息,以提升推理准确性。其格式为JSON对象,其中key为属性名,value为属性值,字符串类型。

示例:{"其他平台类目属性": {"图案":"小鹿","型号":"洗漱杯","销售渠道类型":"纯电商","安装方式":"免打孔","适用人群":"儿童,通用","风格":"卡通","款式":"带盖","容量":"100-300ML","工艺":"塑料免打孔"}}

商品编码

字符串

商品在您系统中的唯一编码。

商品类目

字符串

商品在您系统中的所属分类。

示例数据

{
    "商品名称": "乐扣乐扣塑料漱口杯家用洗漱杯卡通可爱牙刷杯带手柄",
    "类目属性模板": {
        "品牌": "", 
        "材质": ""
    },
    "类目属性限定": {
        "适用人群": ["通用", "儿童", "成人"], 
        "材质": ["陶瓷", "玻璃", "木", "有机玻璃", "金属", "塑料", "树脂", "硅胶", "小麦秸秆", "其他"]
    }, 
    "其他平台类目属性": {
        "图案":"小鹿",
        "型号":"洗漱杯",
        "销售渠道类型":"纯电商",
        "安装方式":"免打孔",
        "适用人群":"儿童,通用",
        "风格":"卡通",
        "款式":"带盖",
        "容量":"100-300ML",
        "工艺":"塑料免打孔"
    }, 
    "商品编码": "123456", 
    "商品类目": "洗漱杯"
}

注意事项

  • 模型调用_polar4ai_cpv_agent模型仅支持在线推理,不支持离线推理。

  • 输入数据格式

    • 输入数据必须为可解析的JSON字符串。

    • 输入数据中不得出现\\n\r等特殊转义字符。

  • 输入字段要求

    • JSON输入中必须包含商品名称类目属性模板两个字段。

    • 所有输入字段(如商品名称类目属性模板类目属性限定等)的名称均为固定字段名,不可修改。

  • 表结构要求(仅适用于批量推理场景)

    • 数据表必须包含一个名为input的列,且该列名不可更改,用于存放待推理的JSON数据

    • input列的数据类型必须为LONGTEXT

场景示例

批量推理:对表中多条商品数据进行批量属性值生成

此场景适用于对已存储在数据库中的大量商品信息进行统一处理。

  1. 准备数据 首先,创建一张用于存放输入数据的表。该表必须包含一个名为input、类型为LONGTEXT的列,用于存放待推理的JSON数据

    CREATE TABLE cpv_data (
      input LONGTEXT
    );

    然后,将待推理的JSON数据插入到cpv_data表中。

    INSERT INTO cpv_data (input) VALUES('{"商品名称": "乐扣乐扣塑料漱口杯家用洗漱杯卡通可爱牙刷杯带手柄", "类目属性模板": {"品牌": "", "材质": ""}, "类目属性限定": {"适用人群": ["通用", "儿童", "成人"], "材质": ["陶瓷", "玻璃", "木", "有机玻璃", "金属", "塑料", "树脂", "硅胶", "小麦秸秆", "其他"]}, "其他平台类目属性": {"图案":"小鹿","型号":"洗漱杯","销售渠道类型":"纯电商","安装方式":"免打孔","适用人群":"儿童,通用","风格":"卡通","款式":"带盖","容量":"100-300ML","工艺":"塑料免打孔"}, "商品编码": "123456", "商品类目": "洗漱杯"}');
    INSERT INTO cpv_data (input) VALUES('{"商品名称": "德国指甲刀全套美甲指甲刀指甲钳斜口指甲剪刀", "类目属性模板": {"是否进口": "", "产地": "", "材质": "", "商品包装中文标签": ""}, "类目属性限定": {"是否是套装": ["套装", "非套装"], "是否进口": ["是", "否"], "是否电动": ["电动", "非电动"], "材质": ["玻璃", "ABS", "锰钢", "不锈钢", "碳钢", "塑料", "亚克力", "树脂"]}, "其他平台类目属性": {"功能":"耐用","材质":"不锈钢,不锈钢"}, "商品编码": "456789", "商品类目": "指甲刀/指甲钳"}');
  2. 执行推理 使用PREDICT语法调用模型,对cpv_data表中的所有数据进行推理。

    /*polar4ai*/SELECT * FROM PREDICT(
      MODEL _polar4ai_cpv_agent, 
      SELECT * FROM cpv_data
    ) WITH (x_cols='input');
  3. 查看结果 执行成功后,模型会返回一个包含推理结果的generate_result列。

    +--------------------------------------------------------------------------+
    | generate_result                                                          |
    +--------------------------------------------------------------------------+
    | {"品牌": "乐扣乐扣", "材质": "塑料"}                                        |
    | {"是否进口": "否", "产地": "德国", "材质": "不锈钢", "商品包装中文标签": "有"}   |
    +--------------------------------------------------------------------------+

实时推理:对单条商品数据进行实时属性值生成

此场景适用于需要即时获得单个商品属性值生成结果的应用,例如在商品编辑页面提供实时建议。

  1. 执行推理 直接在PREDICT语句中传入待推理的JSON数据,无需创建和操作数据表。

    /*polar4ai*/SELECT * FROM PREDICT(
        MODEL _polar4ai_cpv_agent,
        SELECT '{"商品名称": "乐扣乐扣塑料漱口杯家用洗漱杯卡通可爱牙刷杯带手柄", "类目属性模板": {"品牌": "", "材质": ""}, "类目属性限定": {"适用人群": ["通用", "儿童", "成人"], "材质": ["陶瓷", "玻璃", "木", "有机玻璃", "金属", "塑料", "树脂", "硅胶", "小麦秸秆", "其他"]}, "其他平台类目属性": {"图案":"小鹿","型号":"洗漱杯","销售渠道类型":"纯电商","安装方式":"免打孔","适用人群":"儿童,通用","风格":"卡通","款式":"带盖","容量":"100-300ML","工艺":"塑料免打孔"}, "商品编码": "123456", "商品类目": "洗漱杯"}'
    ) WITH ();
  2. 查看结果 模型将直接返回该条数据的推理结果。

    +--------------------------------------+
    | generate_result                      |
    +--------------------------------------+
    | {"品牌": "乐扣乐扣", "材质": "塑料"}    |
    +--------------------------------------+