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 可觀測能力,百萬行批處理可實現零人工幹預。
用量限制
單使用者享有 100 萬 Token 的免費試用額度。超出免費試用額度後,超出部分將根據實際Token消耗量進行收費,計費詳見AI Function計費。
前提條件
核心版本要求
-
3.3.20-2.1.1及以上
-
3.5.16-2.1.1及以上
配置網路訪問
目的:StarRocks 的 BE 節點需要通過公網訪問外部的 AI 模型服務端點,因此您必須為其開通公網訪問能力。
配置方法:
為 StarRocks 叢集所在的VPC配置 NAT Gateway,並設定 SNAT 規則,允許 BE 節點主動訪問公網。
-
建立 NAT Gateway並為其綁定彈性公網 IP。
-
配置 SNAT 規則,將 BE 節點所在網段的流量通過 NAT Gateway路由至公網。
-
確保相關的 VPC 路由表和安全性群組策略已允許存取出向的網路流量。
詳細配置步驟,請參見公網 NAT Gateway。
函數一覽
下表匯總了 StarRocks 內建的所有 AI Function,涵蓋文本理解、產生、轉換與安全處理四大能力,全部支援原生 SQL 調用、結果直接參与後續計算(JOIN/AGG/FILTER),無需 ETL 中轉。
|
函數 |
功能簡述 |
適用情境 |
|
|
情感分析,返回 |
營運分析與商業智慧(BI),例如使用者評論情感分析看板。 |
|
|
文本摘要 |
資料治理,例如評論和工單自動摘要。 |
|
|
文法與拼字自動校正 |
資料治理和質檢,例如使用者 UGC 內容質檢。 |
|
|
PII 脫敏 |
安全合規情境,例如開發/測試環境敏感性資料脫敏、審計日誌脫敏輸出。 |
|
|
按自訂標籤分類 |
內容與知識管理,例如商品評論打標。 |
|
|
抽取實體並以 JSON 返回 |
內容與知識管理,例如構建銷售線索知識圖譜。 |
|
|
機器翻譯 |
全球化,例如國際化報表自動本地化。 |
|
|
語義相似性 |
精準檢索和RAG,例如FAQ 匹配度排序。 |
|
|
通用 AI 補全 |
通用產生與問答,例如營銷活動話術批量產生、通用問答。 |
|
|
帶參數的 AI 補全 |
通過 |
|
|
自訂 Resource 查詢 |
支援私人模型整合,例如合規情境專用小模型部署。 |
|
|
AI 條件過濾 |
資料篩選,例如基於語義條件過濾資料行。 |
函數詳情
ai_sentiment(AI情感分析)
對輸入文本進行情感分析。
-
文法
ai_sentiment(text) -
參數
text(VARCHAR): 需要分析的常值內容。 -
傳回值
返回一個字串(VARCHAR),其值可能是
'positive'(正面)、'negative'(負面)、'neutral'(中性)、'mixed'(混合)或'unknown'(未知)。 -
樣本
SELECT ai_sentiment('I am happy'); -- 返回: 'positive'
ai_classify(AI分類)
根據您提供的一組標籤,對輸入文本進行分類。
-
文法
ai_classify(text, labels) -
參數
-
text(VARCHAR):需要分類的常值內容。 -
labels(ARRAY<VARCHAR>):一個包含候選標籤的數組。此數組必須包含至少 2 個、至多 20 個元素。
-
-
傳回值
返回一個 JSON 對象,包含分類結果。如果無法分類,則返回
NULL。 -
樣本
SELECT ai_classify("My password is leaked.", ["urgent", "not urgent"]); -- 返回: {"labels": ["urgent"]}
ai_extract(實體擷取)
從文本中抽取您指定的實體資訊。
-
文法
ai_extract(text, entity_labels) -
參數
-
text(VARCHAR): 需要從中抽取資訊的文本。 -
entity_labels(ARRAY<VARCHAR>): 一個包含待抽取實體類型的數組,例如['person', 'location']。
-
-
傳回值
返回一個 JSON 對象。對象的鍵(key)是您在
entity_labels中指定的實體類型,值(value)是從文本中抽取的對應內容。 -
樣本
SELECT ai_extract('John Doe lives in New York and works for Acme Corp.', ['person', 'location', 'organization']); -- 返回: {"person":"John Doe","location":"New York","organization":"Acme Corp"}
ai_fix_grammar(文法錯誤修正)
對輸入文本進行文法和拼字校正。
-
文法
ai_fix_grammar(text) -
參數
text(VARCHAR):需要校正的文本。 -
傳回值
返回一個經過文法和拼字校正的字串(VARCHAR)。
-
樣本
SELECT ai_fix_grammar('This sentence have some mistake'); -- 返回: "This sentence has some mistake"
ai_complete(AI補全)
通用和帶參數的 AI 補全函數,支援指定模型進行內容產生和問答。
-
文法
ai_complete(model, prompt) ai_complete(model, prompt, params) -
參數
-
model(VARCHAR):模型名稱,例如'__system__'表示系統模型。 -
prompt(VARCHAR):指導模型產生內容的提示詞。 -
params(MAP,可選):控制模型行為的參數,支援 temperature、max_tokens、top_p 等。
-
-
傳回值
返回一個根據提示詞產生的字串(VARCHAR)。
-
樣本
-- 簡單樣本 SELECT ai_complete('__system__', '為一場夏季單車促銷活動寫一個迷人的郵件標題,折扣為八折'); -- 返回: "夏日騎行狂歡,八折優惠限時開啟!" -- 帶參數樣本 SELECT ai_complete('__system__', 'What is the capital of France?', map{'temperature': '0.1', 'max_tokens': '50'}); -- 返回: "Paris"
ai_filter(AI條件過濾)
基於自然語言條件對文本進行過濾判斷。
-
文法
ai_filter(text, condition) -
參數
-
text(VARCHAR):需要判斷的常值內容。 -
condition(VARCHAR):自然語言表述的過濾條件。
-
-
傳回值
返回 BOOLEAN,表示文本是否滿足條件。
-
樣本
SELECT ai_filter('這個產品品質很差,不推薦購買', '負面評價'); -- 返回: true
ai_redact(PII脫敏)
對文本中的指定實體進行 PII 脫敏處理。
-
文法
ai_redact(text, categories) -
參數
-
text(VARCHAR):需要脫敏的文本。 -
categories(ARRAY<VARCHAR>):一個包含待脫敏實體類型的數組,例如['person', 'email', 'phone']。
-
-
傳回值
返回一個將指定實體資訊脫敏後的字串(VARCHAR)。
-
樣本
-- 簡單樣本 SELECT ai_redact('John Doe lives in New York. His email is john.doe@example.com.', ['person', 'email']); -- 返回: "[REDACTED] lives in New York. His email is [REDACTED]."
ai_translate(機器翻譯)
將文本翻譯成指定的目標語言。
-
文法
ai_translate(text, source_lang, target_lang) -
參數
-
text(VARCHAR): 需要翻譯的文本。 -
source_lang(VARCHAR): 源語言代碼,例如'中文'。 -
target_lang(VARCHAR): 目標語言代碼,例如'en'(英語),'zh'(中文),'es'(西班牙語)。建議遵循 ISO 639-1 語言代碼標準。
-
-
傳回值
返回翻譯後的字串(VARCHAR)。
-
樣本
SELECT ai_translate('Hello, how are you?', 'en', 'es'); -- 返回: "Hola, ¿cómo estás?"
ai_similarity(語義相似性)
計算兩個文本之間的語義相似性。
-
文法
ai_similarity(text1, text2) -
參數
-
text1(VARCHAR): 第一個文本。 -
text2(VARCHAR): 第二個文本。
-
-
傳回值
返回一個浮點數 (FLOAT),範圍在 0 到 1 之間,表示兩個文本的語義相似性。分數越高,表示語義越接近。1.0 表示文本完全相同。該分數主要用於排序。
-
樣本
SELECT ai_similarity ( 'I enjoy hiking in the mountains.', 'I love walking through mountain trails.' ); -- 返回: 0.82
ai_summarize(AI總結概覽)
對輸入文本產生摘要。
-
文法
ai_summarize(text) -
參數
-
text(VARCHAR): 需要產生摘要的文本。
-
-
傳回值
返回一個文本摘要字串(VARCHAR)。
-
樣本
SELECT ai_summarize('Apache Spark is a unified analytics engine for large-scale data processing.It provides high-level APIs in Java, Scala, Python and R, and an optimized engine that supports general execution graphs. It also supports a rich set of higher-level tools including Spark SQL for SQL and structured data processing, pandas API on Spark for pandas workloads, MLlib for machine learning, GraphX for graph processing, and Structured Streaming for incremental computation and stream processing.'); -- 返回: “Spark: unified engine for large-scale data processing with APIs and tools.”
ai_custom_query(自訂Resource查詢)
使用使用者自訂的 Resource 進行查詢。
-
文法
ai_custom_query(resource, prompt) -
參數
-
resource(VARCHAR):使用者自訂的 Resource 名稱。 -
prompt(VARCHAR):查詢提示詞。
-
-
傳回值
返回一個字串(VARCHAR)。
-
樣本
SELECT ai_custom_query('my_knowledge_base', '什麼是 StarRocks?'); -- 返回: "StarRocks 是一個高效能分析型資料倉儲..."
附錄:叢集配置參數
您可以通過 ADMIN SET CONFIG 命令修改以下 BE 動態參數。
|
參數名 |
參數詳情 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
查詢AI Function相關參數項。
select * from information_schema.be_configs where NAME like "ai_%";