Skip to content

SA 空间预约:测试用例集 (High-Fidelity)

本文档定义了 SA_空间预约 模块的质量保障标准。所有测试用例均基于 “区间匹配 + 智能漏斗” 架构设计,确保在复杂交互下逻辑的确定性。


1. 测试基准环境 (Test Baseline)

  • 系统当前时间:2026-05-07 15:00 (周四)
  • 企业营业时间 (Config){"start":"08:00", "end":"22:00"}
  • 最大会议时长 (Config)4.0 小时
  • 默认槽位值duration_hours: 1.0, capacity: 0 (不限)
  • 可用空间资源 (Mock)
    • 801 会议室:容量 10 人,权重 0.5
    • 802 会议室:容量 20 人,权重 0.8

2. 槽位提取测试 (NLU Layer)

验证重点:LLM 语义还原能力(不含逻辑判断)。

ID用户原始输入预期提取槽位 (Raw JSON Slots)预期识别关键点
NL-01“帮我定个 4pm 会议室”{"start_time":"04:00", "period":"PM"}12h/24h 语义转换
NL-02“订个 9 点的”{"start_time":"09:00", "period":null}保留上下午歧义
NL-03“现在订个房间”{"start_time":"NOW"}语义标签识别
NL-04“帮我约个最快能订到的会议室”{"start_time":"ASAP"}语义标签识别
NL-05“定个下周一早上 10 点”{"start_date":"2026-05-11", "start_time":"10:00", "period":"AM"}相对日期计算
NL-06“订个 10 人的开研发周会”{"capacity":10, "topic_name":"研发周会"}容量与主题提取
NL-07“下午 4 点 802 两个小时”{"start_time":"04:00", "period":"PM", "room_name":"802", "duration_hours":2.0}全量槽位覆盖

3. 逻辑管道专项测试 (Pipeline Layer)

3.1 Time Pipeline (时间校验与区间匹配)

ID场景描述问题实例 (User Input)输入示例 (Slots)核心逻辑预期决策提示建议
TP-01日期过期“帮我定5/6会议室”{"start_date":"2026-05-06"}Date < TodayERROR“您预订的日期已过期。”
TP-02时空逻辑矛盾“帮我订个明天现在的会议室”{"start_date":"明天", "start_time":"NOW"}Intent ∩ Constraint == ∅ERROR“逻辑冲突:明天没有‘现在’。”
TP-03语义时段冲突“帮我订明天上午 16 点的会”{"start_date":"2026-05-08","period":"AM", "start_time":"16:00"}Intent ∩ Constraint == ∅ERROR“逻辑冲突:上午没有 16 点。”
TP-04智能消歧(过去)“订个 9 点的”(当前15:00){"start_time":"09:00"}9:00 < Now -> InterceptOK自动锁定 21:00 窗口
TP-05真实歧义生成“订明天 9 点的”{"start_date":"明天", "start_time":"09:00"}多窗口有效AMBI“请确认是上午还是下午?”
TP-06非营业时间“帮我订凌晨 3 点的会议室”{"start_time":"03:00"}∩ WorkHours == ∅ERROR“该时段非办公时间 (08:00-22:00)。”
TP-07时长超限“帮我订个 10 小时的会议”{"duration_hours":10.0}Duration > ConfigERROR“单次预约不能超过 4 小时。”

3.2 Resource Pipeline (物理执行与寻优)

ID场景描述问题实例 (User Input)输入参数预期策略预期结果 (Agent 反应)
RP-01指名且空闲“帮我订下 801”{"room_name":"801"}语义权重优先返回 801 详情并确认预订。
RP-02指名但被占“帮我订下 801”{"room_name":"801"}忙闲拦截 (Busy)询问确认:“抱歉,801 已经被占用了,需要为您推荐其他房间吗?”
RP-03ASAP 寻优“帮我约个最快能订到的”{"start_time":"ASAP"}贪婪搜索 (寻优)返回当前最早可用的时间块及房间。
RP-04紧凑匹配 (5人)“5 个人开会”{"capacity":5}容量适配度优先优选 801 (10人),而非 802 (20人) 以防大房小用。
RP-05硬性匹配 (15人)“找个能坐 15 人的房间”{"capacity":15}容量硬性过滤自动过滤 801 (10人),直接推荐 802 (20人)。
RP-06全域满容“帮我订 16:00 的”{"start_time":"16:00"}资源召回池为空抱歉拦截:“抱歉,该时段所有会议室均已约满,建议换个时间。”

4. 全链路集成场景 (E2E Scenarios)

场景 A:智能消歧与成功预约

  • 用户输入: “帮我订个 4 点的会议室” (当前 15:00)
  • 系统处理
    1. NLU:提取 start_time: 04:00
    2. TimePipe:识别 04:00 (AM) 已过期,自动锁定为 16:00 (PM),状态 OK
    3. ResPipe:调用固定时间接口,找到可用空间。
  • 最终回复: “为您找到以下 16:00 的可用会议室...”

Released under the Private License.