xPilot v0.2 原型数据实现路径分类(规则 vs LLM)

xPilot v0.2 原型数据实现路径分类(规则 vs LLM)

最后更新:2026-05-01
适用范围:Web (xpilot-prototype.html) + App (App/xpilot-app.html) + 3D 地图 (store.html)


一、目的

xPilot v0.2 Web/App 原型展示的数据当前均为内联 mock。进入工程化阶段前,本文按字段粒度标注每一条展示数据的:

  • 类别(A/B/C):实现路径
  • 数据源:上游接口
  • 计算方式:A 给数学公式,B/C 指向 §七 详细实现逻辑

便于:

  • 数据团队按"计算方式"列直接对接接口、写聚合 SQL
  • AI 工程团队按 §七 LLM 调用点清单逐条对接 prompt + 上下文
  • 产品/PM 评估每个 LLM 调用点的价值与成本

二、分类框架

类别 标记 含义
规则类 A 直接从结构化数据聚合 + 阈值/排序/着色规则。无需 LLM。
LLM 类 B 必须调 Claude API,做语义理解、归因推理、自然语言生成、多源融合。
混合类 C 规则/CV 模型先触发并提取要素,LLM 负责生成解释/润色。
静态 UI — 标题、按钮文案、图例等纯 UI 元素,不分类。

2.1 B 类实现逻辑要素

每个 B 类调用点的实现包含 5 要素:

  1. 触发条件:何时调(每日预生成 / 实时事件触发 / 用户主动)
  2. 输入上下文:从哪些表/字段/时间窗拼装数据 JSON
  3. Prompt 模板:System prompt(角色 + 风格约束)+ User prompt(动态数据 + 输出格式要求)
  4. 输出格式:受约束的输出(字数/句数/结构),便于前端直接渲染
  5. 模型选择:根据上下文长度和质量要求选 Haiku / Sonnet / Opus

→ 详细见 §七 B 类清单(B#1 – B#12)

2.2 C 类实现逻辑要素

每个 C 类位置的实现包含 5 要素:

  1. 触发规则:明确阈值或事件(如 oos>8% / 品质问题数>3 / 执行率<70%)
  2. 要素提取:规则/CV 提取的结构化字段(如 risk_type、severity、details)
  3. LLM 用途:将结构化要素转为自然语言(5-15 字短句 / 标题 / 详细解释)
  4. 降级方案:纯规则模板 fallback(LLM 失败时仍有内容显示)
  5. 缓存策略:结果建议缓存(输入要素相同则复用,节省 token)

→ 详细见 §七 C 类清单(C1 – C6)


三、数据源清单

来自 ANS_TRUST 元数据声明 + 业务推断:

数据源 用途
POS 销售系统 销售额/客单价/客流/连带率/分时销售
库存中台 SKU 库存/缺货 SKU/库存周转
补货系统 补货单/补货时效
货架 IoT 摄像头 货架空置率/陈列识别/实拍图
POG 计划库 计划陈列方案/双图对比基准
陈列识别 AI CV 模型识别商品位置/排面
客流计数器 入店/分时/转化率
会员系统 会员复购/新客占比/价值分层
促销活动配置 活动周期/价格/堆头位置
任务系统 任务全字段(status/owner/priority/area/evidence)
HR 系统 员工档案/在岗状态
排班系统 本周排班/班次
设备告警平台 POS/ESL/AP/摄像头健康度
门店主数据 门店列表 + lat/lng + 综合评级

四、字段级分类(Web 端)

1. 顶部导航

元素 类别 数据源 计算方式
Tab 名称 / 视角按钮 / 副标题 — — 静态 UI

2. 实时仪表盘 — 总部·品类经理(page-battle-hq)

2.1 KPI Bar(5 张可点卡片)

字段 类别 数据源 计算方式
销售进度 A POS 值 = SUM(POS.amount WHERE date=today AND store IN all_stores)
vs 昨 = (today_累计 - yesterday_同时点累计) / yesterday_同时点累计
vs 上周 = (today_累计 - last_week_同DOW同时点累计) / last_week_同DOW同时点累计
客流转化 A 客流计数器 + POS 客流 = SUM(traffic.entries WHERE date=today)
转化率 = COUNT(DISTINCT POS.txn_id WHERE date=today) / SUM(traffic.entries WHERE date=today)
客单价 A POS 值 = SUM(POS.amount) / COUNT(DISTINCT POS.txn_id) WHERE date=today
vs 昨 / vs 上周 = 同销售进度的同期对比公式
库存监控 / 缺货率 A 库存中台 缺货率 = COUNT(SKU WHERE stock<=0 AND active=true) / COUNT(SKU WHERE active=true),按门店 SUM 后取均值
陈列合规 A 货架 IoT + POG 异常组数 = COUNT(shelf WHERE compliance=false)
合规率 = 1 - 异常组数 / COUNT(active_shelf)

2.2 Leaflet 世界地图

字段 类别 数据源 计算方式
10 门店 marker(lat/lng) A 门店主数据 直接读取 store.lat, store.lng
综合评级 S/A/B/C/D A 多维加权 score = 0.30*sales + 0.20*traffic + 0.20*price + 0.15*inv + 0.15*display
映射:≥90→S, 75-90→A, 60-75→B, 40-60→C, <40→D
5 维评级(sales/traffic/price/inv/display) A 各维度 每维独立打分 0-100,按上述阈值映射 S/A/B/C/D
KPI 切换重绘 marker 颜色 A 规则映射 marker.color = RATING_COLOR[store.ratings[currentKpi]]
评级图例/筛选卡 — — 静态 UI

2.3 门店详情弹窗(5 KPI section)

字段 类别 数据源 计算方式
销售进度(今日/vs昨/vs上周) A POS 同 2.1 销售进度公式,过滤条件加 store=X
客流/转化(今日/转化率/vs昨) A 客流 + POS 同 2.1 客流转化,按门店过滤
客单价(今日/vs昨/vs上周) A POS 同 2.1 客单价
库存监控(缺货率/补货时效/vs昨) A 库存 + 补货 缺货率 同上
补货时效 = AVG(replenish_task.complete_at - replenish_task.create_at) WHERE store=X AND date=today
陈列合规(异常数/异常率/处理时效/vs昨) A IoT + 任务 异常数 = COUNT(shelf_alert WHERE store=X AND date=today)
处理时效 = AVG(display_task.complete_at - alert.detected_at)

2.4 AI 经营洞察面板(中间)

字段 类别 数据源 计算方式
摘要卡 — 昨日总结 B POS+库存+任务+品类聚合 → 详见 §七 B#1
摘要卡 — 今日注意事项(带 ①②③) B 今日实时+预测+待办 → 详见 §七 B#2
优先级筛选(紧急/警告/信息) A 规则映射 priority = colorToPriority(ins.c),c=#EF4444→high, #FB923C→med, #3B82F6→info
洞察卡标题 C 规则模板(可选 LLM 改写) 触发:result 字段已生成
模板:<门店> <品类> <指标> <方向> <数值> → 详见 §七 C2
洞察卡 · 结论 result A 业务系统聚合 例:两店缺货 SKU 合计 530 个 = SUM(stock<=0 WHERE store IN [CQ,WH] AND date=yesterday)
洞察卡 · AI判断 cause B 触发指标 + 关联表 → 详见 §七 B#3
洞察卡 · 建议 advice B cause + 资源/排班 → 详见 §七 B#4
storeIds 联动 A 规则触发 flashStores(ins.storeIds)
"查看详情"按钮 — — 静态 UI

2.5 右侧 Tab — 品类健康度(8 项)

字段 类别 数据源 计算方式
品类名 A 商品主数据 SELECT DISTINCT category
health 评分 A POS + 库存 health = 0.40*达成率 + 0.30*(1-缺货率) + 0.20*合规率 + 0.10*库存周转分
销售额 A POS SUM(POS.amount WHERE category=X AND week=current_week)
oos 缺货率 A 库存 COUNT(oos_sku WHERE category=X) / COUNT(active_sku WHERE category=X)
risk 文本 C 规则触发 + LLM 触发:health<60 OR oos>8% OR 供应链事件 → 详见 §七 C1
storeIds 关联 A 规则筛选 WHERE category=X AND (health<阈值 OR risk_event) 过滤受影响门店

2.6 右侧 Tab — 促销实时追踪(4 项)

字段 类别 数据源 计算方式
活动名 A 促销配置 直接读 promo.name
lift 销售提升 A POS + 促销配置 (SUM(amount WHERE in_promo) - baseline) / baseline,baseline = 活动前 14 天同 SKU 日均
marginLoss 毛利损失 A POS + 促销配置 -SUM(promo.discount × qty)
exec 执行率 A 任务系统 COUNT(stores WHERE promo_setup_done=true) / COUNT(stores WHERE promo_planned)
stock 库存消化率 A 库存中台 SUM(promo_sold) / SUM(promo_inventory_planned)
risk 文本 C 规则触发 + LLM 触发:exec<70% OR stock<30%(积压)OR stock>90%(缺货风险) → 详见 §七 C1

2.7 右侧 Tab — 供应商(5 家)

字段 类别 数据源 计算方式
供应商名 A 供应链系统 直接读
onTime 准时率 A 供应链 COUNT(orders WHERE delivered_on_time=true) / COUNT(orders WHERE last_30d)
oosRate 缺货率 A 库存 由该供应商品引起的缺货率 = COUNT(oos_sku WHERE supplier=X) / COUNT(sku WHERE supplier=X)
quality 品质问题 A 供应链 COUNT(quality_issue WHERE supplier=X AND last_30d)
costTrend 成本趋势 A 供应链 (current_unit_cost - 30d_ago_unit_cost) / 30d_ago_unit_cost
risk 文本 C 规则触发 + LLM 触发:onTime<80% OR quality>3 OR costTrend>+3% → 详见 §七 C1

3. 实时仪表盘 — 店长(page-battle-manager)

3.1 KPI Bar(5 张可点卡片)

字段 类别 数据源 计算方式
销售进度 A POS 同 2.1(按当前门店过滤)
客流转化 A 客流 + POS 同 2.1
客单价 A POS 同 2.1
货架缺货 A 库存 + IoT 缺货率 = COUNT(shelf WHERE oos=true) / COUNT(active_shelf)
陈列合规 A IoT + POG 同 2.1

3.2 3D 门店地图(store.html iframe)

字段 类别 数据源 计算方式
货架/区域几何 A 门店空间数据 静态门店 layout(坐标 + 货架 mesh)
5 维热力图 A 各业务系统 每个货架/区域聚合对应维度数值,按阈值映射热力色(绿→黄→红)
设施叠加(POS/摄像头/AP/购物车/店员/消费者) A IoT 实时位置 直接读各设施实时坐标,渲染图标到 3D 场景
默认 HUD 标签(缺货 4 处/陈列异常 3 处/设备异常 3 处) A 库存 / IoT / 设备告警 实时计数:COUNT(... WHERE store=X AND status='abnormal')
时间轴 0-24(HOURLY_HEAT 24×5) A 历史小时聚合 按小时 GROUP BY 5 维指标,预聚合存日表

3.3 AI 经营洞察(10 条品类×区域级)

字段 类别 数据源 计算方式
摘要 yest / today B 同 2.4 按店长视角缩窄上下文 → 详见 §七 B#1 / B#2
洞察 result A 业务系统 例:冷冻区 4 组货架缺货率超 15% = COUNT(shelf WHERE area='冷冻区' AND oos_rate>0.15)
洞察 cause B 触发要素 + 排班 + 任务 → 详见 §七 B#3
洞察 advice B cause + 当前可用资源 → 详见 §七 B#4
area 联动 A 规则触发 flashArea(ins.area) 通过 postMessage 让 store.html 区域闪烁

3.4 右侧 Tab — 品类速览(7 项)

字段 类别 数据源 计算方式
品类名 + 5 维小指标 A 各业务系统 每品类按 5 维分别聚合:销售/客流/缺货/陈列/任务(公式见 2.1)

3.5 右侧 Tab — 团队

字段 类别 数据源 计算方式
在岗/离岗/休假/异常 计数 A HR + 排班 COUNT(staff WHERE status=X AND date=today AND store=Y)
课组人手紧张度 A 任务 + 排班 pressure = (total_tasks - done_tasks) / total_tasks × 100%,按课组分组

3.6 右侧 Tab — 任务中心

字段 类别 数据源 计算方式
5 stat(未分配/进行中/已完成/核验完成/滞后) A 任务系统 COUNT(task WHERE status=X AND store=Y AND date=today)
课组进度条 6 个 A 任务系统聚合 done_count / total_count per group
高优先级负责人 top 3 A 任务系统排序 SELECT owner, COUNT(*) WHERE priority='high' AND status IN (todo,doing) GROUP BY owner ORDER BY 2 DESC LIMIT 3

4. 实时仪表盘 — 店员(page-battle-staff)

4.1 KPI Bar(蔬果区限定 2 张)

字段 类别 数据源 计算方式
蔬果区缺货率 A 库存 + IoT COUNT(sku WHERE category='蔬果' AND stock<=0) / COUNT(sku WHERE category='蔬果')
蔬果区陈列合规 A IoT + POG COUNT(shelf WHERE area='蔬果区' AND compliance=true) / COUNT(shelf WHERE area='蔬果区')

4.2 3D 地图

字段 类别 数据源 计算方式
同 3.2,蔬果区视角 A 同 3.2 WHERE area='蔬果区' 过滤
叠加层(店员/消费者/购物车 3 项) A IoT 实时位置 同 3.2

4.3 AI 任务洞察(10 条,店员日常 12 类)

字段结构同 2.4 / 3.3,分类映射相同(result A,cause B → §七 B#3,advice B → §七 B#4)。

4.4 今日成绩(renderTodayScore)

字段 类别 数据源 计算方式
5 stat(未分配/进行中/已完成/核验完成/超时) A 任务系统按 owner 筛选 COUNT(task WHERE owner=staff_id AND status=X AND date=today)
任务平均耗时 A 任务系统 本人均时 = AVG(complete_at - start_at) WHERE owner=staff_id AND date=today
同岗位均值 = AVG(complete_at - start_at) WHERE role=same_role AND date=today
比同岗位快 X% A 上面两值差值 (同岗位均值 - 本人均时) / 同岗位均值
AI 评估卡("你今天的工作让门店多卖了 ¥3,420 · 主要来自蔬果区缺货率从 4.8% 降到 2.8%...") B 个人任务 + 门店增量 → 详见 §七 B#5

4.5 我的排班(本周 7 天)

字段 类别 数据源 计算方式
班次时间 / 区域 A 排班系统 SELECT shift_start, shift_end, area FROM schedule WHERE staff=X AND week=current
今日高亮 A 规则 is_today = (cell.date == today) 蓝色样式

5. 任务管理 — 总部(page-tasks-hq)

字段 类别 数据源 计算方式
8 列汇总表 A 任务系统按门店聚合 每店:COUNT(task) GROUP BY status WHERE store=X AND date=today
完成率 = (done + verified) / total
均响应时长 = AVG(start_at - create_at)
数字着色(红/绿) A 阈值规则 未分配>0 红 / 超时>0 红加粗 / 完成率<65% 红 / ≥85% 绿
全部门店 / 品类 / 状态筛选下拉 A 任务系统过滤 WHERE store IN ? AND category IN ? AND status IN ?

6. 任务管理 — 店长(page-tasks-manager)

字段 类别 数据源 计算方式
5 列看板(unassigned/doing/done/verified/overtime) A 任务系统 WHERE store=current_store AND status=col_status,overtime 列横切(任意状态 × overtime=true)
任务卡(标题/品类/优先级/状态/负责人/超时) A 任务系统 直接读字段
员工状态侧栏 4 类 + 异常置顶 A HR + 排班 同 3.5;排序:ORDER BY status='abnormal' DESC, name

7. 任务管理 — 店员(page-tasks-staff)

字段 类别 数据源 计算方式
个人信息条 A HR + 任务 姓名/岗位 from HR;今日任务 = COUNT(task WHERE owner=me AND date=today) 含完成数
5 列看板 A 任务系统 WHERE owner=me AND status=col_status
可认领池(未分配列) A 任务系统 WHERE category=my_category AND status='unassigned'

8. 任务详情弹窗

字段 类别 数据源 计算方式
状态/标题/品类/负责人/创建时间/area A 任务系统 直接读 task.X
现场凭证 A IoT 摄像头 + 文件存储 按 evidenceType 拉取对应资源(实拍图/双图对比/PDF 单据)
状态推进按钮 — — 静态 UI(advanceTask 函数)
系统核验通过/不通过判定 C CV 比对 触发:task.status='done' AND evidence_uploaded → 详见 §七 C4

9. 陈列管理(page-shelf)

字段 类别 数据源 计算方式
6 列表格 A 陈列识别 AI + 库存 缺货率 = oos_count / total_skus per shelf
异常率 = compliance_diff / total_facing per shelf
缺货实拍图查看 A 货架 IoT 摄像头 拉取最新一帧图像 + timestamp + 摄像头 ID
计划 vs 实际双图对比 A POG + IoT 左图=POG.plan_image,右图=IoT.latest_capture
异常识别 C CV + 规则 触发:每小时 CV 扫描,比对 POG 计划,diff_score>阈值 → 标记异常 → 详见 §七 C4
异常详情解释 B CV 差异要素 → 详见 §七 B#6

10. AI Agent(page-agent)

10.1 4 Tab × 4 题预设(共 16 题)

字段 类别 数据源 计算方式
题目文案 — — 静态 UI(题库)
可信度行(置信度/样本/时间窗/数据源/生成时间) A 元数据 ANS_TRUST[group] 静态映射 + 实时时间戳

10.2 AI 回复

字段 类别 数据源 计算方式
表格化数据(商品名/缺货开始/持续时长/库存/优先级/损失) A 库存 + POS + 阈值 查询缺货 SKU + JOIN 库存 + 计算 持续时长(now-oos_start) + 损失(missed_qty × avg_price)
优先级 = 损失>100→高,50-100→中,<50→低
"缺货原因"列 C 规则枚举 + LLM 改写 触发:缺货事件,规则枚举 4 类(库存为 0/补货延迟/排面不足/数据异常)→ 详见 §七 C3
自然语言段落 B LLM 销量预测 + 建议 → 详见 §七 B#7
stat-row 三联卡(销售额/客单价/客流) A POS 同 2.1
操作按钮 — — 静态 UI(生产态由 LLM tool-use 触发)

10.3 右侧 3D 地图联动

字段 类别 数据源 计算方式
商品标记 7 槽位位置 A POG 计划库 SELECT shelf_x, shelf_y FROM POG WHERE sku IN answer.products
映射到 iframe 的 7 个百分比槽位

10.4 商品弹窗(点击 marker)

字段 类别 数据源 计算方式
OOS · 相机实拍图 A IoT 摄像头 拉取该货架最新帧
OOS · AI 识别空置率 C CV 模型 触发:图像送入 CV 模型,输出 empty_ratio(0-1) → 详见 §七 C5
OOS · 后仓库存 / 关联任务 A 库存 + 任务 SELECT stock FROM 库存 WHERE sku=X AND location='后仓'
SELECT task FROM 任务 WHERE related_sku=X AND status IN (todo,doing)
POG · 实际 vs 计划双图 A IoT + POG 同 9
POG · AI 差异分析叙述 B VLM 描述差异 → 详见 §七 B#10

10.5 自由输入

字段 类别 数据源 计算方式
演示态 matchAnswerKey 关键词匹配 A 关键词词表 if (input.includes(keyword)) return ANSWERS[key] 仅原型用
生产态自由问答 B LLM + tool-use → 详见 §七 B#7
洞察"查看详情"自动发送 A UI 联动 拼接 [洞察] {title} 结论:{result} AI判断:{cause} 建议:{advice} 作为 user message
右键"问 xPilot"组件级带入 A UI 联动 closest(CTX_COMP_SEL).textContent 拼成上下文

五、字段级分类(App 端)

A1. 角色选择 / 顶部 / 底部导航

元素 类别 数据源 计算方式
静态文案 / 切换逻辑 — — 静态 UI

A2. 首页 — 店员

字段 类别 数据源 计算方式
顶部用户信息(姓名/岗位/日期) A HR 直接读
AI 洞察摘要卡 · 昨日 B 个人任务 + 品类销售 → 详见 §七 B#8
AI 洞察摘要卡 · 今日 B 今日预测 + 待办 → 详见 §七 B#8
行动清单(任务列表) A 任务系统 WHERE owner=me AND date=today ORDER BY priority
我的品类·蔬果区(缺货率/任务完成/品类排名) A 库存 + 任务 + POS 缺货率:同 4.1
任务完成 = done/total per category
品类排名 = RANK over (ORDER BY category_sales DESC) 中的本品类位次
我的今日绩效(环形 60% + 平均响应 12min + 品类评分 B+ #2) A 任务系统聚合 完成率 = done / total per me
平均响应 = AVG(start_at - create_at)
品类评分 = 综合分按字母分桶
近 7 日任务完成率折线 A 任务系统历史 每日 done/total per me 7 个数据点

A3. 首页 — 店长

字段 类别 数据源 计算方式
AI 洞察摘要卡(双段) B 跨多源整合 → 详见 §七 B#8
KPI 横滑 5 张 A 各业务系统 同 3.1
品类速览 7 项(含 risk 标签) A + C 各系统 + LLM 数据 A(同 3.4);risk 同 §七 C1
团队(含异常员工) A HR + 任务 同 3.5
课组人手紧张度 6 项 A 任务 + 排班 同 3.5
今日分时销售柱状图 A POS 分时 SUM(POS.amount) GROUP BY HOUR(timestamp) 24 个数据点
员工状态表 A HR 同 3.5

A4. 任务列表

字段 类别 数据源 计算方式
5 状态筛选 / 任务卡 A 任务系统 同 7(店员)/ 6(店长)

A5. 任务详情(7 类型)

字段 类别 数据源 计算方式
基本信息 A 任务系统 直接读
2D 门店地图(4×3+收银带) A 门店布局静态 + 任务 area 任务 area 模糊匹配 STORE_LAYOUT 区域 (area.includes(zone.key)) → 高亮匹配区域 + pin
补货任务 · 商品/库存/损失 A 库存 + POS 同 10.2
补货 · AI 补货建议("建议补货 6 箱,预计销售约 4.2 箱") B 销量预测 + 库存 → 详见 §七 B#9
陈列调整 · 陈列对比双图 A IoT + POG 同 9
陈列 · AI 差异分析 B VLM → 详见 §七 B#10
陈列 · 调整步骤 C 规则模板 + LLM 微调 触发:差异类型识别后查模板库 → 详见 §七 C6
设备告警 · 故障描述/告警码/处理建议 A 设备告警平台 + 知识库 直接拉告警事件 + JOIN 运维知识库
促销 · 活动信息/方案 PDF/核对清单 A 促销活动配置 直接读
收货 · 到货清单 / effect-card A 供应链 + 任务 直接读到货单
effect-card:if status IN (done,verified) display "已完成 · {complete_at} {owner} 验货完毕"
上架 · 商品清单 / effect-card A 任务 + POG 同上
AI 洞察任务 · AI 洞察依据 B 跨数据源归因 → 详见 §七 B#11
AI 洞察 · 执行步骤 C 规则模板 + LLM 同陈列调整步骤 → 详见 §七 C6
AI 洞察 · 预期效果("提升 8-15%") B 历史相似动作 lift → 详见 §七 B#12
状态按钮(按 todo/doing/done/verified 动态) — — 静态 UI(系统自动核验)

A6. Agent 对话

字段 类别 数据源 计算方式
预设题 / 操作按钮 — — 静态 UI
AI 回复 B LLM + tool-use 同 §七 B#7(生产态)

六、洞察规则引擎

本节定义 §三 数据源 与 §七 LLM 调用点 之间的"模式识别"中间层。规则引擎扫描数据、识别异常,输出标准化要素 JSON,作为 §七 B#3/B#4 等 LLM 调用点的输入契约。

6.1 职责定位

  • 不调 LLM:纯规则 / 阈值 / CV 模型
  • 输出契约:标准化要素 JSON(schema 见 §六.3),是 §七 B 类调用点的输入
  • 触发模式:实时事件驱动 / 周期扫描 / 批量分析

6.2 八大规则类别

6.2.1 阈值规则(threshold)

规则 ID 阈值 优先级 原型例子
OOS_RATE 警告 >5% / 紧急 >15% med/high "重庆/武汉冷冻区缺货率超 15%"
SALES_ACHIEVEMENT 紧急 <70% / 警告 <85% / 信息 >105% high/med/info "休闲食品本周达成率 107%"
DISPLAY_COMPLIANCE 警告 <90% / 紧急 <80% med/high "C 区 3 组货架陈列偏离"
TASK_COMPLETION 警告 <70% med "本店今日任务完成率 75%"
TURNOVER_RATIO 滞销 <1.5 次/月 med "A 区运动品类周转 1.2 次"
SAFETY_STOCK 单 SKU < 安全库存 high "西兰花库存仅 8 把"

6.2.2 趋势/对比规则(trend)

规则 ID 触发 例子
YOY_DELTA 同比/环比波动 ±10% "客单价 ¥156 较上周 ↑¥8"
CROSS_STORE_GAP 最优/最差 > 3 倍 "响应 19min vs 68min 差 3.6 倍"
PERSISTENT_DEVIATION 连续 N 天偏差 "苏州/深圳响应连续 7 天超 45min"

6.2.3 预测性规则(forecast)

规则 ID 公式 例子
OOS_FORECAST 库存 / 当前销售速度 < N 小时 "2h 内断货风险"
AGING_FORECAST 库存 / 日均销量 > 30 天 "积压货值 ¥14.6 万"
TRAFFIC_FORECAST 历史同 DOW 模式拟合 "15:00–17:00 客流 +32%"

6.2.4 事件型规则(event — 对应 R3.7 的 7 类 IoT 异常)

规则 ID 数据源 标记色
OOS_CV 货架 IoT 摄像头 CV 实时识别空置 红 #EF4444
OOS_FORECAST_LIVE POS 销售速度 + 库存推算 橙 #F97316
DISPLAY_DIFF CV vs POG 计划比对 浅橙 #FB923C
AP_ANOMALY AP 信号弱 >2h / 离线 蓝 #3B82F6
ESL_FAIL 价签同步失败计数 紫 #8B5CF6
CAMERA_ERROR 摄像头模块报错 黄 #EAB308
POS_TIMEOUT POS 响应 >5s 绿 #10B981

6.2.5 时间/周期规则(schedule)

规则 ID 例子
TASK_OVERTIME 创建后 N 小时未完成 → "T003 已逾期 1h+"
DEVICE_CALIBRATION "秤具距上次校准 28 天,按 SOP 须 30 天内校准"
EXPIRY_WARNING 保质期 <2 天 → "12 箱红富士保质期 < 2 天"
PROMO_CHECKPOINT "12:00 节日礼盒堆头核对"

6.2.6 CV/图像规则(vision)

对应 §七 C4 任务核验、B#6 陈列异常解释、B#10 陈列差异分析。

规则 ID 触发
POG_DIFF_SCORE 陈列 diff_score > 0.1(默认阈值)
FACING_OFFSET 排面偏移距离 > N cm
PRODUCT_MISPLACEMENT 商品错位 / 遮挡识别
SHELF_EMPTY_RATIO 货架空置率(CV 输出 0-1,对应 §七 C5)

6.2.7 关联性规则(correlation)

规则 ID 例子
CROSS_STORE_PATTERN "4 家门店运营管理维度评分连续下滑"
MULTI_DIM_COMBO "华东 23 家门店酸奶销售环比下滑 15%"
MULTI_METRIC_COUPLED "武汉店三项运营管理指标均低于均值 20%+"

6.2.8 业务流程规则(workflow)

规则 ID 例子
LOW_CLAIM_RATE "补货任务认领率仅 38%"
STAFF_ABNORMAL "未签到 · 已迟到 1h12min"
EVIDENCE_MISSING 任务标记完成但未上传拍照凭证

6.3 标准化输出 Schema(规则引擎 → LLM 的契约)

每条规则触发后,统一输出如下 JSON,供 §七 B 类调用点直接消费:

{
  "rule_id": "OOS_RATE_HIGH",
  "rule_category": "threshold",
  "anomaly_type": "oos_spike",
  "priority": "high",
  "scope": {
    "stores": ["CQ", "WH"],
    "category": "冷冻",
    "area": "冷冻区"
  },
  "current": {
    "value": 530,
    "unit": "SKU",
    "label": "两店缺货 SKU 合计"
  },
  "baseline": {
    "value": 80,
    "unit": "SKU",
    "label": "日均缺货数"
  },
  "delta": "+562%",
  "related_data": {
    "task_系统": {"补货任务认领率": "38%", "未认领任务数": 12},
    "排班": {"该区域今日在岗": "3/5(缺 2)"},
    "近7日趋势": [80, 85, 90, 120, 180, 320, 530],
    "iot": {"AP-03 信号": "弱 2h"}
  },
  "triggered_at": "2026-05-06T09:23:00Z",
  "downstream_llm_calls": ["B#3", "B#4"]
}

字段说明:

字段 用途
rule_id 规则唯一 ID(见 §六.2 各表)
rule_category 8 大类之一:threshold / trend / forecast / event / schedule / vision / correlation / workflow
anomaly_type 异常的业务类型(oos_spike / sales_drop / display_diff / ...),用于 LLM 分类
priority high / med / info,与 §四.2.4 colorToPriority(ins.c) 映射对齐
scope 作用域:门店列表 / 品类 / 区域
current / baseline / delta 触发的数值证据
related_data 相关支撑数据,作为 LLM 归因的上下文
triggered_at 触发时间戳
downstream_llm_calls 下游 LLM 调用点(让规则引擎和 LLM 工程团队明确契约)

6.4 触发调度策略

类别 触发模式 频次
阈值规则 周期扫描 每 5-15 分钟
趋势/对比规则 周期扫描 每小时
预测性规则 周期扫描 每 15 分钟
事件型规则 事件驱动 实时(IoT 推送)
时间/周期规则 调度器 按时间点触发
CV/图像规则 周期扫描 + 事件 每小时 + 任务核验时
关联性规则 批量分析 每日凌晨
业务流程规则 周期扫描 每 30 分钟

6.5 与 §七 LLM 调用点的衔接

规则类别 触发的 LLM 调用
阈值 / 趋势 / 预测 / 关联 B#3 cause + B#4 advice(核心智能价值)
事件型(7 类 IoT 异常) B#3 + B#4 + 直接渲染 ANOMALY_DATA 弹窗(混合模式)
CV/图像 C4 任务核验解释 + B#6 陈列异常解释 + B#10 陈列差异分析
时间/周期 直接渲染(提示型,不调 LLM)
业务流程 B#3 + B#4(如认领率低 → 调度建议)

优先级映射(与 §四.2.4 colorToPriority(ins.c) 对齐):

priority 颜色 标签
high #EF4444 紧急
med #FB923C 警告
info #3B82F6 信息

降级策略:当 LLM 调用失败时,B#3/B#4 可降级为按 rule_id + current + baseline 走纯模板渲染(不带归因和具体建议),保证用户始终能看到结构化结论。


七、LLM 调用点详细清单

7.1 B 类调用点(必须 LLM)

B#1 · 实时仪表盘 摘要卡 yest(3 视角)

触发条件:每日凌晨 02:00 批量预生成(3 视角 × N 门店 = 一批调用);用户主动刷新可重新生成。

输入上下文(昨日 snapshot,按视角缩窄):

{
  "date": "2026-04-30",
  "view": "battle-hq | battle-manager | battle-staff",
  "scope": "全网 | 门店ID | 个人ID",
  "kpi": {
    "sales_total": 4280000, "sales_target_rate": 0.92,
    "traffic": 12480, "conversion": 0.21, "avg_basket": 156
  },
  "category_top_anomaly": [
    {"name":"乳制品","achievement":0.92,"detail":"酸奶 -15%"},
    {"name":"休闲食品","achievement":1.07}
  ],
  "store_anomaly": [
    {"scope":"华东 23 店","event":"酸奶供应链延迟","duration":"昨日"},
    {"scope":"北京 5 店","event":"进口红酒滞销>14天"}
  ],
  "task_summary": {"total":312,"done":268,"overtime":18}
}

Prompt 模板:

[System] 你是 xPilot 零售智能助手。为指定视角生成昨日要点摘要。
风格:客观、数据驱动、避免空话;优先突出异常事件;按视角侧重不同(HQ 看跨店趋势,店长看本店异常,店员看个人完成)。

[User] 视角:{view}
昨日数据:{json}
请输出 1-2 句摘要,控制在 80 字以内:
- 覆盖 1-2 个核心数据指标 + 2-3 个最重要的异常事件
- 不要带"昨日"等前缀(前端会加)
- 避免使用"很好/不错"等主观词

输出:纯文本段落,存入 daily_summary(date, view, scope, content) 表,前端读缓存。

模型:Claude Haiku 4.5(短输入短输出,每日 ~30-50 调用,成本最优)


B#2 · 实时仪表盘 摘要卡 today(3 视角)

触发条件:每日凌晨 06:00(开店前)首次生成;上午每 2h 刷新;触发大事件(缺货率突增/设备故障)即时重生成。

输入上下文:

{
  "date":"today",
  "view":"...","scope":"...",
  "today_realtime": {"sales_累计":..., "traffic_累计":..., "vs_预测":+0.05},
  "forecast": {"客流高峰":"15:00-17:00","预计客流":68},
  "todo": [
    {"task":"T001 冷冻区补货","priority":"urgent","unclaimed":true},
    {"task":"T002 C 区陈列纠正","status":"doing"}
  ],
  "in_progress_alerts":[{"type":"AP-03 信号弱","duration":"2h"}]
}

Prompt 模板:

[System] 同 B#1,但聚焦"今日要做什么"。
[User] 视角:{view},今日数据:{json}
输出格式:
- 1 句概览今日重点
- 紧接 ① ② ③ 优先级建议(具体到任务/动作/时间窗)
- 总长 100 字以内

输出:纯文本,含 ①②③ 序号;同样存 daily_summary 表,按 date+view+scope+slot(time bucket) 组合主键。

模型:Claude Haiku 4.5


B#3 · AI 洞察 cause(每条 8-10 条 × 3 视角)

触发条件:洞察规则引擎识别异常 → 触发生成(实时);缓存键 = (异常事件 ID + 触发时间);同事件 30 分钟内不重生成。

输入上下文:

{
  "anomaly": {
    "type":"oos_spike","scope":["CQ","WH"],"category":"冷冻",
    "current":"两店缺货 SKU 530 个","baseline":"日均 80 个"
  },
  "related": {
    "task_系统":{"补货任务认领率":"38%","未认领任务数":12},
    "排班":{"该区域今日在岗":"3/5(缺 2)"},
    "近7日趋势":[80,85,90,120,180,320,530],
    "iot":{"AP-03 信号":"弱 2h"}
  }
}

Prompt 模板:

[System] 你是零售归因分析助手。基于触发指标和相关数据,给出 1 句话归因(10-30 字)。
要求:
- 找出最可能的根因(不是症状的复述)
- 明确指向人/系统/流程问题
- 不要给建议(建议在 advice 阶段)

[User] 异常:{json.anomaly}
相关数据:{json.related}
归因:(1 句话)

输出:1 句话,10-30 字。

模型:Claude Sonnet 4.6(归因需要逻辑推理,Haiku 偶有偏差)

频次:估算 3 视角 × 10 条 × 大事件触发 ≈ 30-50 调用/日


B#4 · AI 洞察 advice(同 B#3)

触发条件:cause 生成后立即触发(可串联调用,复用上下文)。

输入上下文:B#3 全部输入 + cause 输出 + 资源池

{
  ...B#3..., "cause": "<B#3 输出>",
  "resources": {
    "可调拨人手":[{"from":"华南","count":2}],
    "可触发流程":["紧急补货令","跨区调拨","直派督导"],
    "历史相似案例":[{"action":"直派督导组","效果":"24h 内恢复"}]
  }
}

Prompt 模板:

[System] 基于归因,给出 1-2 句可执行的具体行动建议。
要求:
- 必须包含数字/对象(如"4 人"/"今日 17:00 前")
- 优先选可立即触发的流程
- 不要"建议关注"等空话

[User] 归因:{cause}
可用资源:{json.resources}
建议:

输出:1-2 句,明确可执行。

模型:Claude Sonnet 4.6


B#5 · 店员今日成绩 AI 评估卡

触发条件:店员当日交班/打卡下班时触发;或店长查看时按需触发。

输入上下文:

{
  "staff_id":"...","date":"today",
  "tasks":{"done":3,"verified":2,"overtime":0,"avg_response":"22min","peer_avg":"28min"},
  "category_impact":{
    "蔬果区缺货率":{"yesterday":0.048,"today":0.028},
    "蔬果区销售":{"vs_baseline":+8640,"orders_count_delta":+18}
  },
  "store_baseline":{"日均销售":312000}
}

Prompt 模板:

[System] 把店员当日工作贡献"翻译"成对门店的实际经营价值(金额 + 1 句解释)。
要求:
- 金额按 (该员工任务影响范围内的销售提升 / 同类基线) 估算(可用客单价 × 单数变化简化)
- 1-2 句叙述:金额 + 主因 + 数字证据
- 不要谄媚("你真棒"等),只用数据说话

[User] 数据:{json}
输出格式:
你今天的工作让门店多卖了 ¥XXX · {主因 + 数字证据}

输出:1-2 句,含金额 + 归因 + 数字。

模型:Claude Haiku 4.5

频次:每日每店员 1 次(小型门店 30-50/日)


B#6 · 陈列管理 异常详情解释

触发条件:CV 模型识别陈列异常(diff_score>阈值)→ 用户点击异常货架查看详情时按需生成。

输入上下文:CV 输出的差异要素 + 商品信息

{
  "shelf_id":"SHELF-A4",
  "diff_elements":[
    {"sku":"可口可乐 500ml","plan_pos":"层2-槽3","actual_pos":"层2-槽5","type":"位置偏移"},
    {"sku":"百事可乐 500ml","status":"遮挡促销标签","severity":"high"}
  ],
  "category":"饮料","compliance_score":0.79
}

Prompt 模板:

[System] 把 CV 模型的差异要素转为店员能看懂的人话。
要求:
- 1-2 句,按"哪个商品 + 偏离了什么 + 影响"组织
- 30-60 字
- 不要用"diff_score"等技术词

[User] 差异要素:{json}
解释:

模型:Claude Haiku 4.5


B#7 · AI Agent 自由问答(生产态替换 ANSWERS)

触发条件:用户输入或点击预设问题。

输入上下文:

  • 用户输入文本
  • 当前页面 / 视角上下文(CTX_PAGE_NAME + 选中组件文本)
  • 工具集(tool-use):query_oos_skus / query_sales / query_promotion / create_task / query_inventory / get_pog

Prompt 模板:

[System] 你是 xPilot 零售智能助手。根据用户问题调用合适工具,整理表格 + 自然语言回答。
工具:{tool_definitions}
回答规范:
- 数据型问题:返回表格 + 1-2 句概述 + 建议操作按钮(tool-use 触发 create_task 等)
- 分析型问题:分点叙述 + 数据支撑
- 必须包含可信度行(数据源/时间窗/样本)

[User] 问题:{user_input}
当前页面:{page_context}
组件上下文:{component_text}(可选)

输出:HTML 表格 + 段落 + 操作按钮(按钮 onclick 调用 tool-use 返回的 action)。

模型:Claude Sonnet 4.6(需要 tool-use + 复杂推理)

频次:用户主动触发,无固定频次


B#8 · App 首页 AI 洞察摘要卡(店员/店长 各 2 段)

触发条件:每日凌晨预生成(同 B#1/B#2 共用上下文);App 启动时拉取。

输入上下文:B#1/B#2 缩短版(移动端字数限制更严)

Prompt 模板:在 B#1/B#2 基础上加约束:

[追加] 控制在 60 字以内(移动端单卡显示);不带 ①②③ 序号;用流畅段落叙述。

输出:纯文本 60 字内。

模型:Claude Haiku 4.5


B#9 · App 任务详情 · 补货建议

触发条件:补货任务(type=replenishment)创建时触发;任务详情页打开时拉缓存。

输入上下文:

{
  "sku":"西兰花","shelf":"蔬果区A1",
  "current_stock":8,"backstock":50,
  "sales_history_7d":[12,15,14,18,22,20,16],
  "today_so_far":4,"forecast_today":18
}

Prompt 模板:

[System] 基于销量历史和当前库存,给出补货建议。1 句话,含数字。
[User] 数据:{json}
格式:基于近 7 日销量预测,建议补货 X 箱,预计今日销售约 Y 箱。请在 ZZ:ZZ 前完成。

模型:Claude Haiku 4.5


B#10 · App 任务详情 · 陈列差异分析

触发条件:陈列调整任务(type=display-adj)创建时触发;详情页拉缓存。

输入上下文:CV 比对的双图差异要素(同 B#6)。

Prompt 模板:

[System] 1-2 句描述实际 vs 计划的差异。30-60 字。
[User] 差异要素:{json}

模型:Claude Haiku 4.5(也可考虑 VLM 直接对图)


B#11 · App 任务详情 · AI 洞察任务依据

触发条件:洞察类任务(type=insight)创建时触发;详情页拉缓存。

输入上下文:

{
  "category":"乳制品",
  "trend":{"近7日销售":-12%},
  "shelf_finding":{
    "高毛利产品":"安慕希希腊酸奶","当前位置":"底层",
    "低毛利产品":"伊利纯牛奶","当前位置":"视平线层"
  },
  "data_sources":["销售数据","货架识别 AI"]
}

Prompt 模板:

[System] 把数据现象 + 分析结论组织成 2-3 句洞察依据。
要求:
- 第 1 句陈述数据现象(带数字)
- 第 2 句分析原因(视觉/陈列/位置等)
- 第 3 句给出方向(不要给详细步骤,步骤在 C6 模板)

[User] 数据:{json}

模型:Claude Sonnet 4.6


B#12 · App 任务详情 · 预期效果

触发条件:洞察类任务创建时与 B#11 串联调用。

输入上下文:

{
  "category":"乳制品","action":"陈列调整高毛利至视平线",
  "historical_similar":[
    {"category":"饮料","action":"同类","lift":"+12%"},
    {"category":"零食","action":"同类","lift":"+9%"}
  ]
}

Prompt 模板:

[System] 基于历史相似动作的 lift,给出本次预期效果区间。
要求:
- 输出格式:"提升 X 品类销售 A-B%"
- A-B 区间不超过 10 个百分点

[User] 数据:{json}

模型:Claude Haiku 4.5


7.2 C 类调用点(规则/CV 触发 + LLM 润色)

C1 · 品类/促销/供应商 risk 短文本(5 处)

触发规则:

  • 品类:health<60 OR oos>8% OR 供应链异常事件存在
  • 促销:exec<70% OR stock<30%(积压)OR stock>90%(缺货风险)
  • 供应商:onTime<80% OR quality>3 OR costTrend>+3%

要素提取(规则识别后输出):

{"risk_type":"supply_chain_delay","severity":"high","details":{"category":"乳制品","scope":"华东"}}

LLM 输入 + 用途:

[System] 把风险要素转为 10-15 字简短描述。
[User] 要素:{json}
输出:(10-15 字)

降级方案:纯模板 fallback:{risk_type 中文} · {scope}(如"供应链延迟 · 华东")

缓存策略:(risk_type + severity + details_hash) 24h 缓存

模型:Claude Haiku 4.5


C2 · 洞察标题文案

触发规则:每条洞察 result 字段已生成时触发(可选 LLM 改写,未触发时纯模板)。

要素提取:从 result 解析关键 token(门店/品类/指标/方向/数值)。

模板(默认即可使用,不调 LLM 也可上线):

{门店} {品类} {指标} {方向} {数值}
例:重庆/武汉 冷冻区 缺货率 超 15%

LLM 用途(可选):把模板生成的标题润色更精炼(10-20 字),适合标题位字数限制场景。

降级方案:直接用模板。

模型:Claude Haiku 4.5(仅作为可选优化)


C3 · AI Agent 缺货原因列

触发规则:缺货事件,按规则枚举原因类型:

  • stock=0 AND last_replenish_at < 24h ago → "未及时补货"
  • stock=0 AND no_inbound_in_3d → "商品没有库存"
  • stock>0 AND facing_count<min_facing → "排面不足"
  • stock>0 AND POS_count_异常 → "数据异常"

要素:4 类枚举值之一。

LLM 用途(可选):基于 SKU + 上下文把"未及时补货"润色为"今早补货任务漏派"等更具体表述。

降级方案:直接用 4 类枚举文本。

缓存:(sku + reason_type + day) 缓存。

模型:Claude Haiku 4.5


C4 · 任务系统核验判定 + 异常解释

触发规则:task.status='done' AND evidence_uploaded → CV 模型对比拍照与 POG/计划:

  • diff_score < 0.1 → 自动通过(verified)
  • diff_score >= 0.1 → 不通过,进入 LLM 解释流程

要素提取:CV 输出 {shelf_diff:[{sku,issue}], compliance_score, evidence_quality}

LLM 用途:

[System] CV 判定核验不通过,请给店员说明原因。
[User] 差异:{json}
输出:1-2 句不通过原因 + 1 句改进建议(30-60 字)

降级方案:直接列差异要素(无叙述)。

模型:Claude Haiku 4.5(VLM 也可考虑)


C5 · 商品弹窗 OOS 空置率

触发规则:用户点击 OOS 类商品 marker 时,从 IoT 摄像头拉最新帧,送入 CV 模型。

要素:CV 输出 empty_ratio(0-1)。

LLM 用途:无(此处仅显示数字 + 百分比,不需 LLM)。

说明:分类为 C 是因为 CV 模型本身是 ML,但本字段不调 LLM。如未来要加叙述("严重空置,建议立即补货"),则升级为 C 类含 LLM。


C6 · App 陈列调整步骤 / AI 洞察执行步骤

触发规则:陈列调整任务 / 洞察任务创建时,按"差异类型"或"行动类型"查模板库。

模板库示例:

  • "位置偏移" → "1. 将商品 A 移至 X 位置 / 2. 拍照存档"
  • "陈列层级调整" → "1. 高毛利产品移至视平线 / 2. ... / 3. ..."

LLM 用途(可选):基于具体 SKU/位置把模板槽位填充并润色(如"将可口可乐 500ml 移至 B2货架第1层正中")。

降级方案:直接用模板(步骤数固定,槽位规则填充)。

缓存:(action_type + sku + target_position) 缓存。

模型:Claude Haiku 4.5


八、统计与结论

8.1 占比估算

类别 字段/组件估算 占比
A 规则类 ~120 处 ~75%
B LLM 类 12 个调用点 × 多视角 ≈ 30 处 ~18%
C 混合类 6 类 × 多实例 ≈ 10 处 ~7%

8.2 核心结论

  1. 75% 数据是规则类,瓶颈在打通上游 14 类接口,LLM 不是主要工作量。

  2. LLM 价值集中在两条主线:

    • 叙述化总结(B#1/B#2/B#5/B#8):多源数据融合成 1-2 句话。预生成模式(每日凌晨批量),降低延迟和 token。
    • 归因 + 建议(B#3/B#4/B#11/B#12):xPilot 智能性的核心,必须实时生成,每条独立调用便于并发。
  3. C 类的关键决策:

    • 风险短句 / 缺货原因 / 步骤模板(C1/C3/C6)可先用规则模板上线,LLM 作为后续优化。
    • 任务核验(C4)依赖 CV 模型质量,独立工程项目。
  4. 生产态 vs 原型态的 gap:

    • 原型 ANSWERS 16 条硬编码 → 生产态 LLM + tool-use(库存查询/任务创建/订货等工具)。
    • 原型 cause/advice mock 文本 → 生产态每条洞察独立 prompt + 上下文打包。

8.3 模型选择建议

场景 推荐模型 原因
摘要类(B#1/B#2/B#5/B#8) Haiku 4.5 短输入短输出,每日批量调用,成本敏感
归因 / 建议 / 洞察依据(B#3/B#4/B#11) Sonnet 4.6 需要逻辑推理,Haiku 偶有偏差
自由问答 + tool-use(B#7) Sonnet 4.6 tool-use + 复杂推理
数字预测 / 描述类(B#9/B#10/B#12) Haiku 4.5 模式固定,结构化输入输出
所有 C 类润色 Haiku 4.5 短输出,模板兜底,成本优

8.4 工程优先级建议

优先级 工作内容 依赖
P0(基础数据层) 打通 14 类数据源接口;建立任务系统 + 评级规则引擎 数据/后端
P0(核心 LLM) B#3 / B#4 洞察 cause + advice 实时生成(智能性的核心) AI 工程 + P0 数据
P1(叙述化总结) B#1 / B#2 / B#5 / B#8 摘要类(预生成 + 缓存) AI 工程 + P0 数据
P1(CV 模型) C4 / C5 / B#10 陈列识别 + 差异分析(独立 CV 项目) CV 团队
P2(自由问答) B#7 AI Agent + tool-use 工具实现 AI 工程
P2(任务详情 LLM) B#9 / B#11 / B#12 App 任务详情类 AI 工程
P3(润色优化) C1 / C2 / C3 / C6 短句润色 AI 工程
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容