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) |
|
|
|
翻譯 |
|
|
|
多模態理解 |
|
|
|
文本 Embedding |
|
|
|
多模態 Embedding |
|
|
-
qwen3-vl-embedding同時出現在文本與多模態 Embedding 中,因其為統一向量空間模型,文本向量與映像/視頻向量可直接跨模態比對,是跨模態檢索的推薦選擇。 -
自訂模型通過 AI 中心註冊的 Resource 接入,由
ai_custom_query/ai_custom_embedding/ai_custom_multimodal_embedding調用。
函數一覽
|
Function 名稱 |
描述 |
預設模型類型 |
|
|
對輸入文本進行情感分析(正向/負向/中性等) |
qwen3.6-plus |
|
|
在給定的候選標籤中,為輸入文本選擇匹配度最高的標籤 |
qwen3.6-plus |
|
|
從文本中按指定結構(response_format)抽取欄位資訊 |
qwen3.6-plus |
|
|
修複輸入文本的拼字與語法錯誤 |
qwen3.6-plus |
|
|
對文本中指定類別的敏感資訊進行脫敏 |
qwen3.6-plus |
|
|
將文本從源語言翻譯為目標語言 |
qwen3.6-plus |
|
|
計算兩段文本的語義相似性 |
qwen3.6-plus |
|
|
產生一段文本的摘要 |
qwen3.6-plus |
|
|
通用模型調用介面,支援自訂 Prompt、文本推理及多模態理解 |
文本產生:qwen3.6-plus;多模態:國內為 qwen3-vl-embedding,海外為 tongyi-embedding-vision-plus |
|
|
按自然語言條件對文本做語義過濾,返回布爾值,可用於 WHERE |
qwen3.6-plus |
|
|
通過 Resource 調用自訂 LLM,執行自訂 Prompt |
自訂模型 |
|
|
將文本轉換為固定維度語義向量 |
國內:text-embedding-v4;海外:tongyi-embedding-vision-plus |
|
|
通過 Resource 調用自訂 Embedding 模型產生文本向量 |
自訂模型 |
|
|
將圖片/視頻/文本轉換為統一向量空間的語義向量 |
國內:qwen3-vl-embedding;海外:tongyi-embedding-vision-plus |
|
|
通過 Resource 調用自訂多模態 Embedding 模型 |
自訂模型 |
|
|
對一組文本按 Prompt 做彙總式 LLM 處理(跨行匯總) |
qwen3.6-plus |
|
|
對一組文本做彙總式摘要,可選 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 = '夏季新品';