针对库存优化的 Snowflake Intelligence 供应链助手

Source: InfoQ - AI & LLM

2026 年,智能体将在企业级应用中取得哪些实质性突破?点击下载《2026 年 AI 与数据发展预测》白皮书,获悉专家一手前瞻,抢先拥抱新的工作方式!

概述

现代供应链运营面临一项关键挑战:如何在多个制造基地间高效管理原材料库存。运营经理必须持续权衡库存水平,决定是将物料从库存过剩的工厂调拨至短缺工厂,还是向供应商采购新物料。人工制定这些决策不仅耗时费力、容易出错,且往往导致成本效益欠佳。

本快速入门指南将演示如何利用Snowflake Intelligence技术与Cortex AI能力构建智能供应链助手。通过将自然语言查询与结构化及非结构化数据的语义搜索相结合,您将打造出能够助力运营经理做出数据驱动型库存管理决策的完整解决方案。

问题

供应链运营管理人员日常需统筹管理各生产基地的原材料库存,应对各类挑战:

 库存失衡:部分生产基地原材料积压,部分却面临短缺,造成运营效率损耗;

决策复杂度高: 判定是否在各生产基地间调拨物料或向供应商采购,需综合分析物料成本、运输成本、交付周期及安全库存水平等多类因素;

人工分析模式:传统管理方式需调取多份报表、开展电子表格分析并人工完成成本比对;

 决策时效性强:库存相关决策需快速制定,以避免生产延误或产生过高的库存持有成本。

解决方案

该解决方案利用Snowflake Intelligence和Cortex AI能力,构建一个智能助手,实现以下功能:

1. ‌回答临时性查询‌: 运营经理可通过自然语言提问库存水平、订单、发货及供应商信息等问题,智能体将自动把问题转化为SQL并执行查询。

2. ‌提供上下文信息‌: 助手可通过语义搜索,查找并检索供应链相关文档中的关键信息,实现上下文增强式问答。

3. ‌智能路由‌:根据问题类型,自动判断应查询结构化数据(通过Cortex Analyst)还是检索非结构化文档(通过Cortex Search),实现最优路径响应。

4. 复杂分析‌‌:支持复杂的多表关联分析,例如识别同一物料存在库存偏低与过剩并存的生产厂区,并对比不同供应商报价与厂区间调拨成本。

5. ‌无代码智能体构建‌‌:借助Snowflake Intelligence提供的可视化界面,无需编写应用程序代码,即可完成整个解决方案的搭建与部署。

先决条件

一个已启用Cortex功能的Snowflake账户;

一个拥有ACCOUNTADMIN角色的Snowflake账户登录权限,或拥有创建数据库、模式、表、阶段和Cortex Search服务能力的角色;

Cortex Analyst、Cortex Search和Snowflake Intelligence必须在您的Snowflake区域中可用;

熟悉Snowflake SQL和Snowsight界面。

附带说明: 用于网络搜索和网页抓取的自定义工具需要外部集成访问权限,试用账户不提供此功能。若跳过自定义工具设置步骤,您仍可完成本快速入门。

学习内容

如何在Snowflake中构建具有恰当关系的多层供应链数据模型;

如何为Cortex Analyst创建包含维度、度量和已验证查询的语义模型;

 如何在非结构化文档上设置Cortex Search服务;

 如何使用Snowflake Intelligence构建全面的AI智能体;

 如何在单个智能体中组合多个语义模型以进行跨域分析;

 如何将自定义工具(函数和存储过程)集成到您的智能体中;

 如何在AI助手中启用网络搜索和网页抓取功能;

 如何编写有效的工具描述和语义模型以确保AI响应的准确性;

 如何处理跨越多个数据源的复杂分析问题。

你将构建的内容

 一个包含11张表及真实样本数据的综合性供应链数据库;

 两个语义模型:一个用于供应链数据,一个用于天气预报数据;

 一个基于供应链文档建立索引的Cortex搜索服务;

 一个配备7种工具的Snowflake Intelligence智能体;

 2种Cortex Analyst工具(分别用于供应链和天气数据);

 1种Cortex搜索工具(用于文档检索);

 4种自定义工具(网络搜索、网页抓取、HTML新闻邮件生成、邮件发送);

 针对库存分析、成本对比及再平衡机会的复杂验证查询;

 一个结合结构化数据、非结构化数据及外部网络资源、达到生产就绪状态的人工智能助手。

Snowflake Cortex与人工智能

什么是Snowflake Cortex?

Snowflake Cortex提供了完全托管的生成式AI能力,这些能力在你的Snowflake环境及治理边界内安全运行。其主要特性包括:

Cortex Analyst -使业务用户能够以自然语言对结构化数据进行提问。它利用语义模型来理解你的数据,并自动生成精确的SQL查询。

您创建的语义模型定义会自动转化为支撑自然语言查询的SQL代码。例如,在语义模型中定义“低库存”和“过剩库存”等业务概念,即可生成精准的SQL WHERE子句:

Cortex搜索功能-提供便捷的语义搜索能力,可对非结构化数据进行处理。该功能负责完成文档分块、嵌入向量生成和检索等环节,让实施RAG(检索增强生成)模式变得简单易行。

Cortex智能体 - 协调多种AI功能(如分析工具和搜索引擎),智能地将用户查询路由至相应服务并进行应答整合。

了解更多关于Snowflake Cortex的信息。 

什么是Snowflake Intelligence?

Snowflake Intelligence是一个用于在Snowflake内构建和部署AI智能体的统一体验平台。它提供:

 无代码智能体构建器:无需编写代码即可创建结合多种工具(Cortex Analyst、Cortex Search、自定义工具)的智能体;

 集成工具:轻松地将您的语义模型和搜索服务作为智能体能力进行连接;

 对话式界面:通过Snowsight内的聊天界面与您的智能体进行交互;

 企业级就绪:构建在Snowflake的安全和治理基础之上。

以下展示了Snowflake Intelligence在供应链运营中的实际应用场景。用户可以就他们的数据提出自然语言问题,智能体便会自动生成SQL查询语句,执行查询,并返回结果:

了解更多关于Snowflake Intelligence的信息。

设置数据库并加载数据

注意: 本快速入门指南中引用的所有SQL脚本、语义模型和PDF文件,均可通过点击本页顶部的Fork Repo按钮获取。点击后,您将进入包含本教程所有必要文件的GitHub仓库。

在此步骤中,您将创建完整的供应链数据库基础设施,包括所有必要的表、内部阶段和示例数据。

该数据库将模拟一个包含供应商、制造工厂和客户的多层级供应链网络。此演示考虑了关键的运营因素,包括库存水平、需求、安全库存、具有可变性的提前期以及成本。智能助手将帮助解答诸如“我何时该订购更多物料,何时又该从其他工厂调拨?”等关键问题。

1. 导航至Projects > Workspaces,在Snowsight中创建一个新的私有工作空间。

2. 向你的工作空间添加一个新的SQL文件。

3. 从quickstart代码库中导入scripts/setup.sql文件。

4. 点击Run All执行整个脚本。

该脚本将创建:

 数据库:SUPPLY_CHAIN_ASSISTANT_DB,包含ENTITIES和WEATHER两个架构;

 仓库:SUPPLY_CHAIN_ASSISTANT_WH;

 供应链表: 包括供应商、工厂、库存、客户、订单、货运等表;

 内部阶段:用于存储PDF和语义模型文件;

 样本数据:通过INSERT语句为所有表加载的真实数据;

 自定义函数和存储过程:具备网络搜索、网页抓取、邮件发送及生成HTML新闻稿的能力。

该数据库模型展现了一个完整的供应链网络,其特点如下:

 制造工厂分布在多个城市;

 供应商提供原材料;

 客户下达成品订单;

 对原材料和成品均进行库存追踪;

 包含具有追踪信息的货运记录;

 提供工厂所在地的天气预报数据。

以下是展示所有表及其关系的完整实体关系图(ERD):

上传文档与模型

在第一步中,所有对象已在SUPPLY_CHAIN_ASSISTANT_DB.ENTITIES数据库/架构中创建完成。现在您需要将必要的文件上传至内部暂存区。

上传PDF文档

1. 从左侧菜单栏的"目录"下,导航至"数据库浏览器"

2. 进入SUPPLY_CHAIN_ASSISTANT_DB.ENTITIES数据库/架构a

3. 点击"暂存区"查看可用的暂存区

4. 选择SUPPLY_CHAIN_ASSISTANT_PDF_STAGE暂存区

5. 点击右上角的"+文件"按钮

6. 从快速入门代码库中上传pdfs/Supply Chain Network Overview.pdf文件

上传语义模型文件

1. 在同一暂存区视图中,选择SEMANTIC_MODELS_STAGE暂存区

2. 点击"+文件"按钮

3. 上传两个语义模型文件:

 scripts/semantic_models/SUPPLY_CHAIN_ASSISTANT_MODEL.yaml;

 scripts/semantic_models/WEATHER_FORECAST.yaml。

这些语义模型定义了结构、关系以及经过验证的查询语句,Cortex Analyst将利用这些信息来回答关于您的供应链和天气数据的自然语言问题。

创建Cortex搜索服务

您有两种选择来创建Cortex搜索服务,该服务将实现对供应链文档的语义搜索。

选项A:使用SQL脚本

1. 在Snowsight的工作区中,新建一个SQL文件

2. 从快速入门代码库中导入scripts/configure_search_services.sql文件

3. 点击"全部运行"执行脚本

此脚本将:

 使用Cortex PARSE_DOCUMENT函数解析PDF;

 通过递归字符分割将内容切分为可搜索的文本块;

 创建PARSED_PDFS表,并生成用于访问文档的预签名URL;

 创建SUPPLY_CHAIN_INFO Cortex搜索服务;

 设置一个任务,每天刷新预签名URL(这些URL在7天后过期)。

该搜索服务会自动对已解析和分块的PDF内容建立索引,使其可用于语义搜索查询。

选项B:通过Snowsight用户界面手动创建

如果您更倾向于通过用户界面手动创建搜索服务,请遵循以下步骤:

步骤1:准备数据(需运行SQL语句)

即便采用用户界面操作方式,您仍需运行SQL语句来解析和准备文档。在工作区中,新建一个SQL文件并运行以下代码:

USE SUPPLY_CHAIN_ASSISTANT_DB.ENTITIES;
USE WAREHOUSE SUPPLY_CHAIN_ASSISTANT_WH;

-- Scale up warehouse for PDF parsing
ALTER WAREHOUSE SUPPLY_CHAIN_ASSISTANT_WH SET WAREHOUSE_SIZE = 'X-LARGE';

-- Parse PDFs
CREATE OR REPLACE TABLE PARSE_PDFS AS 
SELECT RELATIVE_PATH, 
       SNOWFLAKE.CORTEX.PARSE_DOCUMENT(@SUPPLY_CHAIN_ASSISTANT_DB.ENTITIES.SUPPLY_CHAIN_ASSISTANT_PDF_STAGE, 
                                        RELATIVE_PATH, 
                                        {'mode':'LAYOUT'}) AS DATA
FROM DIRECTORY(@SUPPLY_CHAIN_ASSISTANT_DB.ENTITIES.SUPPLY_CHAIN_ASSISTANT_PDF_STAGE);

-- Chunk and prepare content
CREATE OR REPLACE TABLE PARSED_PDFS AS (
    WITH TMP_PARSED AS (
        SELECT RELATIVE_PATH,
               SNOWFLAKE.CORTEX.SPLIT_TEXT_RECURSIVE_CHARACTER(TO_VARIANT(DATA):content, 'MARKDOWN', 1800, 300) AS CHUNKS
        FROM PARSE_PDFS 
        WHERE TO_VARIANT(DATA):content IS NOT NULL
    )
    SELECT TO_VARCHAR(C.value) AS PAGE_CONTENT,
           REGEXP_REPLACE(RELATIVE_PATH, '\\.pdf$', '') AS TITLE,
           RELATIVE_PATH,
           GET_PRESIGNED_URL(@SUPPLY_CHAIN_ASSISTANT_DB.ENTITIES.SUPPLY_CHAIN_ASSISTANT_PDF_STAGE, RELATIVE_PATH, 604800) AS PAGE_URL
    FROM TMP_PARSED P, LATERAL FLATTEN(INPUT => P.CHUNKS) C
);

-- Scale warehouse back down
ALTER WAREHOUSE SUPPLY_CHAIN_ASSISTANT_WH SET WAREHOUSE_SIZE = 'SMALL';

步骤2:通过用户界面创建搜索服务

1. 在Snowsight中,通过左侧导航栏进入AI与机器学习 > Cortex搜索 页面。

2. 点击创建按钮。

3. 配置搜索服务:

 数据库:SUPPLY_CHAIN_ASSISTANT_DB;

 架构:ENTITIES;

 名称:SUPPLY_CHAIN_INFO;

 待索引源表:PARSED_PDFS;

 搜索列:选择PAGE_CONTENT;

 属性:点击下一步;

 选取列:选择TITLE;

 目标延迟:1小时;

 仓库:SUPPLY_CHAIN_ASSISTANT_WH。

4. 点击创建搜索服务

搜索服务将开始对已解析的PDF内容建立索引,索引完成后即可投入使用。

构建Snowflake Intelligence Agent

现在,您已成功创建语义模型和搜索服务,接下来可以利用Snowflake Intelligence将它们整合成一个智能Agent。该Agent将根据查询问题的性质,智能地将用户问题路由到相应的工具进行处理。

创建Agent

请确保在Snowsight中已使用SUPPLY_CHAIN_ASSISTANT_ROLE角色。

1. 在Snowsight左侧导航栏的AI与机器学习 部分,点击Agents。

2. 点击创建Agent按钮。

 数据库SNOWFLAKE_INTELLIGENCE;

 架构AGENTS。

3. Agent对象名称Supply_Chain_Agent

4. 显示名称Supply Chain Agent

5. 创建完成后,请导航至工具标签页进行后续配置。

添加第一个Cortex Analyst工具-供应链数据

1. 点击Cortex Analyst旁边的+添加

2. 配置该工具:

 选中语义模型文件单选按钮;

 数据库:SUPPLY_CHAIN_ASSISTANT_DB;

 模式:ENTITIES;

 内部阶段:SEMANTIC_MODELS_STAGE;

 选择:SUPPLY_CHAIN_ASSISTANT_MODEL.yaml;

 名称:SUPPLY_CHAIN_ASSISTANT_MODEL;

 描述:“用于分析供应链数据的工具”;

 仓库:选中自定义单选按钮,然后选择SUPPLY_CHAIN_ASSISTANT_WH。

3. 点击保存

添加第二个Cortex Analyst工具-天气数据

1. 点击Cortex Analyst旁边的+添加

2. 配置该工具:

 选中语义模型文件单选按钮;

 数据库:SUPPLY_CHAIN_ASSISTANT_DB;

 模式:ENTITIES;

 内部阶段:SEMANTIC_MODELS_STAGE;

 选择:WEATHER_FORECAST.yaml;

 名称:WEATHER_FORECAST;

 描述:“用于分析天气数据的工具”;

 仓库:选中自定义单选按钮,然后选择SUPPLY_CHAIN_ASSISTANT_WH。

3. 点击保存

添加Cortex Search工具

1. 点击Cortex Search服务旁边的+添加

2. 配置该工具:

 数据库:SUPPLY_CHAIN_ASSISTANT_DB;

 模式:ENTITIES;

 搜索服务:选择SUPPLY_CHAIN_ASSISTANT_DB.ENTITIES.SUPPLY_CHAIN_INFO;

 名称:SUPPLY_CHAIN_INFO;

 描述:“用于搜索供应链非结构化数据的工具”;

 ID列:PAGE_URL;

 标题列:TITLE。

3. 点击保存

添加自定义工具

旁注:WEB_SEARCH和WEB_SCRAPE这两个自定义工具需要外部集成访问权限,试用账户无法使用此功能。如果您使用的是试用账户,可以跳过添加这两个工具,但仍可使用智能体其他功能。

对于以下每个自定义工具,点击自定义工具旁边的+添加,然后进行配置:

1. CREATE_HTML_NEWSLETTER

 类型:存储过程;

 模式:SUPPLY_CHAIN_ASSISTANT_DB.ENTITIES;

 自定义工具标识符:CREATE_HTML_NEWSLETTER_SP;

 名称:CREATE_HTML_NEWSLETTER_SP;

 仓库:SUPPLY_CHAIN_ASSISTANT_WH;

 描述:“根据响应结果创建HTML格式的简报”。

2. WEB_SEARCH

 类型:函数;

 模式:SUPPLY_CHAIN_ASSISTANT_DB.ENTITIES;

 自定义工具标识符:WEB_SEARCH;

 名称:WEB_SEARCH;

 仓库:SUPPLY_CHAIN_ASSISTANT_WH;

 描述:“使用DuckDuckGO进行网络搜索”。

3. WEB_SCRAPE

 类型:函数;

 模式:SUPPLY_CHAIN_ASSISTANT_DB.ENTITIES;

 自定义工具标识符:WEB_SCRAPE;

 名称:WEB_SCRAPE;

 仓库:SUPPLY_CHAIN_ASSISTANT_WH;

 描述:“执行网页抓取与内容提取”。

4. SEND_MAIL

旁注:此工具需要在Snowflake中拥有已验证的电子邮件地址才能正常运行。

 类型:存储过程;

 模式:SUPPLY_CHAIN_ASSISTANT_DB.ENTITIES;

 自定义工具标识符:SEND_MAIL;

 名称:SEND_MAIL;

 仓库:SUPPLY_CHAIN_ASSISTANT_WH;

 描述:“向收件人发送包含HTML格式内容的电子邮件”。

保存并访问您的智能助手

1. 点击"保存"以保存您的助手配置

2. 您可以在右侧面板直接测试助手

3. 或者,在左侧导航栏的AI与机器学习菜单中,进入Snowflake Intelligence

4. 从下拉列表中选择您的"供应链_助手"

5. 开始提问!

用户角色画像

我们正为涉及供应链运营的三个核心用户原型进行构建。

陈玛丽(Maria Chen),操作员-供应链运营经理

角色:管理日常运营与物料流转。负责解决库存问题、协调物流,并确保供应链持续运转。

目标:最大化资产可用性,在影响生产前解决缺货问题,并优化成本与速度。

需求:获得实时、可执行的答案。一份按优先级排序的关键问题清单。用于快速比较选项并采取行动的工具。

痛点:持续不断地"救火"。等待分析师出具报告需要耗费数小时甚至数天。在信息不全(例如,不了解天气干扰因素)的情况下做出决策。

维克多·罗德里格斯(Victor Rodriguez),管理者-运营副总裁

角色:overseeing供应链预算与长期战略。负责盈利性、效率以及风险管理。

目标:确保持续运营能力,达成财务目标,并了解高层次的风险与机遇。

需求:掌握供应链健康状况的高层次汇总视图。获得清晰、简洁的关键问题摘要,包括其财务影响及建议解决方案。

痛点:unforeseen的预算超支。重大disruption带来的意外。报告过于细节化且未提供明确建议。

里奥·马丁内斯(Leo Martinez),数据管家-分析工程师

角色:技术与业务逻辑专家。负责数据质量,并通过教导智能助手学习业务独特的逻辑来赋能它。

目标:确保助手回答的准确性与可信度。规范化业务定义。减少自己即席查询报告的积压backlog。

需求:一个用于定义业务语义的简洁用户界面。具备测试、验证和"核准"查询的能力。拥有调试助手特定答案来源的工具。

痛点:来自用户的模糊请求。相同简单问题被反复提问。业务用户对原始数据的误解。

一个真实场景示例

作为操作员玛丽亚(Maria ),我想询问:"我在哪些地方存在关键性低库存水平?"并立刻看到最关键的工厂,以便我立即明确重点关注区域。

当玛丽亚发现迈阿密工厂的某种稀土材料库存告急时,她会追问:"对于原材料库存低的工厂,比较从供应商补货与从其他库存过剩工厂调拨的成本。"助手会比较从奥斯汀调拨(节省71%)与从供应商采购的方案,从而帮助她做出最具成本效益的决策。

在最终确认运输安排前,玛丽亚问道:"哪些天气事件可能会影响此次转运?"智能助手自动调取天气预报工具并预警:"预报显示有强飓风,运输可能受阻。"——这个及时的提醒让她避免了一次代价高昂的物流失误。

作为决策者维克多(Victor ),当玛丽亚指示助手"起草一份包含分析结论、备选方案和最终建议的高管摘要邮件"时,我希望收到简洁明了的汇报。智能助手随即生成HTML格式邮件,包含执行摘要、成本对比、关键风险和最终建议,让我能在几分钟内做出明智决策并回复"批准"。

作为数据管理员里奥(Leo ),我预先在语义模型YAML文件中定义了"库存临界低位"等业务逻辑,并添加了经过验证的成本对比查询语句。这使得智能助手能够准确理解我们的业务规则,玛丽亚也得以信赖系统给出的分析结果。

测试智能助手提问功能

现在轮到您亲身体验供应链智能助手了!请按顺序提问跟随玛丽亚的操作流程,或自行探索各项功能。请注意观察智能助手如何根据问题自动选择调用相应工具——这一切都基于Snowflake Intelligence平台的原生能力。

以下是遵循玛丽亚的场景模拟:

请按顺序提问,以复现上述场景:

1. “我的关键库存低点在哪里?”

2. “我们哪些地方的稀土材料库存较低?”

3. “对于原材料库存低的工厂,比较一下从供应商补货与从有库存过剩的另一个工厂调拨的成本。”

4. “哪种天气事件可能会影响此次调拨?”

5. “起草一份包含此分析、我们的选项及建议的执行摘要邮件。”

附注:发送电子邮件需要已验证的邮箱地址。WEB_SEARCH和WEB_SCRAPE工具需要外部集成访问权限,试用账户无法使用。

可供探索的附加问题

尝试以下变体问题,以探索不同的能力:

 “比较一下从库存过剩的工厂调拨此库存与从供应商处补货的成本”;

 “向我展示所有库存过剩且可以支持调拨的工厂”;

 “我们主要供应商的交货期是多久”;

 “在我们的文档中搜索调拨政策”(使用Cortex搜索);

 “为航空航天业务线安排了哪些订单”。

总结与资源

恭喜!您已构建了一个由Snowflake Intelligence驱动的全面供应链助手,它将多种人工智能能力整合到了一个智能代理中。

本课要点

 如何通过逼真的样本数据设置一个全面的供应链数据库;

 如何为Cortex Analyst创建语义模型,以实现自然语言查询;

 如何解析PDF文档并将其分块,以便用于Cortex搜索;

 如何构建Cortex搜索服务,用于对非结构化数据进行语义搜索;

 如何创建一个结合多种工具的Snowflake Intelligence代理;

 如何将Cortex Analyst、Cortex搜索和自定义工具整合到一个单一的代理中;

 如何在您的AI助手中启用网络搜索和抓取功能;

 代理如何智能地将问题路由到合适的工具;

 如何测试跨多个数据源和工具类型的复杂查询。

你的成果

你的供应链助手现已具备以下功能:

 双重分析:使用自然语言查询供应链运营数据和天气数据;

 语义搜索:通过智能检索访问非结构化的供应链文档资料;

 网络集成:从互联网搜索和抓取外部信息;

 通讯能力:生成HTML格式新闻邮件并发送电子邮件(需适当集成配置);

 智能路由:根据问题上下文自动决定使用哪个工具;

 复杂分析:处理跨越结构化与非结构化数据的复杂多领域查询。

后续步骤与扩展方向

扩展至多智能体架构

随着组织需求的增长,你可以从单一智能体配合多个工具的模式,演进到由主协调智能体与专业化领域智能体协同工作的多智能体架构。这种架构能实现更好的可扩展性、更深的领域专业性,并支持针对不同业务职能的智能体独立开发:

你可以通过以下方式进一步扩展此解决方案:

 添加更多语义模型:为其他业务领域(如财务、人力资源、销售等)创建额外的语义模型;

 集成更多数据源:连接到外部API或数据库;

 创建自定义工具:为你的独特业务流程构建特定工具;

 构建Streamlit应用:创建能够以编程方式与你的智能体交互的自定义用户界面;

 添加更多文档:索引更多的PDF文档、用户手册或政策文件;

 实施高级分析:添加用于预测性分析、优化或机器学习推理的工具;

 设置电子邮件集成:配置电子邮件发送功能,实现自动化报告。

相关资源

 Snowflake Cortex文档;

 Snowflake Intelligence文档;

 Cortex Analyst文档;

 Cortex Search文档;

 语义模型指南;

 Snowflake快速入门;

 Snowflake社区。

源代码仓库

访问本快速入门指南的完整代码、脚本和文件:

· Supply Chain Assistant GitHub Repository

原文地址:https://www.snowflake.com/en/developers/guides/supply-chain-assistant-with-snowflake-intelligence/

点击链接立即报名注册:Ascent - Snowflake Platform Training - China更多 Snowflake 精彩活动请关注专区