AI_GENERATE

AI_GENERATEMaxCompute提供的AI Function,用于调用模型结合提示词执行推理任务,支持自然语言生成、复杂逻辑分析、情感分类、多模态理解等场景。用户可通过SQL直接完成非结构化数据的智能处理,无需外部服务依赖。

命令格式

AI_GENERATE在调用LLM大语言模型和MLLM多模态大语言模型时,会有不同的函数签名。

  • model_typeLLM大语言模型时,函数签名如下:

    STRING AI_GENERATE(
      STRING <model_name> , 
      STRING <version_name>, 
      STRING <prompt> 
      [, STRING <model_parameters>]
    );
  • model_typeMLLM多模态大语言模型时,函数签名如下:

    STRING AI_GENERATE(
      STRING <model_name>, 
      STRING <version_name>, 
      STRING | BINARY <unstructured_data> ,
      STRING <prompt> 
      [, STRING <model_parameters>]
    );

参数说明

  • model_name:必填。STRING类型。待使用的模型名。支持模型的model_typeLLMMLLM。

  • version_name:必填。STRING类型。待使用的模型版本名。如果调用默认version,支持直接输入DEFAULT_VERSION

  • prompt:必填。STRING类型。待输入的模型提示词。STRING类型常量、列名或表达式。

  • unstructured_data:必填(当model_typeMLLM时)。STRINGBINARY类型。需要处理的多模态数据,支持指定为图片STRING类型的URL地址,或图片BINARY类型二进制表示,当指定为BINARY类型时,需要在创建模型时同时指定BINARY类型的输入参数。

  • model_parameters:选填。STRING类型。支持指定模型调用相关参数max_tokens、temperature、top_p,格式为'{"max_tokens": 500, "temperature": 0.6, "top_p": 0.95}'。参数说明如下:

    • max_tokens:设置模型单次调用输出token的最大数量,对于MaxCompute公共模型,默认值为4096。

    • temperature:介于01之间的值,用于控制模型输出的随机性。越高的值会导致模型输出的多样化和随机性越高。

    • top_p:介于01之间的值,用于控制模型的随机性和多样性,越大的值会导致模型输出的随机性越高。

说明

使用AI Function调用公共模型推理时,需要SET odps.sql.using.public.model=true;打开使用公共模型开关。

返回值说明

返回STRING类型,模型的生成内容结果。

使用示例

  • 示例1:调用模型进行内容生成。

    调用MaxCompute提供的公共模型Qwen3-0.6B-GGUF,直接进行模型调用与内容生成。

    SET odps.sql.using.public.model=true;
    -- 返回结果。
    -- "The capital of China is **Beijing**."
    SELECT AI_GENERATE(bigdata_public_modelset.default.Qwen3-0.6B-GGUF,DEFAULT_VERSION,'what is the capital of China');
  • 示例2:调用模型进行情感分析。

    调用MaxCompute提供的公共模型Qwen3-1.7B-GGUF,对网络用户评论数据进行情感分析。

    SET odps.sql.using.public.model=true;
    SELECT 
        prompt,
        AI_GENERATE(
            bigdata_public_modelset.default.Qwen3-1.7B-GGUF,
            DEFAULT_VERSION,
            concat('请对以下评论进行情感分析分类,输出结果仅限于以下三个选项之一:正面、负面、中性。待分析的评论:', prompt)
        ) AS generated_text
    FROM (
        VALUES 
            ('今天天气真好,心情很不错!阳光明媚,适合出去散步。 /no_think'),
            ('今天天气真好,心情很不错!阳光明媚 /no_think'),
            ('科技发展日新月异,人工智能改变生活。 /no_think'),
            ('防控措施很到位,为医护人员点赞! /no_think'),
            ('这个商品质量很差 /no_think')
    ) t (prompt);
    
    -- 返回结果:
    +-----------------------------------------------------+----------------+
    | prompt                                              | generated_text |
    +-----------------------------------------------------+----------------+
    | 今天天气真好,心情很不错!阳光明媚,适合出去散步 /no_think  | "正面"          |
    | 今天天气真好,心情很不错!阳光明媚 /no_think              | "正面"          |
    | 科技发展日新月异,人工智能改变生活。 /no_think            | "正面"          |
    | 防控措施很到位,为医护人员点赞! /no_think            | "正面"          |
    | 这个商品质量很差 /no_think                             | "负面"          |
    +-----------------------------------------------------+----------------+
    
  • 示例3:调用模型进行多模态数据处理。

    调用已经创建好的模型PAI_EAS_Qwen25_Omni_3B(PAI-EAS远程模型),并创建好名为image_demoObject Table,详细步骤参考使用MaxCompute远程模型自动生成电商选品描述,即可调用AI Function。基于图片的URL地址及提示词进行模型调用,实现商品类目打标。

    SELECT
      key,
      AI_GENERATE(
        PAI_EAS_Qwen25_Omni_3B, v1, image_url,
        "从电商商品销售海报中识别并提取商品所属的类目。返回结果仅限于如下六个选项之一:美妆、服装、日用、食品、其他、电子产品,不包含其他文字或信息"
      ) AS item_catagory
      FROM (
        SELECT GET_SIGNED_URL_FROM_OSS(
          'pd_test_model.default.image_demo', key, 604800
        ) AS image_url, key AS key
        FROM pd_test_model.default.image_demo
    ) Limit 10;
    
    -- 返回结果:
    +--------------------+----------------+
    | key                | item_catagory  |
    +--------------------+----------------+
    | alimamazszw-1.jpg  | 食品           | 
    | alimamazszw-10.jpg | 电子产品        | 
    | alimamazszw-11.jpg | 电子产品        | 
    | alimamazszw-12.jpg | 美妆           | 
    | alimamazszw-13.jpg | 电子产品        | 
    | alimamazszw-14.jpg | 日用           | 
    | alimamazszw-15.jpg | 美妆           | 
    | alimamazszw-16.jpg | 美妆           | 
    | alimamazszw-18.jpg | 日用           | 
    +--------------------+---------------+