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-max,从给定的文本描述中提取指定标签对应的结构化信息。
-- 在SQL作业中使用模型计算服务
SET odps.task.major.version=sql_modelstudio;
SET odps.namespace.schema=true;
SELECT AI_EXTRACT(
bigdata_public_modelset.default.`qwen3-max`,
DEFAULT_VERSION,
'张伟是一名35岁的软件工程师,在阿里云杭州办公室工作。他于2020年加入公司,专注于分布式计算领域。',
ARRAY('姓名', '年龄', '职业', '公司', '城市', '入职年份')
) AS extracted_info;
-- 返回结果
+----------------+
| extracted_info |
+----------------+
| {"姓名":"张伟","年龄":35,"职业":"软件工程师","公司":"阿里云","城市":"杭州","入职年份":2020} |
+----------------+示例 2:从表数据中提取信息
调用 MaxCompute 提供的公共模型 Qwen3-4B-GGUF,从表中存储的客户评价中提取产品、问题和情感信息。
-- 示例数据
CREATE TABLE customer_reviews (
review STRING
);
INSERT INTO customer_reviews VALUES
('新买的笔记本电脑续航很好,但键盘手感偏差。'),
('物流很快,耳机的音质对得起这个价格,非常满意。'),
('显示器有坏点,已经退货了。不过客服态度不错。');
-- 从表中的客户评价提取结构化信息
SET odps.sql.ai.treat.as.common.model=true;
SET odps.namespace.schema=true;
SELECT
review,
AI_EXTRACT(
bigdata_public_modelset.default.`Qwen3-4B-GGUF`,
DEFAULT_VERSION,
review,
ARRAY('产品', '问题', '情感倾向')
) AS extracted_info
FROM customer_reviews;
-- 返回结果
+----------------------------------------------------+----------------------------------------------------------------------+
| review | extracted_info |
+----------------------------------------------------+----------------------------------------------------------------------+
| 新买的笔记本电脑续航很好,但键盘手感偏差。 | {"产品":"笔记本电脑","问题":"键盘手感偏差","情感倾向":"混合"} |
| 物流很快,耳机的音质对得起这个价格,非常满意。 | {"产品":"耳机","问题":null,"情感倾向":"积极"} |
| 显示器有坏点,已经退货了。不过客服态度不错。 | {"产品":"显示器","问题":"坏点","情感倾向":"消极"} |
+----------------------------------------------------+----------------------------------------------------------------------+