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 模型計算服務