weight_consistency 实验 — 全流程管线图

6 节点线性管线 · 3 次 AI 调用 · 1 次纯数学分析 · 输出四层优先级评分

📐 管线拓扑(6 节点线性串联)

graph LR START((START)):::start --> N0 N0["load_assets
━━━━━━━━━━
下载/加载 Excel
筛选评级产品
按母产品分组
验证资产文件"]:::io N0 --> N1 N1["complete_missing
━━━━━━━━━━
🤖 Vision LLM
对重量≤0的产品
看图估算重量
每批50条报进度"]:::ai N1 --> N2 N2["estimate_ranges
━━━━━━━━━━
🤖 Vision LLM
对所有评级产品
输出推理链+范围
品类/材质/尺寸/重量"]:::ai N2 --> N3 N3["cross_judge
━━━━━━━━━━
🤖 Text LLM
按母产品分组
跨产品一致性判断
标记离群值"]:::ai N3 --> N4 N4["analyze
━━━━━━━━━━
🧮 纯数学计算
锚点降级链
共识区间·250g检查
运费风险·四层评分"]:::calc N4 --> N5 N5["output
━━━━━━━━━━
📄 导出 Excel
26列→56列
含所有评分与建议"]:::io N5 --> ENDD((END)):::start classDef ai fill:#1a1236,stroke:#8250df,color:#d2a8ff classDef calc fill:#12291a,stroke:#238636,color:#7ee787 classDef io fill:#1a1a2e,stroke:#30363d,color:#8b949e classDef start fill:#0d1117,stroke:#58a6ff,color:#58a6ff

📊 数据流向(Excel 列变化)

flowchart TD EXCEL["输入 Excel
26 列原始数据
标题/重量/等级/
人工确定/源头ID"]:::start N0D["load_assets
筛选+加载"]:::io N1D["complete_missing
+4列
_completion_weight
_completion_confidence
_completion_reason
_completion_source"]:::ai N2D["estimate_ranges
+13列
_range_min/max/center
_range_uncertainty
_range_subcategory+conf
_range_material+conf
_range_size+conf
_range_overall_conf"]:::ai N3D["cross_judge
+4列
_cross_verdict
_cross_range
_cross_outliers
_cross_reason"]:::ai N4D["analyze
+9列
_tier
_score
_consensus
_250g_triggered
_250g_diff
_n_outliers
_freight_risk
_recommendation
_is_outlier"]:::calc N5D["output
导出 56 列 Excel"]:::io EXCEL --> N0D --> N1D --> N2D --> N3D --> N4D --> N5D classDef ai fill:#1a1236,stroke:#8250df,color:#d2a8ff classDef calc fill:#12291a,stroke:#238636,color:#7ee787 classDef io fill:#1a1a2e,stroke:#30363d,color:#8b949e classDef start fill:#0d1117,stroke:#58a6ff,color:#58a6ff

🧠 分析决策流程(analyze 节点内部)

flowchart TD GRP["按源头产品ID分组"] --> CHK{"有人工确定重量?"} CHK --"❌ 无"--> NOREF["整组标记 NO_REF
跳过分析"] CHK --"✅ 有"--> ANCHOR ANCHOR["确定锚点重量
━━━━━━━━━━━━
优先级降级链"] --> ANCHOR_TBL ANCHOR_TBL{"锚点来源?"} ANCHOR_TBL --"1️⃣ 人工确定"--> FAC12["×1.2 最高可靠"] ANCHOR_TBL --"2️⃣ cross_judge"--> FAC08["×0.8 较高可靠"] ANCHOR_TBL --"3️⃣ 数据库重量"--> FAC10["×1.0 正常"] ANCHOR_TBL --"4️⃣ AI补全"--> FAC06["×0.6 较低可靠"] ANCHOR_TBL --"5️⃣ 默认500g"--> FAC04["×0.4 最低可靠"] FAC12 --> SPREAD FAC08 --> SPREAD FAC10 --> SPREAD FAC06 --> SPREAD FAC04 --> SPREAD SPREAD["250g 跨度检查
max-min > 250g?"] --> CONSENSUS CONSENSUS["共识区间计算
三段分治策略"] --> CONS_TBL CONS_TBL{"锚点重量"} CONS_TBL --"≤500g(轻货)"--> LIGHT["±30% min ±50g"] CONS_TBL --"500-1000g(中货)"--> MED["±25% min ±100g"] CONS_TBL --">1000g(重货)"--> HEAVY["±20% max ±200g"] LIGHT --> OUTLIER MED --> OUTLIER HEAVY --> OUTLIER OUTLIER["离群检查
重量在共识区间外?"] --> SCORE SCORE["评分计算
运费风险×权重+质量风险×权重"] --> SCORE_TBL SCORE_TBL{"重量段"} SCORE_TBL --"重货>1000g"--> HEAVY_S["运费60% + 质量40%"] SCORE_TBL --"轻货≤1000g"--> LIGHT_S["运费20% + 质量80%"] HEAVY_S --> RELIABILITY["× 锚点可靠性因子"] LIGHT_S --> RELIABILITY RELIABILITY --> DEGRADE{"全AI场景?"} DEGRADE --"是"--> DOWN["⚠️ 降一级"] DEGRADE --"否"--> TIER DOWN --> TIER TIER["四层定级"] TIER --> RED["🔴 RED >7.5
需立即人工排查"] TIER --> ORG["🟠 ORANGE 5.0-7.5
建议人工确认"] TIER --> YEL["🟡 YELLOW 2.5-5.0
可批量处理"] TIER --> GRN["🟢 GREEN ≤2.5
自动通过"] style CHK fill:#1a1236,stroke:#8250df,color:#d2a8ff style ANCHOR_TBL fill:#1a1236,stroke:#8250df,color:#d2a8ff style CONS_TBL fill:#1a1236,stroke:#8250df,color:#d2a8ff style SCORE_TBL fill:#1a1236,stroke:#8250df,color:#d2a8ff style DEGRADE fill:#1a1236,stroke:#8250df,color:#d2a8ff style NOREF fill:#161b22,stroke:#30363d,color:#484f58 style FAC12 fill:#04260f,stroke:#238636,color:#3fb950 style FAC08 fill:#04260f,stroke:#238636,color:#3fb950 style FAC10 fill:#2e2a00,stroke:#d29922,color:#e3b341 style FAC06 fill:#3d2700,stroke:#d29922,color:#d29922 style FAC04 fill:#490202,stroke:#ff7b72,color:#ff7b72 style RED fill:#490202,stroke:#ff7b72,color:#ff7b72 style ORG fill:#3d2700,stroke:#d29922,color:#d29922 style YEL fill:#2e2a00,stroke:#e3b341,color:#e3b341 style GRN fill:#04260f,stroke:#3fb950,color:#3fb950

📋 6 节点详细说明

🔵 节点 0 — load_assets

🟣 节点 1 — complete_missing

🟣 节点 2 — estimate_ranges

🟣 节点 3 — cross_judge

🟢 节点 4 — analyze(纯计算)

🔵 节点 5 — output

🎯 四层优先级评分速查

🔴
RED
评分 > 7.5
需立即人工排查
重量数据严重异常
🟠
ORANGE
评分 5.0 - 7.5
建议人工确认
运费敏感
🟡
YELLOW
评分 2.5 - 5.0
可批量处理
择时审核
🟢
GREEN
评分 ≤ 2.5
自动通过
重量数据可信
NO_REF
无参考
缺人工确定重量
跳过分析

📏 三段分治策略(共识区间计算)

flowchart LR ANCHOR["锚点重量"] --> CHECK CHECK{"重量区间?"} CHECK --"≤ 500g"--> L["轻货
±30%
最少 ±50g

例: 300g 锚点
→ 210~390g"] CHECK --"500-1000g"--> M["中货
±25%
最少 ±100g

例: 800g 锚点
→ 600~1000g"] CHECK --"> 1000g"--> H["重货
±20%
最多 ±200g

例: 2000g 锚点
→ 1800~2200g"] style L fill:#04260f,stroke:#3fb950,color:#7ee787 style M fill:#2e2a00,stroke:#e3b341,color:#e3b341 style H fill:#3d2700,stroke:#d29922,color:#d29922 style CHECK fill:#1a1236,stroke:#8250df,color:#d2a8ff style ANCHOR fill:#1a1a2e,stroke:#30363d,color:#8b949e