与 AI 功能集成
语义视图提供了业务友好的查询层,与 AI 功能的结合主要有两种方式:直接在 SQL 中调用 AI 函数处理语义查询结果、通过 CZ-CLI 让 AI Agent 操作语义视图。
AI_COMPLETE 组合查询
semantic_view()
semantic_view()
的查询结果是普通结果集,可以直接在
SELECT
SELECT
列表中调用
AI_COMPLETE
AI_COMPLETE
对每行数据进行 AI 处理。
典型场景:对语义视图返回的指标结果做自然语言解读、异常分析或摘要生成。
-- 对每个部门的薪资数据生成 AI 分析评语
SELECT
department,
avg_salary,
AI_COMPLETE(
'<connection-name>:<model-name>',
'请用一句话评价该部门薪资水平,部门:' || department
|| ',平均薪资:' || CAST(avg_salary AS STRING) || ' 元'
) AS ai_comment
FROM semantic_view(
doc_test.emp_dept_analysis
DIMENSIONS emps.department
METRICS emps.avg_salary
);
需要先创建
API CONNECTION ... TYPE ai_function
API CONNECTION ... TYPE ai_function
连接,模型标识写成
'<连接名>:<模型名>'
'<连接名>:<模型名>'
的形式——只写模型名(即使在 AI Gateway 的模型列表里)会报
Invalid model coordinates
Invalid model coordinates
。语义视图的查询结果与普通结果集无异,
AI_COMPLETE
AI_COMPLETE
按行处理即可。若网关侧没有为该模型配置上游,函数不会让查询失败,而是在结果里返回一列
error_message
error_message
。详见
AI 函数。
也可以将语义视图结果物化后再做批量 AI 处理:
-- 先物化查询结果
CREATE TABLE doc_test.dept_stats AS
SELECT * FROM semantic_view(
doc_test.emp_dept_analysis
DIMENSIONS emps.department
METRICS emps.avg_salary, emps.total_employees
);
-- 再批量调用 AI 函数
SELECT department, AI_COMPLETE('<connection-name>:<model-name>', '分析:' || department || ' 部门有 '
|| CAST(total_employees AS STRING) || ' 人,平均薪资 '
|| CAST(avg_salary AS STRING)) AS insight
FROM doc_test.dept_stats;
通过 CZ-CLI 使用
CZ-CLI 是当前推荐的 AI Agent 接入方式,支持自然语言驱动对语义视图的完整操作。
查看当前 schema 下的语义视图:
cz-cli agent run "列出 doc_test schema 下所有语义视图" --profile aliyun_shanghai_prod
查询语义视图:
cz-cli agent run "查询 doc_test.emp_dept_analysis,按部门统计员工数和平均薪资" \
--profile aliyun_shanghai_prod
创建语义视图:
cz-cli agent run "在 doc_test 下创建一个分析员工薪资的语义视图,包含部门维度和平均薪资指标" \
--profile aliyun_shanghai_prod
详见 CZ-CLI 文档。
相关文档