帮你快速理解、总结文档立即下载

AI Function 函数列表

最近更新时间:2026-09-10 11:41:00
我的收藏

1. 概述

TCHouse AI Function 是 TCHouse-X 内置的 AI 函数集合。函数在数仓内核中执行,可与标准 SQL 任意组合,用于对表内文本、语义数据进行批量智能化处理。本文列出当前支持的全部内置函数及其语法、参数与示例。

2. 通用调用约定

2.1 调用形式

AI Function 作为普通标量 / 聚合 / 表函数使用,可出现在 SELECT、WHERE、GROUP BY、CTE 等任意 SQL 位置,可与 JOIN、UNION、窗口函数自由组合。

2.2 指定 Endpoint

除特别说明外,函数第一个参数为 endpoint,用于指定本次调用绑定的模型接入点。Endpoint 名称在“模型管理 > 模型连接”页查看,实例内唯一。
为避免每次调用都显式指定 Endpoint,支持在 Session 级设置默认 Endpoint:
SET DEFAULT_LLM_ENDPOINT = 'endpoint-minimax-m3';
SET DEFAULT_EMBEDDING_ENDPOINT = 'endpoint-kinfra-emb-0.6b';
SET DEFAULT_TIME_FORECAST_ENDPOINT = 'endpoint-chronos-2';
优先级:函数内显式指定的 endpoint 参数 > Session 级默认 Endpoint。未指定且未设置 Session 变量时,调用将失败。
说明:
向量化函数 AI_EMBED 必须绑定 Embedding 类 Endpoint;时序预测函数 AI.FORECAST 必须绑定时序预测类 Endpoint。类型不匹配会导致调用失败。

2.3 通过 OPTIONS 传入模型参数

函数支持通过 OPTIONS 传入一段 JSON 字符串,用于控制推理行为。最常用的是 kwargs,其中的字段会追加进模型请求体(OpenAI Chat Completions 兼容)。
SELECT AI_GENERATE(
endpoint 'endpoint-minimax-m3',
options '{"kwargs":{"temperature": 0.2, "top_p": 0.9, "max_tokens": 512}}',
'为 AI 产品发布会写一段开场白'
);
kwargs 外,OPTIONS 还支持 max_qpsmax_concurrencymax_retrieshint 以及推理优化相关参数,完整说明请参见 AI Function 高级能力说明

3. 函数总览

函数名
分类
用途
返回类型
AI_GENERATE
文本生成
指令驱动的内容生成:逻辑续写、创意润色及多风格文案创作
STRING
AI_FIXGRAMMAR
文本生成
文本语法与规范修正
STRING
AI_SUMMARIZE
文本生成
单条长文本的语义聚焦性摘要
STRING
AI_SUMMARIZE_AGG
文本生成
多行文本的语义聚合摘要(聚合函数)
STRING
AI_TRANSLATE
文本生成
跨语言语义映射与翻译
STRING
AI_SENTIMENT
文本理解
情感极性识别
STRING
AI_CLASSIFY
文本理解
零样本语义分类(支持多标签)
STRING / ARRAY<STRING>
AI_SIMILARITY
文本理解
两文本的语义相似度度量
DOUBLE
AI_FILTER
文本理解
按自定义策略做合规性风险审计
BOOLEAN
AI_EXTRACT
信息提取
结构化字段抽取
JSON / STRUCT
AI_MASK
信息提取
敏感信息脱敏
STRING
AI_EMBED
向量化
文本向量化编码
ARRAY<FLOAT>
AI.FORECAST
时序预测
基于历史时间序列预测未来值
TABLE

4. 组合使用示例:构建舆情处理中心

本章用一个端到端示例演示 AI Function 的组合用法。场景是舆情处理:输入一张社交媒体原始评论表,先用 AI_FILTER 剔除谩骂等违规内容,再用 AI_SENTIMENT 只保留负面评论,最后对筛出的每一行用 AI_GENERATE 逐条生成客服回复。三步全部在一条 SQL 内完成,数据不出数仓,也不需要任何外部程序或调度。
示例分三步:4.1 准备数据集,4.2 编写并执行核心 SQL,4.3 查看执行结果。

4.1 数据集准备

-- 步骤 1:创建演示库与原始评论表
-- 结构与业务系统落地的原始舆情数据一致:只保留平台、作者、正文等非结构化字段
CREATE DATABASE IF NOT EXISTS d_llm_function_demo;
DROP TABLE IF EXISTS d_llm_function_demo.t_social_media_raw;
CREATE TABLE d_llm_function_demo.t_social_media_raw (
id INT COMMENT '唯一标识',
source_platform STRING COMMENT '来源平台:微博、小红书、贴吧等',
author_name STRING COMMENT '发布者昵称',
content STRING NOT NULL COMMENT '原始非结构化评论内容'
) COMMENT '舆情处理中心-原始数据表';

-- 步骤 2:灌入 5 条样本,刻意覆盖四类典型情况
-- id=1 物流异常 :负面、不违规 → 期望保留
-- id=2 谩骂辱骂 :负面、违规 → 期望被 AI_FILTER 过滤
-- id=3 好评推荐 :正面、不违规 → 期望被 AI_SENTIMENT 过滤
-- id=4 兼职广告 :负面、不违规 → 期望保留
-- id=5 功能报障 :负面、不违规 → 期望保留
INSERT INTO d_llm_function_demo.t_social_media_raw VALUES
(1, '微博', '快乐的小羊', '刚才在静安区世纪大道发生了快递车起火,我的包裹号是 SF142335……'),
(2, '小红书', '避雷达人', '这种垃圾产品也敢卖 2999 元?退钱!张三你这个经理是怎么当的?'),
(3, '朋友圈', '科技狂热者', '收到新款手机了,质感无敌!上海发货速度就是快,推荐大家购买。'),
(4, '贴吧', '兼职助手', '诚招兼职,加微信:wx_12345,月入过万不是梦,详询 18900001111。'),
(5, '官方App','用户9527', '登录一直提示系统错误,重启也没用。我身份证号是 310115199001011234。');

4.2 核心 SQL

逻辑:过滤违规 → 情感分析 → 生成回复。
-- 一条 SQL 完成“违规过滤 → 情感筛选 → 回复生成”
SELECT
id,
-- 对通过筛选的每一行拼一段指令交给大模型生成客服回复,每行一次调用
AI_GENERATE(
endpoint 'system-minimax-m3',
CONCAT('针对该问题生成技术回复:', content)
) AS 预制回复
FROM d_llm_function_demo.t_social_media_raw
WHERE
-- 语义合规审计:返回 TRUE 表示命中策略(本例为谩骂),取 FALSE 即保留未违规内容
AI_FILTER(endpoint 'system-minimax-m3', '{} 是谩骂的', content) = FALSE
-- 情感极性:只保留 negative,正面与中性评论不进入回复队列
AND AI_SENTIMENT(endpoint 'system-minimax-m3', content) = 'negative';

4.3 执行结果

逐行筛选过程
把 4.2 的 WHERE 条件直接放到 SELECT 里执行,可以看到每一步的判定结果:
id
原文摘要
命中谩骂
情感极性
是否生成回复
1
快递车起火,包裹号 SF142335
false
negative
2
这种垃圾产品也敢卖 2999 元?退钱!
true
negative
否,违规内容被拦截
3
收到新款手机了,质感无敌!
false
positive
否,非负面不处理
4
诚招兼职,加微信,月入过万
false
neutral
否,情感判定未落在 negative
5
登录一直提示系统错误
false
negative
最终输出(以下为一次执行的真实输出,仅供示意,生成式模型的输出每次不完全一致):
id
预制回复
1
尊敬的用户,您好!关于您反映的快递车起火事故及包裹(单号:SF142335)情况,现回复如下 一、事故核实.
5
重要提醒:请立即修改/隐藏您的身份证号!身份证号属于高度敏感个人信息,在公开渠道(论坛、客服工单、聊天记录等)泄露可能导致身份盗用。请立即:…

5. 文本生成类函数

5.1 AI_GENERATE

指令驱动的内容生成。基于提示词工程实现逻辑续写、创意润色及多风格文案创作。
参数
说明
endpoint
模型接入点名称
prompt
指令文本
返回类型:STRING。
SELECT AI_GENERATE(
endpoint 'endpoint-minimax-m3',
'为 AI 产品发布会写一段开场白'
);
预期输出:
"未来已来。今天,我们共同见证 AI 重塑世界的起点……"
结合表数据的批量调用示例:
SELECT
product_id,
product_name,
AI_GENERATE(
endpoint 'endpoint-minimax-m3',
'为以下商品撰写一段 50 字以内的电商详情页文案:' || product_name
) AS marketing_copy
FROM product_catalog
WHERE category = '数码';

5.2 AI_FIXGRAMMAR

文本语法与规范修正。智能识别并修复句法结构、拼写错误及表达偏差。
参数
说明
endpoint
模型接入点名称
text
待修正文本
返回类型:STRING。
SELECT AI_FIXGRAMMAR(
endpoint 'endpoint-minimax-m3',
'The data are incorrect.'
);
预期输出:
"The data is incorrect."

5.3 AI_SUMMARIZE

语义聚焦性摘要。通过语义聚类提取核心观点,在限定长度内实现长篇幅信息的高度浓缩。
参数
说明
endpoint
模型接入点名称
text
待处理的长文本内容
max_len
目标输出长度,按词数(words)计算。默认值 50,建议最大值 2000
返回类型:STRING。
SELECT AI_SUMMARIZE(
endpoint 'endpoint-minimax-m3',
'我家的后面有一个很大的园,相传叫作百草园。……',
50
);
预期输出:
"我家后园曾叫百草园,现已卖给朱家多年,虽只剩野草,却是儿时乐园。"
说明:
max_len 为引导性建议值。英文按空格分隔的单词计数;中文无天然分词边界,1 个汉字可近似视为 1 个词。模型会尽量控制输出长度,不做强制截断。

5.4 AI_SUMMARIZE_AGG

多行文本信息聚合摘要。将多行文本按行进行语义聚合,输出一个汇总语义后的统一摘要文本。调用方式与其他聚合函数(如 SUM、AVG)一致,支持 GROUP BY。
参数
说明
endpoint
模型接入点名称
text
待处理的多行长文本内容
返回类型:STRING。
WITH reviews AS (
SELECT '这家餐厅太棒了,食物美味,服务周到。' AS review
UNION ALL SELECT '太棒了!我超爱他们的披萨!'
UNION ALL SELECT '食物不错,但服务一般般。'
UNION ALL SELECT '普通的食物和普通的服务'
)
SELECT AI_SUMMARIZE_AGG(endpoint 'endpoint-minimax-m3', review)
FROM reviews;
预期输出:
"用户主要需求包括:增加深色模式、优化搜索、数据导出功能、通知设置个性化以及简化界面设计。"

5.5 AI_TRANSLATE

跨语言语义映射。在保留原文语义权重的基础上,实现多语种间的流畅对齐与文化适配。
参数
说明
endpoint
模型接入点名称
text
源文本
t_lang
目标语言
s_lang
源语言,可选
返回类型:STRING。
SELECT AI_TRANSLATE(
endpoint 'endpoint-minimax-m3',
'Hello world!',
'zh-CN'
);
预期输出:
"你好,世界!"
说明:
t_langs_lang 无强制格式约束,支持“中文”/“zh”/“zh-CN”等多种写法。建议参考 ISO 639-1 或 BCP 47 标准传入。

6. 文本理解类函数

6.1 AI_SENTIMENT

情感极性识别。深度分析主观文本,输出情感正负倾向。
参数
说明
endpoint
模型接入点名称
text
目标文本
返回类型:STRING,取值为 positive / negative / neutral / mixed
SELECT AI_SENTIMENT(
endpoint 'endpoint-minimax-m3',
'这物流慢得离谱'
);
预期输出:
"negative"

6.2 AI_CLASSIFY

零样本语义分类。基于语义锚点将文本映射至预定义标签体系,无需额外训练。支持多标签模式。
参数
说明
endpoint
模型接入点名称
text
目标文本
labels
预设分类数组
multi_label
可选,是否多标签(BOOL,默认 false)
返回类型:单标签为 STRING,多标签为 ARRAY<STRING>。
单标签示例:
SELECT AI_CLASSIFY(
endpoint 'endpoint-minimax-m3',
'无法登录账号',
array('投诉', '咨询')
);
预期输出:
"投诉"
多标签示例:
SELECT ai_classify(
endpoint 'endpoint-minimax-m3',
'快递送得快,但商品有瑕疵,客服态度还不错',
array['物流速度', '包装质量', '商品质量', '客服服务', '性价比'],
true
);
预期输出:
['物流速度', '客服服务']

6.3 AI_SIMILARITY

语义相似度度量。由生成式模型判定两个文本的相似度,返回 0 至 1 之间的关联度数值,数值越高表示关联度越大。
参数
说明
endpoint
模型接入点名称
text1
文本 A
text2
文本 B
返回类型:DOUBLE。
SELECT AI_SIMILARITY(
endpoint 'endpoint-minimax-m3',
'我想退钱',
'申请退款'
);
预期输出:
0.9

6.4 AI_FILTER

合规性风险审计。根据自定义安全策略判定内容是否触碰违规红线,输出布尔值。
参数
说明
endpoint
模型接入点名称
policy
过滤策略,使用 {} 作为待审文本的占位符
text1 … textN
待审文本,个数需与 policy 中的占位符一致
返回类型:BOOLEAN。
单文本示例:
SELECT AI_FILTER(
endpoint 'endpoint-minimax-m3',
'{} 是色情暴力的',
'怎么才能像大神一样优秀呢'
);
预期输出:
false
双文本(JOIN 语义)示例:
SELECT AI_FILTER(
endpoint 'endpoint-minimax-m3',
'{} 是色情的,{} 是暴力的',
'怎么才能像大神一样优秀呢',
'今天雨下的很大'
);
说明:
多参数形态的 AI_FILTER 具备 JOIN 语义,优化器会为其选择专门的 LLM NESTLOOP JOIN 执行,并可自动批处理以降低调用次数。详见 AI Function 高级能力说明

7. 信息提取类函数

7.1 AI_EXTRACT

结构化字段抽取。从非结构化文本中识别并捕获特定维度的关键信息,支持多种输入 / 输出形式。
参数
说明
endpoint
模型接入点名称
text
目标文本
entities
抽取规则,支持四种形式(见下表)
entities 支持的四种形式:
形式
说明
返回
array(string)
仅标签名字
json string
array(string, schema)
标签名字 + 指定返回 schema
struct
string
JSON Schema 字符串描述
json string
struct schema
struct 结构类型描述,如 struct<name:string, age:int>
对应结构的 struct
返回类型:JSON / STRUCT。
形式一:标签数组
SELECT AI_EXTRACT(
endpoint 'endpoint-minimax-m3',
'我是一名来自清华大学计算机专业的研究生',
array('学校', '专业')
);
预期输出:
{"学校": "清华大学", "专业": "计算机"}
形式二:struct schema
SELECT ai_extract(
endpoint 'endpoint-minimax-m3',
'我的名字是张三,年龄为25岁',
struct<姓名:string, 年龄:int>
);
预期输出:
{姓名: "张三", 年龄: 25}
形式三:JSON Schema 字符串
SELECT ai_extract(
endpoint 'endpoint-minimax-m3',
'李四居住在上海,是一名软件工程师',
'{"type": "object", "properties": {
"姓名": {"type": "string", "description": "人员的全名"},
"地点": {"type": "string", "description": "城市或国家"},
"年龄": {"type": ["integer", "null"], "description": "人员的年龄"},
"职业": {"type": ["string", "null"], "description": "人员的职业"}
}}'
);
预期输出:
{"姓名": "李四", "地点": "上海", "年龄": null, "职业": "软件工程师"}
说明:
JSON Schema 形式可更细粒度地约束字段类型与描述,建议参考 JSON Schema 2020-12 标准编写。

7.2 AI_MASK

隐私数据脱敏。基于预设标签自动定位敏感数据,采用 [MASKED] 掩码进行置换遮蔽。
参数
说明
endpoint
模型接入点名称
text
原始文本
tags
脱敏标签数组
返回类型:STRING。
SELECT AI_MASK(
endpoint 'endpoint-minimax-m3',
'我叫张三,手机 13800000000,邮箱 zhangsan@example.com',
array('name', 'phone', 'email')
);
预期输出:
"我叫 [MASKED],手机 [MASKED],邮箱 [MASKED]"

8. 向量化函数

8.1 AI_EMBED

将文本编码为定长向量(embedding),用于语义检索、聚类、相似度对比等下游任务。
参数
说明
endpoint
模型接入点名称,须为 Embedding 类 Endpoint
text
待编码的文本
返回类型:ARRAY<FLOAT>。
SELECT AI_EMBED(
endpoint 'endpoint-kinfra-emb-0.6b',
'申请退款'
);
预期输出:
[0.0123, -0.0451, ..., 0.0087]
说明:
向量维度由 Endpoint 所绑定的模型决定(例如 1024 维)。同一批数据请使用同一个 Embedding Endpoint 编码,避免不同模型产出的向量混用导致相似度不可比。

9. 时序预测函数

9.1 AI.FORECAST

基于历史时间序列预测未来时间点的值,输出预测值及置信区间。支持按 id_cols 分组进行多序列并发预测,支持通过 feature_cols 引入外生特征。
参数
必填
说明
endpoint
模型接入点名称,须为时序预测类 Endpoint。未指定且未设置 DEFAULT_TIME_FORECAST_ENDPOINT 时,将触发本地推理
options
JSON 字符串,支持 prediction_length / confidence_level / freq / limit_prediction_length / context_length / output_historical_time_series
输入数据
二选一:传数据表 TABLE <表名>,或传子查询 (<子查询>)
data_col
目标序列列名(字符串字面量)
timestamp_col
时间戳列名
id_cols
ARRAY<STRING>,多序列分组键
feature_cols
ARRAY<STRING>,外生特征列
返回类型:TABLE。
SELECT *
FROM AI.FORECAST(
ENDPOINT 'endpoint-chronos-2',
OPTIONS '{"prediction_length": 7, "confidence_level": 0.9}',
TABLE sales,
data_col => 'gmv',
timestamp_col => 'ds',
id_cols => ARRAY['store_id'],
feature_cols => ARRAY['is_promo']
);
预期输出:
forecast_timestamp
forecast_value
prediction_interval_lower_bound
prediction_interval_upper_bound
confidence_level
2026-07-24 00:00:00
13100.5
11800.2
14400.8
0.9
2026-07-30 00:00:00
14020.3
11020.4
17020.1
0.9
说明:
若指定 id_cols,结果列前会追加对应分组列;若 OPTIONS 中 output_historical_time_series=true,结果末尾会追加 time_series_type 列。