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 模型计算服务