供应链优化用-AI-代理-生产计划
供应链优化用 AI 代理:生产计划
原文:
towardsdatascience.com/ai-agents-for-supply-chain-optimisation-production-planning/
在制造业中,真正的挑战不是生产商品,而是决定何时以及生产多少。
这句话来自一位联系我们的植物总监,他们希望实施一个算法来改进他们的主生产计划 (MPS)。

生产计划流程(图片由 Samir Saci 提供)
目标是生成既能平衡规模经济又能最小化库存的生产计划。
我们的初始解决方案是一个连接到工厂系统的网络应用。

网络应用截图,其中包含一些可选参数(图片由 Samir Saci 提供)
虽然它生成了最优的生产计划,但仍需要规划者导航仪表板并导出结果。
如何在 AI 层上提高用户体验?
作为实验,我们将优化引擎打包成一个 FastAPI 微服务,该服务嵌入在用 n8n 构建的AI 工作流程中。
工具演变成一个 AI 助手(集成在规划者的工作流程中),它可以理解输入,运行算法,并以简单的英语提供优化计划的解释。

AI 代理的输出示例 – (图片由 Samir Saci 提供)
在这篇文章中,我介绍了我们如何使用 n8n 进行AI 代理供应链优化实验。
这将是尝试构建一个配备在 FastAPI 微服务中的算法的供应链优化“超级代理”的长期系列实验中的第一个。
使用 Python 进行生产计划
场景
让我们假设我们在支持欧洲的一家中型工厂。
主生产计划是商业团队和生产之间的主要沟通工具。
在我们客户的工厂中,客户向他们的规划团队发送带有数量和预期交付日期的采购订单(PO)。

下 12 个月的需求预测 – (图片由 Samir Saci 提供)
例如,
- 第二个月预期的交付数量是
150 个箱子
初始解决方案
规划团队的目标是找到最优的生产计划,以最小化生产成本,考虑以下因素:
-
设置成本:每次设置生产线时的固定成本
示例:每生产批次 500 美元
-
持有成本:每单位每时间的存储成本
示例:每单位每月 1 美元
如果你每月只生产所需的数量,你可以最小化持有成本。

极端情况 1:每月只生产所需的数量(图片由 Samir Saci 提供)
但由于你需要12 次设置生产线,设置成本将会激增。
相反,如果你在第一个月就生产总量,你将只有一个设置,但你的持有成本将会激增。

极端情况 2:一次性生产总量(图片由 Samir Saci 提供)
你在第一个月建立了一个 2,000 个箱子的库存,这些库存将在接下来的 12 个月内缓慢消耗。
在这两个极端情况之间有一个最优场景。
如何找到合适的平衡点?
在另一篇文章中,我解释了如何使用Wagner-Within 算法来生成一个优化的计划。
这是一个用于生产计划的动态规划方法,它会在多个期间内找到成本最优的调度。

Wagner-Within 实现解释在此文章中 – (图片由 Samir Saci 提供)
通过评估所有可行的生产计划,它找到了设置成本和持有成本之间的最佳平衡。

由 Wagner-Within 算法生成的最优生产计划(图片由 Samir Saci 提供)
输出是一个最优计划:
-
4 个月(仅此)的生产:第 1 个月、第 6 个月、第 9 个月和第 11 个月;
-
库存在生产批次之间被消耗。
在下面的动画 GIF 中,你可以可视化部署在 Web 应用程序上的解决方案演示。

生产模块演示(图片由 Samir Saci 提供)
用户可以
-
每月、每周或每天上传他们的需求预测
-
选择参数(设置成本、持有成本、……)
我们能否通过 AI 的支持来提升用户体验?
为了提高规划者的生产力,我们旨在通过 AI 消除 UI 并直接将解决方案集成到他们的工作流程中。
在下一节中,我将分享我们使用 n8n 构建的这个 AI 驱动工作流程的原型进行的实验。
👉 查看下方的视频链接以获取工作流程的实时演示
使用 FastAPI 和 n8n 的 AI 工作流程
从用户验收测试(UAT)期间收到的反馈中,我们了解到他们需要这个工具更好地集成到他们当前的过程和工作流程中。
配备工具的 AI 代理
规划优化算法已被打包在一个具有多个端点的 FastAPI 后端中
-
/upload_prod:这个端点接收包含需求数据集的 POST 请求以将其上传到后端
-
/launch_plan:这个端点接收一个 GET 请求,其中包含设置成本、持有成本和时间单位等参数

可连接到 n8n 工作流程的 FastAPI 后端 – (图片由 Samir Saci 提供)
如何将此后端与 AI 代理连接?
我们将在 n8n 中使用一个配备工具节点的 AI 代理节点,该工具节点可以发送和接收 HTTP 请求。

配备 API 工具节点的 AI 代理节点 – (图片由 Samir Saci 提供)
对于所有用途,此 AI 代理节点的架构将相同:
-
大型语言模型:在上面的示例中,我们使用 OpenAI 模型
-
带有系统消息的 HTTP 请求节点,解释如何连接到 API 以及预期的输出数据类型
此节点将用于生成最佳生产计划的摘要,并通过电子邮件发送。
AI 工作流程:自动电子邮件回复
生产规划人员通常通过电子邮件从商业团队接收请求,邮件正文中包含详细信息,附件中按时间段请求的量。

规划团队收到的电子邮件示例(图片由 Samir Saci 提供)
他们希望自动回答这些请求,而无需手动下载附件、上传到 UI 并根据 UI 中显示的结果生成电子邮件。
与他们达成一致,他们将遵循特定的电子邮件格式以确保包含所有必要的信息:
-
附件:需求数据集,格式为(.csv)
-
邮件正文:所有需要的参数,如持有成本、设置成本、货币

通过电子邮件收到的请求示例 – (图片由 Samir Saci 提供)
之前展示的 AI 代理将从另一个代理那里接收数据,该代理将解析电子邮件以提取相关参数。

完全自动电子邮件回复的 AI 工作流程(图片由 Samir Saci 提供)
第 1 步:收集电子邮件并下载附件
Gmail 触发节点收集电子邮件正文并下载附件。

专注于需求数据的上传 – (图片由 Samir Saci 提供)
(.csv)文件被转换为 JSON 并通过 POST 请求发送到后端。
现在数据集已上传,我们可以将电子邮件正文提供给第一个 AI 代理节点。
第 2 步:生成最佳生产计划
在此工作流程中我们有两个 AI 代理节点
-
AI 代理解析器 解析电子邮件内容以提取参数,这些参数以 JSON 格式返回。
-
AI 代理 API 请求 消费这些参数并查询 FastAPI 后端以检索用于生成书面分析的输出。

专注于工作流程的代理部分 – (图片由 Samir Saci 提供)
在第一个 AI 代理节点系统中,我们详细说明了如何解析电子邮件以收集适当的参数。

系统提示 – (图片由 Samir Saci 提供)
此 AI 代理解析器的输出发送到第二个 AI 代理,该代理将查询后端。

上文邮件中 AI 代理解析器的输出 – (图片由 Samir Saci 提供)
在最小系统提示中,我们指导 AI 代理 API 请求如何使用工具。
我们概述了可用的参数:

系统提示中参数的概述 – (图片由 Samir Saci 提供)
我们列出 API 端点的输出:

系统提示中的输出列表 – (图片由 Samir Saci 提供)
我们详细说明预期的任务:

系统提示中详细说明的任务 – (图片由 Samir Saci 提供)
第二个代理的输出通过最后一个 Gmail 节点发送回商业团队。

AI 代理提供的摘要示例 – (图片由 Samir Saci 提供)
摘要包括商业所需的最小信息集(成本、生产批次),以便向客户提供报价。
结论
此工作流程已作为 POC 部署,两位用户提供了鼓励性的反馈。
我们正在寻找商业案例以产品化这种方法,并为我们的所有分析产品提出该功能。
到目前为止,已经决定将此功能用于 非关键物品的订单。
AI 工作流程作为推动者
根据我在设计和实施分析产品方面的经验,工具快速采用的主要障碍是其与现有流程和工作流程的集成。
对于管理 100 多个参考和数十个客户及内部利益相关者的产品规划师来说,最好避免学习具有特定界面和额外手动步骤的新工具。
因此,AI 代理可以用于将工具集成到任何现有工作流程中,对用户的影响和额外工作量最小。
在 n8n 的支持下,我们尝试将我们的分析产品与 Jira 集成以进行人员规划,以及利用 TG 进行运输路线规划和客户使用的 ERP 模块。
接下来是什么?
此工作流程可以增强以利用大型语言模型(LLMs)的潜力。
例如,我们可以要求代理模拟多个场景的量,以建议客户是否增加或减少其订购数量以获得更好的价格。
只要我们向代理解释了如何使用工具(即我们的分析产品,封装在 FastAPI 微服务中),我们就可以像拥有一个能够运行场景的分析师一样与之合作。
关于我
让我们在 LinkedIn 和 Twitter 上建立联系。我是一名供应链工程师,使用数据分析来改进物流运营并降低成本。
如需咨询或获取关于分析和可持续供应链转型的建议,请通过Logigreen Consulting联系我。
如果你对数据分析和供应链感兴趣,请查看我的网站。

浙公网安备 33010602011771号