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。
使用示例
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。
ai_extract(实体提取)
从输入文本中按指定结构抽取字段信息,返回结构化结果。
语法
ai_extract(text, response_format)
ai_extract(model, text, response_format)
参数说明
-
text:必填,待抽取的源文本。 -
response_format:必填,期望输出的结构定义,可为字段列表或 JSON Schema。
返回值
返回 JSON 类型。若 text 为 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 = '夏季新品';