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,再保存红灯;不通过删除测试或把错类型自动转换成正确值来变绿。

分段任务

  1. 画出语法、Schema/类型、业务规则、事实依据四层;
  2. 建立严格 CustomerIntent 和 PreferenceSlots;
  3. 拒绝 unknown enum、extra、错类型和模型生成 customer_id;
  4. 对订单缺 ID 写跨字段失败或显式 missing_slots;
  5. 建立最多一次 repair,保存首次失败、全部 usage 和终点;
  6. 失败后不给半可信对象;
  7. 加一个可选字段变式,先红后绿,并回归旧样本。

正常/错误/边界

类型最低案例
正常商品辅助完整偏好;订单缺 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。