Datawhale Jev Cookbook 202610 笔记3
第三章作业:架构模式
实验 1:推测性扇出------投机问题提前发,用不上的直接扔
一条"杂"工单(重复扣款+登录问题+功能请求)一次请求发 5 问(1 个主问题 + 4 个投机问题),实测返回:
| 问题 | 实测值 |
|---|---|
| category(主) | billing,conf=0.91(billing 0.93 / bug 0.04 / account 0.03) |
| bug_severity(投机) | score=1.72,conf=0.58 |
| has_reproducible_steps(投机) | noul=0.19 |
| refund_requested(投机) | noul=0.16 |
| frustration(投机) | score=1.02,conf=0.97 |

图 1:推测性扇出 live 输出------一次请求返回 5 问:category conf=0.91(billing 0.93)、bug_severity score=1.72、noul 0.19 / 0.16、frustration score=1.02(01_架构模式.ipynb,2026-10-24)
代码按 billing 分支只消费 refund_requested,其余忽略------问题全集由请求确定,答案子集由代码按需取用。
批量 vs 逐条实测 :批量 1 次 0.23s / 623 tokens;逐条 5 次 1.18s / 1939 tokens → 逐条是批量的 5.1 倍耗时、3.1 倍 token(逐条要重复发送 state)。

图 2:批量 vs 逐条实测------批量 1 次 0.23s / 623 tokens;逐条 5 次 1.18s / 1939 tokens,逐条是批量的 5.1 倍耗时、3.1 倍 token
实验 2:置信度门控------答案说"是什么",confidence 说"动不动手"
双阈值门控(<0.6 转人工;查余额 ≥0.6 直执行;转账 0.6--0.85 要确认、>0.85 自动批)实测 4 条指令:
| 指令 | 意图 | conf | 决策 |
|---|---|---|---|
| 帮我查一下储蓄卡余额 | check_balance | 1.00 | 直接播报余额 |
| 请批准那笔待确认的转账 | approve_transfer | 1.00 | 自动批准(高风险+高置信度) |
| 来点爵士乐吧 | other | 1.00 | 转人工 |
| 行,就按你说的办 | other | 0.70 | 转人工(other 兜底) |
阈值跟风险走,不是一个全局数字 。诚实备注:教程预写解读称最后一条会触发 <0.6 兜底门,本次实测 conf=0.70,实际是被 other 意图分支拦住------殊途同归转人工,但触发路径不同,以实测输出为准。

图 3:双阈值门控 live 输出------查余额 conf=1.00 直接播报、转账 conf=1.00 自动批准;两条模糊指令走 other 兜底转人工(末条 conf=0.70,与上文诚实备注一致)
实验 3:复合评分------模型出原子分,权重留在代码里
3 份简历 × 4 维度 Score(每人一次请求并行评 4 题),实测原始分(0--4 期望值):
| 候选人 | Python | 管理 | 架构 | 泛用 |
|---|---|---|---|---|
| 张伟(资深 IC 型) | 4.00 | 1.00 | 3.26 | 1.87 |
| 李强(管理者型) | 1.45 | 4.00 | 3.47 | 1.34 |
| 王雪(均衡成长型) | 3.00 | 1.43 | 1.71 | 1.97 |
归一化后按两套权重加权:
- 资深 IC(40% Python + 40% 架构):张伟 0.798 > 李强 0.626 > 王雪 0.556
- 工程经理 (40% 管理):李强 0.712 > 张伟 0.530 > 王雪 0.464 ------ 同一批评分,换组权重排名反转
- 首席架构师(60% 架构):不改模型、不调 API,改一行权重 → 张伟再次第一

图 4:复合评分 live 输出------上:3 人 4 维原始评分;下:两套权重加权后排名反转(资深 IC 岗张伟 0.798 第一 ↔ 工程经理岗李强 0.712 第一)
核心:标准(权重)是你的,评分是模型的------换岗位不用重写提示词。
实验 4:意图路由------便宜分类器挡在昂贵处理器前面
5 条消息,每条一次调用(intent + complexity 两问并行):
| 消息 | intent | conf | complexity | 路由 |
|---|---|---|---|---|
| 订单 #12345 到哪了 | order_status | 0.99 | 0.44 | 确定性代码(零模型成本) |
| 咖啡机附赠拉花缸吗 | product_question | 1.00 | 0.02 | 产品专家 LLM |
| 跑鞋想退货 | return_exchange | 1.00 | 0.16 | 退货专家 LLM |
| 第三次坏了...拒付 | complaint | 0.93 | 2.00 | 人工(复杂度高升级) |
| 。。。 | complaint | 0.17 | 0.46 | 人工(conf<0.5 兜底) |
成本阶梯真实存在:确定性代码 ≈ 免费 → 专家 LLM 中 → 人工最贵;路由让大流量落在便宜处理器上,乱码被 0.5 置信度门稳稳拦住。

图 5:意图路由 live 输出------5 条消息按 intent + complexity 分流:订单查询走确定性代码、两类咨询走专家 LLM、投诉与乱码「。。。」(conf=0.17)被置信度门拦到人工
四模式一句话总结
| 模式 | 一句话 | 代码关键点 |
|---|---|---|
| 推测性扇出 | 可能用到的问题一次全发,没用的忽略 | 按分支取用 answers |
| 置信度门控 | 答案定"是什么",conf 定"动不动" | 阈值随操作风险 |
| 复合评分 | 原子分 × 代码权重 = 综合排名 | score 先归一化再加权 |
| 意图路由 | 分类器在前,贵的处理器在后 | 低置信度兜底人工 |