一、问题:临期管理为什么总是错过处置窗口
早上 7 点,仓库里有一批原料还剩 9 天到期。库管知道,生产计划不知道;采购以为还能正常消耗,
销售没有提前准备渠道。等信息走到负责人面前,选择只剩下低价处理或报损。
把它当成技术问题拆开,是四件事:
- 数据:批次、效期、库存状态散落在 ERP、WMS、Excel、人工台账,口径不一致;
- 规则:不同品类/仓库/客户的预警阈值与允许动作不同;
- 协同:发现风险之后谁决策、谁执行、谁回填结果,没有闭环;
- 评估:AI 说"省 20 万"很容易,核实实际处置效果很难。
二、方案:一条完整的业务闭环
ERP / WMS / JSON 批次数据 ↓ 临期扫描与红 / 橙 / 黄分级 ↓ AI 处置建议 + 允许动作校验 + 节省估算 ↓ 企业微信推送 → 人工批准 / 稍后 / 改方案 ↓ 处置工单 → 完成回执 → 已核实节省 → 月度报告系统不绕过人自动处置库存:AI 辅助判断,授权人员保留决定权;建议超出允许动作空间时,
标记为"需人工复核"。
三、技术实现要点
| 工程边界 | 实现 |
|---|---|
| 领域逻辑 | 客户可配置的临期阈值分级;允许/禁用动作约束;异常建议人工复核 |
| 模型接入 | Offline / Claude / KIMI / OpenAI-compatible 本地模型,统一边界 |
| 决策闭环 | 建议、批准、改方案、工单、完成回执、实际节省分别留痕 |
| 可靠性 | 幂等、防重放、持久任务队列、有界并发、超时、重试、部分失败隔离 |
| 数据层 | SQLite(单节点试用)/ PostgreSQL(共享持久化、多实例) |
| 安全 | Bearer/OIDC、RBAC、租户隔离、只追加安全审计、请求限流 |
| 可观测性 | 结构化日志、Prometheus 指标、correlation ID、OpenTelemetry |
| ERP 边界 | 统一BatchRepository;SAP Business One Service Layer 适配器 + 离线契约测试 |
| 质量反馈 | 用已完成工单的核实结果评估估算偏差,而不是用模型自信度当效果 |
几个容易被低估的点:
- 幂等与防重放:企业微信回调会重试,工单不能重复创建;
- 允许动作校验:模型可能建议"折价清仓",但该批货合同规定只能退货 —— 建议必须被规则拦下并给出理由;
- 估算偏差回流:用"实际处置量 × 实际单价"反向校正模型估算,才谈得上可信度。
四、5 分钟本地跑通(不需要任何账号)
gitclone https://github.com/apaqyang/Shelf-Life-Copilot.gitcdShelf-Life-Copilotdockercompose up另开终端执行离线临期扫描:
dockercomposeexecapp uv run python-msrc.cli\--customercustomerA--today2026-05-26\--provideroffline --render-cards生成企微卡片样本与月度 PDF 报告:
dockercomposeexecappmakedemodockercomposeexecappmakereport建议先读:docs/QUICKSTART.md(食品厂 IT 视角)、docs/ARCHITECTURE.md(分层与设计决策)、docs/demo_samples/(离线样本)。
五、食品企业怎么验证它(建议路径)
- 从 ERP/WMS 导出30~100 行脱敏批次数据(批次号、物料、生产日期、到期日、库存量、单位、仓库);
- 转成
data/batches/customerA.json结构,先跑 Offline 模式; - 让仓库、生产/销售、品控一起检查:有没有漏报?哪些建议不允许?库存口径对不对?
- 规则确认后,再验证云端模型或本地 OpenAI-compatible 模型的建议质量;
- 最后接企业微信测试群与 ERP/WMS只读接口,首期不要开放库存写权限。
六、边界说明(重要)
仓库中的截图、客户 A/B 数据与 ROI 报告均为离线演示样本,用于展示流程,
不代表已完成真实客户生产验收;真实价值需在共建 PoC 中通过客户数据核实。
SAP Business One 适配器需真实厂商沙箱在线验收;用友、金蝶、自研 WMS 需要按客户接口实现适配器。
七、项目信息
- GitHub:https://github.com/apaqyang/Shelf-Life-Copilot
- 协议:AGPL-3.0-or-later
- 关键词:食品行业数字化、临期管理、保质期预警、ERP 集成、WMS、企业 AI 应用、大模型应用、私有化部署、FastAPI