全部产品
Search
文档中心

开源大数据平台E-MapReduce:AI Function

更新时间:Aug 24, 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。

使用示例

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 = '夏季新品';