AI 函数
云器 Lakehouse AI Functions 是一组内置于 SQL 引擎的 AI 增强函数,无需离开数据平台、无需编写 Python 脚本,即可在标准 SQL 查询中直接调用大语言模型(LLM)和嵌入模型,对文本、图像、音频等内容进行智能化处理。
详细介绍请参阅 AI 函数概述。
模型接入方式
所有 AI Functions 的第一个参数均为
model,支持两种接入方式:
方式一:API Gateway Endpoint(推荐)
平台管理员在 API Gateway 中预先配置模型服务,用户通过
endpoint: 前缀引用:
方式二:API Connection 连接对象
用户通过
CREATE API CONNECTION 自行创建连接对象,适用于自定义服务地址或私有化部署场景:
函数列表
文本理解与生成
AI_COMPLETE
通用 LLM 补全函数,支持自定义 Prompt,适合复杂推理、代码生成等专用函数无法覆盖的自定义场景。
返回值: STRING,模型生成的响应文本。
使用说明:
- 当任务可以用专用函数(如
、AI_TRANSLATE
)完成时,优先使用专用函数,结果更稳定、成本更低AI_SENTIMENT - 图像模式必须使用支持多模态的模型(如
);纯文本模型传入图像时不报错但会忽略图片内容doubao-seed-2-0-pro-260215 - qwen3 系列模型默认开启 thinking 模式,批量处理建议通过 options 关闭:
json '{"model.params":{"enable_thinking":false}}'
为 NULL 或空字符串时返回 NULLprompt
详细文档:AI_COMPLETE
AI_SUMMARIZE
对输入文本生成简洁摘要,支持通过
max_words 控制摘要长度。
返回值: STRING,输入文本的摘要。
使用说明:
默认为 50,是目标值而非硬限制,实际输出可能有 ±20% 偏差max_words
时返回原始文本,不调用模型max_words=0
为负数时报错max_words- 输入为 NULL 时返回 NULL,输入为空字符串时返回空字符串
- 输出语言自动跟随输入语言
详细文档:AI_SUMMARIZE
AI_TRANSLATE
将输入文本翻译成指定语言,源语言自动检测,支持 20+ 语言互译。
返回值: STRING,翻译后的文本。
使用说明:
必须为有效的 ISO-639 语言代码(如to_lang
、'zh'
、'en'
),不支持语言全名'ja'- 不支持手动指定源语言,始终自动检测
- 输入与目标语言相同时返回原文不变
- 可与
组合使用(先摘要再翻译)AI_SUMMARIZE
详细文档:AI_TRANSLATE
AI_FIX_GRAMMAR
自动修复输入文本中的语法、拼写和标点错误,支持中英文及多语言混合文本。
返回值: STRING,修正后的文本;若输入无语法错误,返回原文不变。
使用说明:
- 输入为 NULL 时返回 NULL,输入为空字符串时返回空字符串
- 中英混合文本会智能统一为主要语言
- 以语法修正为主,极少数情况下可能修改语义,语义敏感场景建议人工抽检
- 建议在
或AI_SENTIMENT
之前先用此函数清洗文本AI_SUMMARIZE
详细文档:AI_FIX_GRAMMAR
文本分析与分类
AI_CLASSIFY
将文本或图像归入用户定义的类别,无需编写 Prompt,支持 29+ 种语言及跨语言分类。
返回值: STRING,返回最匹配的类别名称(纯字符串,非 JSON)。
使用说明:
为 ARRAY(STRING),建议 2~10 个类别,类别名称要有描述性语义labels- 图像输入使用
语法GET_PRESIGNED_URL(USER VOLUME, path, expiry) AS image - 批量分类建议设置
加速响应enable_thinking:false - 输入为 NULL 时返回 NULL,输入为空字符串时返回空字符串
"" - 标签可统一用英文,即使输入是其他语言也能正确分类
详细文档:AI_CLASSIFY
AI_SENTIMENT
对输入文本进行情感倾向分析,支持中文、英文、日文等多语言。
返回值: STRING,为以下值之一:
| 值 | 含义 |
|---|---|
| 正面情感 |
| 负面情感 |
| 无明显情感倾向 |
| 同时包含正面和负面情感 |
使用说明:
- 输入为 NULL 或空字符串时返回 NULL
- 能识别讽刺/反语、双重否定、emoji 情感等复杂语义
表示文本中同时存在正负评价;mixed
表示文本不含情感倾向neutral- 结果具有非确定性,同一输入多次执行结果可能略有差异
详细文档:AI_SENTIMENT
AI_EXTRACT
从非结构化文本或图像中按指定字段提取结构化 JSON 数据,无需编写 Prompt。
返回值: STRING(JSON 格式),包含
schema 中定义的所有字段及其抽取结果,所有字段值均为字符串类型。
使用说明:
格式为schema
,value 支持简单标签或问句描述JSON'{"key":"字段描述", ...}'- 字段数建议不超过 10 个,最多支持约 20 个
- 文本中找不到对应字段时,该字段值为空字符串
"" - 输入为 NULL 或空字符串时返回 NULL
- 返回值为 JSON 字符串,可配合
进一步解析json_extract_string
详细文档:AI_EXTRACT
AI_MASK
识别并脱敏文本中的 PII 敏感信息,用
[MASKED] 占位符替换,标签由用户自定义。
返回值: STRING,脱敏后的文本;若文本中不包含指定标签对应的信息,返回原文不变。
使用说明:
为 ARRAY(STRING),数量须在 1~20 之间,不能为空数组labels- 标签越具体越精准(如"身份证号"比"证件"更准确)
- 标签语言与文本语言匹配效果更佳
- 所有被脱敏信息统一替换为
,不区分类型[MASKED] - AI 脱敏基于 LLM,可能存在漏脱或误脱,合规场景建议人工抽检
详细文档:AI_MASK
向量与语义搜索
AI_EMBEDDING
将文本转换为高维嵌入向量,用于语义检索、推荐、聚类等下游任务。
返回值: ARRAY<FLOAT>,输入文本的嵌入向量。
使用说明:
- 必须使用嵌入模型(如
),不能使用对话补全模型text-embedding-v4 - 结果具有确定性,相同输入始终返回相同向量
- 检索场景中,文档入库使用
,用户查询使用"input":"document""input":"query" - 输入为 NULL 时返回 NULL;输入为空字符串时报错,调用前需过滤
- 输入长度上限为 8,192 tokens;每次最多处理 10 条
详细文档:AI_EMBEDDING
AI_SIMILARITY
基于 Embedding 模型计算两段文本的余弦相似度,返回 [0, 1] 分值。
返回值: FLOAT,余弦相似度,实际使用中通常落在 [0, 1] 区间。
| 值域 | 含义 |
|---|---|
| 1.0 | 语义完全一致 |
| > 0.7 | 高度相似 |
| 0.3 ~ 0.7 | 有一定关联 |
| < 0.3 | 基本无关 |
使用说明:
- 必须使用嵌入模型,不能使用 LLM
- 结果具有确定性,函数具有对称性(
与a,b
结果相同)b,a - 任一参数为 NULL 时返回 0
- 支持跨语言相似度计算(如中文与英文语义对比)
- 批量 CROSS JOIN 场景 token 消耗 = 行数² × 平均 token 数,请提前评估配额
详细文档:AI_SIMILARITY
多模态处理
AI_TRANSCRIBE
将 Volume 中的音频文件转录为纯文本(ASR),支持中文、英文等多语言。
返回值: STRING,音频内容的纯文本转录结果,不含时间戳或说话人信息。
使用说明:
必须是audio_url
或http://
开头的 URL,通常通过https://
获取GET_PRESIGNED_URL()- 支持 WAV、MP3、FLAC、M4A 格式,推荐 16kHz 单声道 WAV
- presigned URL 建议设置 36000 秒(10 小时)有效期,避免批量处理中 URL 过期
- 返回纯文本,可直接作为
、AI_CLASSIFY
等函数的输入AI_EXTRACT - 静音或近静音文件可能产生少量幻觉文本,建议下游做长度过滤
详细文档:AI_TRANSCRIBE
通用 options 参数
AI_CLASSIFY、AI_EXTRACT、AI_SIMILARITY、AI_TRANSCRIBE 等函数支持可选的 options JSON 参数:
| 参数键 | 类型 | 说明 |
|---|---|---|
| STRING | 单次请求超时时间(秒),如 |
| STRING | 批量处理并发度,如 |
| JSON | 透传给模型的参数,如 |
使用前提
- 已在 API Gateway 中配置好模型 Endpoint,或已通过
创建连接对象。CREATE API CONNECTION - 当前用户对相关 Endpoint 或 Connection 有调用权限。
- 图像和音频处理场景需将文件上传至 Volume,并通过
获取访问 URL。GET_PRESIGNED_URL()
相关文档
- AI 函数概述
- AI_COMPLETE
- AI_CLASSIFY
- AI_EXTRACT
- AI_SENTIMENT
- AI_SUMMARIZE
- AI_TRANSLATE
- AI_FIX_GRAMMAR
- AI_MASK
- AI_EMBEDDING
- AI_SIMILARITY
- AI_TRANSCRIBE
通过外部函数自定义 AI 函数
除内置 AI Functions 外,云器 Lakehouse 还支持通过**外部函数(External Function)**框架自行开发 AI 函数,适用于需要对接私有模型、离线推理包或自定义业务逻辑的场景。
外部函数(亦称远程函数,Remote Function)是一种特殊的自定义函数(UDF),允许用户通过 Python 或 Java 定义函数逻辑,核心计算任务卸载到外部远程服务执行(支持阿里云函数计算 FC、腾讯云云函数 SCF)。在执行过程中可调用:
- 在线服务:以 API 形式对外提供的在线服务,如大语言模型 API、云平台提供的在线 AI API 服务。
- 离线功能:将特定功能函数代码、依赖库、模型和数据等文件打包成的离线服务包,如从 Hugging Face 下载的图像识别模型等。
云器 Lakehouse 通过创建 API Connection,在元数据中保存外部函数计算服务的连接和访问信息。外部函数通过 HTTP 协议调用外部函数计算服务,实现数据处理并返回结果。
Lakehouse 平台在获得用户预先授权后,于创建外部函数时,将自动在客户账号下的函数计算服务中部署该函数。当用户在 SQL 查询中使用外部函数时,由外部函数实现与外部计算服务的安全连接、数据处理并返回查询结果。
外部函数创建主要流程:使用流程: External Function
开发指南:
