Structured Output:客服意图与参数提取|学员任务书
课程名称:Structured Output:客服意图与参数提取|项目任务:客服意图与偏好槽位提取|编号:W04-D03
任务与支架
- 自主等级:4,给问题、冻结字段合同和红测,不给完整模型。
- 教师提供:W04 v2.0 字段语义、坏例、测试接口和修复上限。
- 教师不提供:完整 Pydantic 模型、全部校验器和最终 repair Prompt。
前置
保留 D02 V2、固定原始输出与 Bad Case。合入当天 D03-strict-schema:
python -m pip install -r requirements.txt
python -c "import pydantic; print(pydantic.__version__)"
python tests/test_d03_schema_red.py复用此前已建立的 W04 虚拟环境,不重新切换解释器。先确认实际加载的 Pydantic 2.x,再保存红灯;不通过删除测试或把错类型自动转换成正确值来变绿。
分段任务
- 画出语法、Schema/类型、业务规则、事实依据四层;
- 建立严格 CustomerIntent 和 PreferenceSlots;
- 拒绝 unknown enum、extra、错类型和模型生成 customer_id;
- 对订单缺 ID 写跨字段失败或显式 missing_slots;
- 建立最多一次 repair,保存首次失败、全部 usage 和终点;
- 失败后不给半可信对象;
- 加一个可选字段变式,先红后绿,并回归旧样本。
正常/错误/边界
| 类型 | 最低案例 |
|---|---|
| 正常 | 商品辅助完整偏好;订单缺 ID 但显式 missing_slots |
| 错误 | 非 JSON、unknown intent、字符串预算、extra customer_id |
| 边界 | confidence 0/1;repair 一次仍失败;新可选字段与旧样本 |
AI 协作
让 AI 只提议一个模型或校验器。查看 diff 后回答:它是否允许 extra?是否转换字符串预算?是否偷偷生成默认 ID?是否让 repair 无限循环?
证据
- 红灯与全绿;
- JSON Schema 输出中的关键约束;
- 首次失败 + repair + 终止 trace;
- 独立 Schema 变式;
- Replay/真实结构轨迹分栏;
- 现场说明错误应改 Prompt、Schema、业务规则还是 API。