AI_EXTRACT

更新时间:
复制 MD 格式

AI_EXTRACT 是 MaxCompute 提供的 AI Function,通过调用模型从给定的文本数据中提取指定的标签信息。

命令格式

STRING AI_EXTRACT(
  STRING <model_name>,
  STRING <version_name>,
  STRING <input>,
  ARRAY<STRING> <labels>
  [, STRING <model_parameters>]
);

参数说明

  • model_name:必填。STRING 类型。待使用的模型名,请参见SQL AI Function

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

  • input:必填。STRING 类型。待被提取的文本。

  • labels:必填。ARRAY<STRING> 类型。期望提取的标签信息列表。标签数量范围为 [1, 20]。

  • model_parameters:选填。STRING 类型。支持指定模型调用相关参数 max_tokens、temperature、top_p,格式为

    '{"max_tokens": 500, "temperature": 0.6, "top_p": 0.95}' 。参数说明如下:

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

    • temperature:介于 0 到 1 之间的值,用于控制模型输出的随机性强度。值越大,输出越具创意和多样性;值越低,输出越确定和保守。

    • top_p:介于 0 到 1 之间的值,用于限定模型选择的备选标签范围。值越大,备选范围越广,多样性越高;值越小,范围越窄,结果越集中。

返回值说明

返回 JSON 格式的 STRING 类型,包含所有提取标签及其对应值的字符串。返回规则如下:

  • input 非 STRING 类型,或 labels 非 ARRAY<STRING> 类型时,返回报错。

  • labels 标签为常量,且数量超过 20 时,返回报错。

  • input、labels 为 NULL 或 input 为空字符串(""),返回 NULL。

  • input 中没有提取标签 labels 对应的信息时,提取标签 labels 所对应的值为 NULL。

使用示例

示例 1:使用常量标签提取信息

调用 MaxCompute 提供的公共模型 qwen3.7-max,从给定的文本描述中提取指定标签对应的结构化信息。

SET odps.namespace.schema=true;

SELECT AI_EXTRACT(
    bigdata_public_modelset.default.`qwen3.7-max`,
    DEFAULT_VERSION,
    '张伟是一名35岁的软件工程师,在阿里云杭州办公室工作。他于2020年加入公司,专注于分布式计算领域。',
    ARRAY('姓名', '年龄', '职业', '公司', '城市', '入职年份')
) AS extracted_info;

-- 返回结果
+----------------+
| extracted_info |
+----------------+
| {\n  "姓名": "张伟",\n  "年龄": 35,\n  "职业": "软件工程师",\n  "公司": "阿里云",\n  "城市": "杭州",\n  "入职年份": 2020\n} |
+----------------+

示例 2:从表数据中提取信息

调用 MaxCompute 提供的公共模型 deepseek-v4-pro,从表中存储的客户评价中提取产品、问题和情感信息。

-- 示例数据
CREATE TABLE customer_reviews (
    review STRING
);

INSERT INTO customer_reviews VALUES
    ('新买的笔记本电脑续航很好,但键盘手感偏差。'),
    ('物流很快,耳机的音质对得起这个价格,非常满意。'),
    ('显示器有坏点,已经退货了。不过客服态度不错。');

-- 调用模型从表中的客户评价提取结构化信息
SET odps.namespace.schema=true;

SELECT
    review,
    AI_EXTRACT(
        bigdata_public_modelset.default.`deepseek-v4-pro`,
        DEFAULT_VERSION,
        review,
        ARRAY('产品', '问题', '情感倾向')
    ) AS extracted_info
FROM customer_reviews;

-- 返回结果
+--------+----------------+
| review | extracted_info |
+--------+----------------+
| 新买的笔记本电脑续航很好,但键盘手感偏差。 | {"产品": "笔记本电脑", "问题": "键盘手感偏差", "情感倾向": "负面"} |
| 物流很快,耳机的音质对得起这个价格,非常满意。 | {"产品": "耳机", "问题": null, "情感倾向": "积极"} |
| 显示器有坏点,已经退货了。不过客服态度不错。 | {"产品": "显示器", "问题": "坏点", "情感倾向": "负面"} |
+--------+----------------+

常见问题

公共模型常见问题排查

问题现象:调用模型计算服务所支持的公共模型时,详细报错信息如下。

FAILED: ODPS-0130071:[1,8] Semantic analysis exception - inference quota status check failed, error message: region cn-shanghai not found in inference quota

产生原因:当前项目所在的region(如 cn-shanghai)下未开通模型计算服务,导致无法正常调用 AI 推理资源。

处理方法:请前往阿里云控制台,为当前项目的 Region 开通模型计算服务。详细操作信息请参见购买与使用MaxCompute 模型计算服务