用 Snowflake Cortex AI 自动生成报表评论
DataHot 速览
Snowflake 官方博客介绍如何用 Cortex AI functions 对结构化报表指标自动生成叙述性评论。以金融机构流动性风险管理为例,日报有 40+ 指标,需逐行撰写关于当前值、阈值突破、利用率和趋势的评论。文中示例 LCR 为 70.54%,突破 75.00% 的 Level 3 阈值 4.46 个百分点,且日/周/月趋势一致下行。该方案无需部署模型服务或集成外部 LLM API,并讨论架构决策因素。
为什么值得关注:数据从业者可了解在数仓内用 Cortex AI functions 把结构化指标转为可审阅的报表评述,评估 LLM 自动化报告的生产化架构与边界。
译文
AI 逐段翻译引言
企业使用从 Snowflake 上的数据集提取的指标来构建报告是常见做法。这些报告不会只是被归档了事。分析师会审阅这些数字并撰写评论:发生了什么变化、什么突破了阈值、趋势看起来如何,以及这对业务意味着什么。
在这篇文章中,我将介绍如何使用 Snowflake Cortex AI 函数来自动为结构化报告数据生成叙述性评论。你将了解到使用 Cortex AI 函数搭建自动化评论流水线有多么简单,以及哪些因素驱动了架构决策。
源报告
这种模式是普遍适用的:一张源表存放指标,由人工为每一行撰写文字摘要供利益相关者阅读。以金融机构为例。在流动性和风险管理流程中,报告每天生成,包含数十个指标——当前值、多个严重级别下的限额阈值、使用率百分比,以及日、周、月窗口的趋势数据。报告已经准备好了。突破级别也已经计算好了。但分析师仍然需要坐下来,逐行阅读,然后写一段话,涵盖头寸情况、突破状态、趋势方向以及所需的任何升级处理。
这些评论本身是公式化的:“流动性覆盖率目前为 70.54%,正式突破了 75.00% 的 3 级阈值,超出限额 4.46 个百分点。日、周、月各序列的趋势一致向下,在当前报告期内未见任何回升迹象。”分析师在这里并不是在进行创意写作。他们是在把结构化数据逐行、逐行、逐行地转化为叙述形式。
这正是 LLM 能够发挥价值的任务类型——不是取代判断,而是生成一份初稿,让分析师在几分钟内审阅和批准,而不是花几个小时从头撰写。


自动化评论流水线
使用 Cortex AI 函数,无需部署模型服务基础设施,也无需构建外部 LLM API 集成。在数据和访问权限就绪的情况下,一个范围明确的 POC 可以在几天内搭建完成。
核心 SQL 模式
整个生成流水线可以放在单个查询中。AI_COMPLETE 接受一个模型名称和一个提示字符串,返回文本。它逐行运行,位于普通的 SELECT 内部。无需 UDF 包装器,无需外部函数,无需管理 API 密钥。
SELECT
r.RECORD_UNIQUE_IDENTIFIER,
AI_COMPLETE(
'claude-sonnet-5',
CONCAT_WS(CHR(10),
$instruction,
$business_data_dictionary,
'RECORD:',
'METRIC_NAME = ' || COALESCE(TO_VARCHAR(r.METRIC_NAME), '(null)'),
'CURRENT_VALUE = ' || COALESCE(TO_VARCHAR(r.CURRENT_VALUE), '(null)'),
'L1_LIMIT_VALUE = ' || COALESCE(TO_VARCHAR(r.L1_LIMIT_VALUE), '(null)'),
'L2_LIMIT_VALUE = ' || COALESCE(TO_VARCHAR(r.L2_LIMIT_VALUE), '(null)'),
'L3_LIMIT_VALUE = ' || COALESCE(TO_VARCHAR(r.L3_LIMIT_VALUE), '(null)'),
'BREACH_LEVEL = ' || COALESCE(TO_VARCHAR(r.BREACH_LEVEL), '(null)'),
'BREACH_AMOUNT = ' || COALESCE(TO_VARCHAR(r.BREACH_AMOUNT), '(null)')
)
)::VARCHAR AS COMMENTARY
FROM LIMITS_INDICATORS_REPORT_DATA r
WHERE r.REPORT_AS_OF_COB_DATE = TO_DATE('2026-09-08');$instruction 包含什么
指令是你设定语气和任务的地方。以下是一个示例:
You are a liquidity risk reporting analyst at a global bank, drafting pre-commentary for the daily Limits and Indicators report. Your draft is reviewed and signed off by a human analyst before publication.
Write commentary for the metric below using ONLY the information provided.
RULES -- these are not stylistic preferences:
1. Do NOT state, imply, or speculate about WHY the metric moved. No cause is given, so any explanation you supply would be invented. Describe what the position is and how it has changed, never why.
2. Do NOT introduce any figure, date, threshold or percentage that is not stated below.
3. Refer to the event using the exact terminology defined for the metric.
4. Do NOT recommend specific remedial actions, and do NOT name any team, system, desk, client or counterparty.
5. Write in formal third person. No first person, no addressing the reader, and no hedging filler such as "it appears that" or "it would seem".
6. Do NOT use internal system codes, field names or enumerated values in the text (for example BREACH_L2, DETERIORATING, CURRENT_VALUE, NO_SOURCE_DATA). Refer to levels in natural language, such as "a Level 2 breach", "the L2 threshold".
7. Where a figure below is qualified as "at least", you MUST preserve that qualifier.
8. Output plain prose only. No markdown, no bullet points, no headings, no preamble, and no closing summary. Do not restate the metric name as a title.
9. Output ONLY the finished commentary. Never include reasoning, working, self-correction or asides. What business_dictionary contains.business_data_dictionary 包含什么
列描述和业务词汇表,用于解释每一列的含义,以便模型能够正确解读这些指标。
DATA DICTIONARY:
METRIC_NAME: Human-readable name of the liquidity or risk metric
CURRENT_VALUE: The metric value as of the reporting date
L1_LIMIT_VALUE: Level 1 (advisory) threshold
...将结果持久化到评论存储中
评论生成的成本很高——LLM 调用会消耗 token——所以你不希望重新生成那些没有变化的行。一个存储过程在 AI 调用外面包了一层指纹检查(对组装后的提示进行 SHA2 计算)和一个 MERGE INTO,以幂等方式持久化结果:新行被插入,变化的行被更新,未变化的行被完全跳过。

总结
使用 Cortex AI 函数进行自动化评论,归结为三个驱动架构决策的优势:
- 表进,表出。AI_COMPLETE(model, prompt) 在 SELECT 中内联运行。Cortex AI 函数负责批处理、扩展和重试。没有外部端点,没有编排代码。给它一张指标表,返回一张评论表。
- 提示 = 指令 + 数据字典 + 行值。用 CONCAT_WS 将其组装起来。
- 设置简单。一个 SQL 工作表或 Snowflake Notebook 就足以让你今天就开始尝试。
快速上手
完整演示(React 应用、存储过程、提示工程和合成数据集)可在 GitHub 上获取:automated-commentary-with-cortex-ai-functions
使用 Snowflake Cortex AI 函数自动化报告评论:从指标到叙述最初发表于Snowflake Builders Blog: Data Engineers, App Developers, AI, & Data Science(Medium 平台),人们在那里通过高亮和回应这个故事来继续对话。
这篇内容对你有用吗?
反馈只用于改善内容筛选,不等同于收藏