全部產品
Search
文件中心

E-MapReduce:AI Function

更新時間:Aug 25, 2026

StarRocks AI Function 將大語言模型 (LLM) 的能力直接嵌入到 OLAP 分析流程中,您可以在一條 SQL 內實現從資料處理、分析到 AI 推理的全過程,極大地提升了 BI 和資料分析的效率。

核心優勢

  • 資料不出湖,分析推理一體化:未經處理資料始終留存於 StarRocks 內,AI 函數僅按需加密傳輸待處理欄位至外部模型服務,杜絕資料複製與跨系統流轉,兼顧安全合規與分析效率。

  • 原生 SQL 互動,簡單易用:通過內建的 AI Function,您可以使用標準 SQL 將 LLM 的強大能力無縫整合到 OLAP 分析中,無需學習新的程式設計語言或工具。

  • 結果即時可用,高效分析:AI 函數返回的結果可立即參與後續的 JOIN、彙總、過濾等計算,無需二次匯入,實現了 AI 分析與資料查詢的即時聯動。

  • 高並發效率:僅需 4 線程即可驅動數百並發的 LLM 調用;相比之下,用戶端方案需要等量進程支撐,作業系統的調度往往會先於業務出現瓶頸。

  • 零營運限流:內建三層防護機制併兼容百鍊非標介面,您無需理解 RPM/TPM 等限流機制即可平穩運行。

  • Token 成本最佳化:通過謂詞下推減少調用量、緩衝消除重複請求、精確歸賬,同樣任務的費用可降低 30% 以上。

  • 工業級可靠性:提供行級容錯、智能重試與 Profile 可觀測能力,百萬行批處理可實現零人工幹預。

版本要求

  • 3.3.20-2.1.1及以上的版本支援

  • 3.5.16-2.1.1及以上的版本支援

支援的模型

StarRocks AI 中心為不同類型的 AI Function 分配相應模型。當前支援的模型如下:

能力類型

支援模型

適用 Function

文本產生(LLM)

qwen3.6-plusqwen3.7-plusqwen3.7-maxqwen3.6-flashglm-5.2deepseek-v4-pro

ai_sentimentai_classifyai_extractai_fix_grammarai_redactai_translateai_similarityai_summarizeai_complete(文本)、ai_filterai_aggai_agg_summary

翻譯

qwen-mt-plus

ai_translate

多模態理解

qwen3.5-omni-plusqwen-vl-plusqwen-vl-max

ai_complete

文本 Embedding

qwen3-vl-embeddingtext-embedding-v4

ai_embed

多模態 Embedding

qwen3-vl-embeddingtongyi-embedding-vision-plus

ai_embed_multimodalai_complete(多模態理解,配合多模態 LLM)

說明
  • qwen3-vl-embedding 同時出現在文本與多模態 Embedding 中,因其為統一向量空間模型,文本向量與映像/視頻向量可直接跨模態比對,是跨模態檢索的推薦選擇。

  • 自訂模型通過 AI 中心註冊的 Resource 接入,由 ai_custom_query / ai_custom_embedding / ai_custom_multimodal_embedding 調用。

函數一覽

Function 名稱

描述

預設模型類型

ai_sentiment(AI情感分析)

對輸入文本進行情感分析(正向/負向/中性等)

qwen3.6-plus

ai_classify(AI分類)

在給定的候選標籤中,為輸入文本選擇匹配度最高的標籤

qwen3.6-plus

ai_extract(實體擷取)

從文本中按指定結構(response_format)抽取欄位資訊

qwen3.6-plus

ai_fix_grammar(文法錯誤修正)

修複輸入文本的拼字與語法錯誤

qwen3.6-plus

ai_redact(PII脫敏)

對文本中指定類別的敏感資訊進行脫敏

qwen3.6-plus

ai_translate(機器翻譯)

將文本從源語言翻譯為目標語言

qwen3.6-plus

ai_similarity(語義相似性)

計算兩段文本的語義相似性

qwen3.6-plus

ai_summarize(AI總結)

產生一段文本的摘要

qwen3.6-plus

ai_complete(AI補全)

通用模型調用介面,支援自訂 Prompt、文本推理及多模態理解

文本產生:qwen3.6-plus;多模態:國內為 qwen3-vl-embedding,海外為 tongyi-embedding-vision-plus

ai_filter(AI條件過濾)

按自然語言條件對文本做語義過濾,返回布爾值,可用於 WHERE

qwen3.6-plus

ai_custom_query(自訂Resource查詢)

通過 Resource 調用自訂 LLM,執行自訂 Prompt

自訂模型

ai_embed(文本向量化)

將文本轉換為固定維度語義向量

國內:text-embedding-v4;海外:tongyi-embedding-vision-plus

ai_custom_embedding(自訂文本向量化)

通過 Resource 調用自訂 Embedding 模型產生文本向量

自訂模型

ai_embed_multimodal(多模態向量化)

將圖片/視頻/文本轉換為統一向量空間的語義向量

國內:qwen3-vl-embedding;海外:tongyi-embedding-vision-plus

ai_custom_multimodal_embedding(自訂多模態向量化)

通過 Resource 調用自訂多模態 Embedding 模型

自訂模型

ai_agg(AI彙總)

對一組文本按 Prompt 做彙總式 LLM 處理(跨行匯總)

qwen3.6-plus

ai_agg_summary(AI彙總摘要)

對一組文本做彙總式摘要,可選 hint 引導

qwen3.6-plus

說明

各 Function 會由 AI 中心分配一個預設模型。若執行個體註冊了多個模型,建議調用時顯式指定 model 或使用 Resource 形式,以便區分。

AI 文本基礎函數

ai_sentiment(AI情感分析)

對輸入文本進行情感分析,返回情感傾向標籤。

文法

ai_sentiment(text)
ai_sentiment(model, text)

參數說明

  • model:可選,文本產生模型名稱。省略時使用預設模型。

  • text:必填,待分析文本,STRING 類型。

傳回值

返回 VARCHAR 類型的情感標籤(如 positive / negative / neutral)。若 text 為 NULL 或Null 字元串,則返回 NULL。

使用樣本

SELECT ai_sentiment('這次的服務體驗非常糟糕,客服態度差,問題也沒解決。');
-- 返回:negative

ai_classify(AI分類)

根據提供的候選標籤列表,為輸入文本選擇匹配度最高的標籤。

文法

ai_classify(input, categories)
ai_classify(model, input, categories)

參數說明

  • model:可選。

  • input:必填,待分類文本,STRING 類型。

  • categories:必填,候選分類標籤,ARRAY<STRING> 類型。

傳回值

返回 JSON 類型,包含匹配的標籤。若 input 為 NULL 或Null 字元串,則返回 NULL。

ai_extract(實體擷取)

從輸入文本中按指定結構抽取欄位資訊,返回結構化結果。

文法

ai_extract(text, response_format)
ai_extract(model, text, response_format)

參數說明

  • text:必填,待抽取的源文本。

  • response_format:必填,期望輸出的結構定義,可為欄位列表或 JSON Schema。

傳回值

返回 JSON 類型。若 text 為 NULL 或Null 字元串,則返回 NULL。

ai_fix_grammar(文法錯誤修正)

檢測並修複輸入文本的拼字、文法與表達問題。

文法

ai_fix_grammar(text)
ai_fix_grammar(model, text)

傳回值

返回 VARCHAR 類型的修正後文本。若 text 為 NULL 返回 NULL。

ai_redact(PII脫敏)

對文本中指定類別的敏感資訊進行脫敏處理。

文法

ai_redact(input, categories)
ai_redact(model, input, categories)

參數說明

  • input:必填,待脫敏文本。

  • categories:必填,需要脫敏的資訊類別,ARRAY<STRING> 類型。

傳回值

返回脫敏後文本,命中類別以預留位置替換。

ai_translate(機器翻譯)

將輸入文本從源語言翻譯為目標語言。

文法

ai_translate(text, source_lang, target_lang)
ai_translate(model, text, source_lang, target_lang)

參數說明

  • text:必填,待翻譯文本。

  • source_lang:必填,源語言代碼(如 zh、en、auto)。

  • target_lang:必填,目標語言代碼。語言代碼參考 ISO-639。

傳回值

返回 VARCHAR 類型的翻譯後文本。

ai_similarity(語義相似性)

計算兩段文本的語義相似性。

文法

ai_similarity(input1, input2)
ai_similarity(model, input1, input2)

傳回值

返回 [0, 1] 區間的 FLOAT 數值,值越大語義越相似。

ai_summarize(AI總結)

根據輸入文本產生摘要。

文法

ai_summarize(text)
ai_summarize(model, text)

傳回值

返回 VARCHAR 類型的文本摘要。若 text 為 NULL 返回 NULL。

ai_complete(AI補全)

通用模型調用介面,支援文本推理及多模態理解。

文法

ai_complete(prompt)
ai_complete(model, prompt)
ai_complete(model, prompt, extra_params)

參數說明

  • model:可選,模型服務名稱。

  • prompt:必填,提示詞,STRING 類型。

  • extra_params:可選,產生參數 MAP(如 temperature、max_tokens、enable_thinking 等)。

傳回值

返回 STRING 類型的模型回答。

ai_filter(AI條件過濾)

按自然語言條件對文本做語義判斷,返回布爾值。可用於 WHERE 子句。

文法

ai_filter(text, condition)
ai_filter(model, text, condition)

參數說明

  • text:必填,待判斷文本。

  • condition:必填,自然語言過濾條件。

傳回值

返回 BOOLEAN 類型。滿足條件返回 true,否則返回 false。

ai_custom_query(自訂Resource查詢)

通過 Resource 調用自訂 LLM,執行自訂 Prompt。

文法

ai_custom_query(resource_name, prompt)
ai_custom_query(resource_name, prompt, extra_params)

參數說明

  • resource_name:必填,模型 Resource 名稱。

  • prompt:必填,提示詞。

傳回值

返回 STRING 類型的模型回答。

多模態與 AI 彙總

ai_complete(AI理解與產生)

通用模型調用介面,支援文本推理及多模態理解。是 StarRocks AI Function 中最靈活的函數,既可完成簡單文本推理,也可處理圖片、視頻、多內容融合等多模態輸入。文本產生的用法請參見 ai_complete(AI補全),本節介紹多模態理解與產生。

多模態理解與產生

支援傳入圖片二進位、URL + modality、或多內容數組,驅動多模態 LLM 進行理解與產生。

文法

-- 二進位圖片輸入
ai_complete(prompt, binary_image)
ai_complete(prompt, binary_image, extra_params)
ai_complete(model, prompt, binary_image)
ai_complete(model, prompt, binary_image, extra_params)

-- URL + modality 輸入
ai_complete(model, prompt, input, modality)
ai_complete(model, prompt, input, modality, extra_params)

-- 多內容融合輸入
ai_complete(model, prompt, contents)
ai_complete(model, prompt, contents, extra_params)

參數說明

  • model:多模態產生時建議顯式指定(如 qwen-vl-max)。URL/視頻和多內容形式沒有無歧義的預設模型重載,因此需要顯式傳 model。

  • prompt:必填,提示詞。

  • binary_image:圖片位元據,VARBINARY 類型。

  • input:URL 或 base64 編碼的輸入,VARCHAR 類型,需搭配 modality 使用。

  • modality:輸入模態類型,取值 image / text。注意:當前 video 傳入會返回 NULL(需外部抽幀降級為 image)。

  • contents:多內容融合輸入,ARRAY<MAP<VARCHAR,VARCHAR>> 類型,支援在單次調用中傳入多張圖片或混合內容。

  • extra_params:可選,產生參數 MAP。

傳回值

返回 VARCHAR 類型的模型回答。

使用樣本

-- URL 圖片理解
SELECT ai_complete('qwen-vl-max',
  '描述這張圖片的主要內容',
  'https://bucket.oss-cn-hangzhou.aliyuncs.com/demo.jpg',
  'image');

-- 二進位圖片理解
SELECT ai_complete('qwen-vl-max', '識別圖中文字', image_binary)
FROM scanned_docs LIMIT 10;

-- 多內容融合(圖文混合)
SELECT ai_complete('qwen-vl-max', '對比這兩張圖片的差異',
  array[
    map{'type': 'image_url', 'image_url': 'https://bucket.oss-cn-hangzhou.aliyuncs.com/img1.jpg'},
    map{'type': 'image_url', 'image_url': 'https://bucket.oss-cn-hangzhou.aliyuncs.com/img2.jpg'}
  ]);

ai_embed(文本向量化)

將文本轉換為固定維度語義向量。

文法

ai_embed(text)
ai_embed(model, text)
ai_embed(model, text, extra_params)

參數說明

  • model:可選,Embedding 模型名稱。

  • text:必填,待向量化文本。

  • extra_params:可選(如 dimension)。

傳回值

返回 ARRAY<FLOAT> 向量。若 text 為 NULL 返回 NULL。

ai_custom_embedding(自訂文本向量化)

通過 Resource 調用自訂 Embedding 模型產生文本向量。

文法

ai_custom_embedding(resource_name, text)
ai_custom_embedding(resource_name, text, extra_params)

傳回值

返回 ARRAY<FLOAT> 向量。

ai_embed_multimodal(多模態向量化)

將圖片、視頻、文本轉換為統一向量空間的語義向量,支援跨模態檢索和多內容融合。

文法

ai_embed_multimodal(input, modality)
ai_embed_multimodal(model, input, modality)
ai_embed_multimodal(binary_image)
ai_embed_multimodal(contents)

參數說明

  • input:URL / base64 輸入,需搭配 modality。

  • modality:取值 image / video / text。

  • binary_image:圖片二進位,VARBINARY 類型。

  • contents:多內容融合,ARRAY<MAP<VARCHAR,VARCHAR>>。

傳回值

返回 ARRAY<FLOAT> 向量。

ai_custom_multimodal_embedding(自訂多模態向量化)

通過 Resource 調用自訂多模態 Embedding 模型。

文法

ai_custom_multimodal_embedding(resource_name, input, modality)
ai_custom_multimodal_embedding(resource_name, binary_image)
ai_custom_multimodal_embedding(resource_name, contents)

傳回值

返回 ARRAY<FLOAT> 向量。

ai_agg(AI彙總)

對一組文本按 Prompt 做彙總式 LLM 處理(GROUP BY 彙總函式)。

文法

ai_agg(text, instruction)
ai_agg(model, text, instruction)

參數說明

  • text:必填,參與彙總的文本列。

  • instruction:必填,彙總指令。

傳回值

返回 VARCHAR 類型的彙總結果(每個分組一條)。

ai_agg_summary(AI彙總摘要)

對一組文本做彙總式摘要,是 ai_agg 面向摘要情境的便捷版本。

文法

ai_agg_summary(text)
ai_agg_summary(model, text)

傳回值

返回 VARCHAR 類型的彙總摘要(每個分組一條)。

說明

如需引導摘要方向,可改用 ai_agg 在 instruction 中描述具體要求。

最佳實務

將基礎函數組合,可在一條或數條 SQL 中完成端到端的 AI 資料處理,無需將資料匯出到外部推理服務。

語義篩選 + 分類分流

先用 ai_filter 在 WHERE 中過濾出目標語義的記錄,再用 ai_classify 打標籤,實現工單/評論的語義路由。適用於客服工單自動派單、使用者反饋歸類等情境。

-- 步驟1:語義過濾出投訴類工單
-- 步驟2:對投訴工單按業務線分類
SELECT ticket_id, content,
       ai_classify(content, ['物流問題', '產品品質', '售後服務', '價格爭議']) AS category
FROM tickets
WHERE ai_filter(content, '內容表達了客戶投訴或不滿');

多模態檢索訓練集構建

ai_embed_multimodal 對海量圖片/視頻向量化並寫入向量列,配合向量索引 + 全文索引做混合檢索,按"相似性 + 結構化標籤"組合篩選,資料不出湖。適用於電商以圖搜圖、視頻內容檢索、多模態 RAG 知識庫構建等情境。

-- 對商品圖片批量向量化寫入
INSERT INTO product_vectors (product_id, image_vec)
SELECT product_id,
       ai_embed_multimodal('qwen3-vl-embedding', image_url, 'image') AS image_vec
FROM products;

-- 以文搜圖:尋找與描述語義最相近的商品圖
SELECT product_id, image_url
FROM product_vectors
ORDER BY cosine_similarity(image_vec,
  ai_embed_multimodal('qwen3-vl-embedding', '紅色連衣裙 夏季款', 'text'))
DESC LIMIT 10;

客戶/商品維度 AI 匯總

ai_agg / ai_agg_summary 在 GROUP BY 上把一個實體的多條文本匯總成畫像或摘要,直接產出可分析的結論列。適用於客戶畫像產生、商品評價匯總、會議紀要提煉等情境。

-- 為每個客戶產生問題畫像
SELECT customer_id,
       ai_agg(content, '綜合該客戶的所有工單,用一句話總結其主要問題訴求和情緒傾向') AS customer_profile
FROM support_tickets
GROUP BY customer_id;

-- 按產品彙總使用者評論摘要
SELECT product_id,
       ai_agg_summary(review_text) AS review_digest
FROM product_reviews
GROUP BY product_id;

敏感性資料脫敏後分析

ai_redact 對文本脫敏後再入庫分析,兼顧合規與可用性。適用於開發/測試環境資料準備、審計日誌脫敏輸出、隱私合規情境。

-- 對使用者反饋文本脫敏後寫入分析表
INSERT INTO feedback_anonymized (ticket_id, content_clean)
SELECT ticket_id,
       ai_redact(content, ['姓名', '手機號', '身份證', '郵箱', '銀行卡']) AS content_clean
FROM user_feedback;

批量內容產生與翻譯

ai_complete 批量產生營銷文案,結合 ai_translate 實現多語言本地化,全部在 SQL 內完成,無需匯出到外部工具。

-- 批量為商品產生營銷文案並翻譯為英文
SELECT product_name,
       ai_complete('qwen3.6-plus',
         concat('為以下商品寫一句15字以內的促銷文案:', product_name)) AS slogan_zh,
       ai_translate(
         ai_complete('qwen3.6-plus',
           concat('為以下商品寫一句15字以內的促銷文案:', product_name)),
         'zh', 'en') AS slogan_en
FROM products
WHERE category = '夏季新品';