Snowflake App Runtime 上的 Node.js AI 文档智能
DataHot 速览
该实践在 Snowflake App Runtime 上原生托管 Node.js/Next.js 应用,无需外部基础设施,并用 Snowflake Marketplace 的零拷贝公共数据(BLS 就业与价格、Census 房地产、FHFA 房价等)构建 AI 文档智能。数据层通过 ontology 把原始时间序列整理为含 Geography 维度(166K 行)和五张事实表的 AI-ready 数据基础,关键表 FACT_ESCALATION_SIGNALS 用 LAG() 计算各州工资-CPI 同比缺口。Cortex AI Suite 提供 AI_PARSE_DOCUMENT、Cortex Complete、Cortex Search、Cortex Analyst 与 Cortex Agent,覆盖文档解析、LLM 推理、向量搜索、自然语言转 SQL 和基于事实的问答。开发按数据发现、数据基础验证、叠加 AI 服务、在 App Runtime 部署空白 Node.js 应用并逐项加功能的阶段推进。
为什么值得关注:展示了如何把 Snowflake App Runtime、Marketplace 零拷贝数据、ontology 语义层和 Cortex AI 串成可复用的文档智能/问答架构,对在数仓内构建 AI 应用和数据基础有直接参考。
本文目录 17 节
译文
AI 逐段翻译解析 PDF,对照来自 Snowflake Marketplace 的 Public 数据审查 pdf 内容,使用 Next.js 在 Snowflake App runtime 上运行。
Snowflake App Runtime 原生托管 Node.js 应用程序,无需外部基础设施。
Marketplace 通过零拷贝数据共享提供数据集。 Ontology 层随后将原始时间序列转化为 AI 就绪的数据基础。
Cortex AI Suite 将文档解析(AI_PARSE_DOCUMENT)、LLM 推理(Cortex Complete)、向量搜索(Cortex Search)、自然语言转 SQL(Cortex Analyst)以及编排式有依据的问答(Cortex Agent)全部汇集在同一平台内。
这是分阶段开发的。
先进行数据发现与分析,然后是数据基础,对其进行验证,再在其上添加 AI 服务,然后在 App Runtime 上部署一个空白 Node.js 应用(以解决连接性、主题和依赖问题),然后一次向其中构建一个功能。
这有助于在问题被应用程序逻辑掩盖之前,在其所属的层级上解决它们。
设计还允许未来的应用程序接入同一基础,而无需重建它。
架构:

来源:免费的 Snowflake Marketplace

从 snowflake marketplace 获取“Snowflake Public Data”的数据:
- BLS 就业:州级建筑工资、员工人数
- BLS 价格:CPI(所有项目、住房、能源)
- Census 房地产:按部门的月度建筑支出
- FHFA 房价:按州经季节性调整的 HPI
原始视图进入 SOURCE schema(隔离上游变更)。干净的 ONTOLOGY schema 用于事实和维度。关键表:FACT_ESCALATION_SIGNALS,按州预计算的工资-CPI 差距。
数据基础
Marketplace 数据是带有属性连接的原始时间序列。
本体将其重塑为 AI 就绪的数据基础:地理维度(166K 行,FIPS 代码,州/县/市级别)以及五个事实表,涵盖建筑支出、BLS 就业和工资、FHFA 房价、CPI,以及一个预计算的升级信号表,该表使用 LAG() 窗口函数按州计算同比工资-CPI 差距。
提示词:从<上述>Marketplace 表,在 BLR_HACKATHON.ONTOLOGY 中创建一个基于本体的数据基础,包含 GEOGRAPHY 和数据表(支出、就业、房价、CPI、通过 LAG 计算同比工资-CPI 差距的升级信号)。
Cortex AI 层
带有同义词、连接路径和经核验查询的语义视图,为 Cortex Analyst 提供支持。
针对物化州概况的 Cortex Search 服务,用于向量检索。
Cortex Agent 编排这两个工具,以在应用中实现对话式问答。
提示词:在所有本体表上创建一个语义视图,包含同义词和 GEO_ID 关系。构建一个物化表,每个州一份富文本概况,连接来自所有事实的最新数据,然后使用 arctic-embed-m-v1.5 在其上创建一个 Cortex Search 服务。创建一个名为 CLEARANCE_ADVISOR 的 Cortex Agent,以 cortex_analyst 和 cortex_search 作为工具。
Snowflake App Runtime 上的 Node.js
App Runtime 从 app.yml 运行容器。Next.js 构建为独立模式。App Runtime 负责安装、构建、提供服务。
部署提示词: 在 BLR_HACKATHON.APP 中为名为 CRCI_APP 的 Next.js 16 独立应用创建一个 app.yml v2。使用 npm ci 并包含开发依赖,npx next build,复制 public 和静态资源,然后运行 node .next/standalone/server.js。 让这成为一个空白页面,以便我们在后续阶段添加功能。 使用极简浅色模式 UI
snow app deploy 会为你提供一个带有 Snowflake 身份验证的 .snowflakecomputing.app URL。需要标准数据库才能通过 GRANT USAGE 共享。
风险仪表盘

所有图表数据都直接来自 Marketplace,经由本体获取。工资趋势来自 BLS,房价指数来自 FHFA,通胀来自 BLS CPI,支出构成来自 Census。预测:对最近 12 个月进行线性回归,过滤超出 2 个标准差的异常值,并桥接到最后一个实际点。
提示词: 使用 Recharts 构建一个风险仪表盘标签页。挂载时,通过 /api/kpis 和 /api/charts 对本体发起 8 个并行查询。显示 4 个 KPI 卡片(总支出、平均工资、全国 HPI、CPI)。在其下方,是一个带标签页的图表区域:按州的平均时薪(带有 2 年线性回归预测的折线图)、HPI 趋势、CPI 趋势,以及按部门的支出环形图。添加一个州级升级表,带有可排序列,用于工资增长、CPI 增长和工资-CPI 差距。点击任意州行可深入到该州的详情。
PDF 分析器流水线

示例 PDF:

上传 PDF:

结果:

方法:

阶段 1:文本提取
PDF 被暂存到 Snowflake,由 AI_PARSE_DOCUMENT 处理。
阶段 2:文档结构化
使用 mistral-large3 进行一次 AI_COMPLETE 调用。将整个文档作为 JSON 返回:元数据、章节、表格、行、总计。
提示词:调用 SNOWFLAKE.CORTEX.AI_PARSE_DOCUMENT,从上传的 PDF 中提取完整文档结构为 JSON,包括元数据、章节、表格、行和总计。然后使用 Cortex Complete 从结构化输出中按州和小时费率对人工行进行模式匹配。
关键优化:LLM 已经返回表格行。人工条目在客户端通过模式匹配州和费率提取。将 token 成本减半。
提取提示词: 从结构化章节中模式匹配人工行。从每一行中查找州名(首字母大写的单词,3–20 个字符,不含美元符号)和小时费率(2–3 位数字且带 2 位小数)。
阶段 3:风险评分
针对每个人工条目对本体的四个并行查询:
评分提示词: 对于每个人工行项目,对 FACT_ESCALATION_SIGNALS、FACT_CONSTRUCTION_EMPLOYMENT、FACT_HOUSE_PRICES 和 FACT_CPI_CONSTRUCTION 运行 4 个并行查询,以获取匹配州的最新市场信号。
评分:
高:费率低于 BLS 实际值 15% 以上,工资-CPI 差距 >3%
中:费率低于 BLS 10% 以上,或差距为 1–3%
低:费率等于/高于 BLS,差距极小
与数据对话

AI Advisor 标签页是一个基于本体的对话式界面。用户以自然语言提问,并获得带有具体数字、状态和时间段的有依据的答案。在后台,应用调用 Cortex Search 来检索相关的州概况,然后将上下文传递给 Cortex Complete 以生成简洁的摘要。示例问题以可点击的标签形式展示,以引导首次使用的用户。
提示词:构建一个 AI Advisor 聊天标签页。展示 5 个示例问题标签(例如“哪些州面临高成本压力?”、“比较德克萨斯州和佛罗里达州的建筑就业”)。发送时,将问题 POST 到 /api/agent。该 API 路由调用 Cortex Search(SEARCH_PREVIEW)来检索匹配度最高的 5 个州概况,然后将上下文连同系统提示词传递给 Cortex Complete:“你是一名建筑市场分析师。用 2–3 句简洁的话作答,并包含具体数字。不要免责声明。”在聊天线程中以用户/助手消息气泡的形式呈现回复。
结果
输入 PDF,输出带有风险标注的文档。每个值都对照实时本体进行验证。基于同一 Marketplace 数据的实时分析仪表板。单一 URL,经 Snowflake 身份验证。
使用 Node.js 在 Snowflake App Runtime 上实现 AI 文档智能最初发表于 Snowflake Builders Blog: Data Engineers, App Developers, AI, & Data Science(Medium 平台),人们正在那里通过高亮和回应这个故事来继续对话。
这篇内容对你有用吗?
反馈只用于改善内容筛选,不等同于收藏