跳转至

实时业务状态接口契约(Realtime Status API)

文档编号:DOC-OPS-KB-03 / KB-RTS 版本:V1.0 创建日期:2026-08-13 维护人:听云(WCL) / WDE 保密级别:🟢 可公开发布(仅契约描述,不含真实端点 URL/Token) 关联文档业务知识库索引DIP1-API OpenAPI 规格DIP1-P2 一线操作系统设计CPT-D 客户跟踪设计


一、文档定位

本文件定义 AI 客服系统调用实时业务状态接口契约规范——AI 在回答涉及客户订单、师傅状态、报价计算、工单状态等实时信息的问题时,须通过 Function Calling 调用本文件定义的接口,禁止凭知识库静态内容回答

使用方式: - 作为 AI 客服系统 Function Calling 的工具定义清单 - 作为 WDE(听码)开发客服 API 端点的契约依据 - 作为 WCL(听云)监控 API 健康状态的清单参考

与 DIP1-API 的关系: - 本文件复用 DIP1 已有的 65 端点中的客户/订单/师傅/报价查询接口 - 本文件新增 AI 客服专用聚合接口(如 GET /api/v1/ai/customer/overview) - 接口实现由 WDE 负责,接口契约由 WCL + WDE 共同维护


二、AI 客服接口总览

2.1 接口分类

类别 接口数 用途 调用频率
客户身份识别 2 通过手机号/客户 ID 识别客户
订单状态查询 3 查询客户当前/历史订单及阶段 极高
报价计算 2 实时报价 + 报价历史
师傅状态查询 2 师傅位置/接单状态
工单管理 3 AI 工单创建/查询/更新
AI 专用聚合 3 客户全貌/订单全貌/工单全貌 极高
总计 15

2.2 通用规范

规范
Base URL https://api.weavely.hk/api/v1(生产)/ https://staging.api.weavely.hk/api/v1(预发)
认证 Bearer Token(JWT),AI 客服使用专用 service account
请求格式 application/json; charset=utf-8
响应格式 { "code": 0, "data": {...}, "message": "success" }
错误码 0=成功 / 4xx=客户端错误 / 5xx=服务端错误
限流 AI 客服 service account:1000 req/min(可调)
超时 5s(订单查询)/ 10s(报价计算)/ 15s(AI 聚合接口)
幂等性 所有 GET 接口天然幂等;POST/PUT 接口支持 Idempotency-Key

2.3 AI 客服 service account 权限矩阵

资源 说明
客户信息(CPL) 可查客户基本信息+标签,不可改
订单(CPT) ⚠️ 可查可创建工单,不可改订单核心字段
师傅信息(WPL) 可查师傅状态,不可改
报价(QSV) 可查可创建报价(不落库的预算)
工单(Ticket) 可查可创建可更新(受限字段)
系统配置 禁止访问

三、客户身份识别接口

3.1 GET /ai/customer/identify — 按手机号识别客户

用途:AI 客服在客户首次咨询时识别身份

请求参数

参数 类型 必填 说明
phone string 客户手机号(+852XXXXXXXX)

响应 data

{
  "customer_id": "CST-2026-00001",
  "name_masked": "陈**",
  "nickname": "陈生",
  "preferred_language": "yue-HK",
  "trust_badges": ["repeat_customer", "nps_promoter"],
  "lifetime_value": "high",
  "is_vip": false,
  "open_tickets_count": 1,
  "active_orders_count": 2
}

AI 消费规则: - 命中客户 → AI 使用 nickname 称呼,避免使用真实姓名 - 未命中 → AI 引导客户提供订单号或注册手机号 - open_tickets_count > 0 → AI 主动告知"您有 N 个进行中工单" - is_vip = true → AI 切换至 VIP 服务模式(响应优先级提升)

3.2 GET /ai/customer/overview/{customer_id} — 客户全貌聚合

用途:AI 客服在处理复杂咨询时一次性获取客户全貌

响应 data

{
  "customer": { "...": "见 3.1" },
  "active_orders": [
    {
      "order_id": "ORD-2026-08-0001",
      "stage": "L4",
      "stage_name": "已派单",
      "service_category": "C01",
      "service_category_name": "家具",
      "product": "双人床安装",
      "scheduled_at": "2026-08-14 14:00",
      "worker": { "worker_id": "WKR-001", "name_masked": "李**", "rating": 4.8, "level": "gold" }
    }
  ],
  "history_orders_summary": { "total": 12, "last_30d": 2, "completed": 11, "cancelled": 1 },
  "open_tickets": [ { "ticket_id": "T-20260813-01", "subject": "师傅迟到", "status": "in_progress" } ],
  "nps_history": [ { "order_id": "ORD-...", "score": 9, "created_at": "2026-07-15" } ]
}

AI 消费规则: - 一次性获取所有相关信息,避免多次 API 调用 - AI 基于全貌生成"上下文感知"回复(如"陈生,您明天下午 2 点李师傅会为您装床...")


四、订单状态查询接口

4.1 GET /ai/order/{order_id} — 查询单个订单详情

响应 data

{
  "order_id": "ORD-2026-08-0001",
  "customer_id": "CST-2026-00001",
  "stage": "L4",
  "stage_name": "已派单",
  "stage_progress": 50,
  "service_category": "C01",
  "service_category_name": "家具",
  "product": "双人床安装",
  "address_masked": "港島 灣仔 **樓 **室",
  "scheduled_at": "2026-08-14 14:00",
  "quote": { "final_price": 580, "cap_price": 650, "currency": "HKD" },
  "worker": { "worker_id": "WKR-001", "name_masked": "李**", "phone_masked": "****1234", "rating": 4.8, "level": "gold", "eta_minutes": 25 },
  "anomalies": [],
  "next_action": "师傅将在 25 分钟内到达",
  "created_at": "2026-08-12 10:30",
  "updated_at": "2026-08-13 09:15"
}

AI 消费规则: - stage 映射到 CPT 8 阶段,AI 须用客户能理解的语言表述(不说"L4",说"已派单,师傅正在路上") - anomalies 非空 → AI 主动解释异常并告知处理方案 - worker.eta_minutes 存在 → AI 主动告知预计到达时间

4.2 GET /ai/customer/{customer_id}/orders — 查询客户订单列表

请求参数

参数 类型 必填 默认 说明
status string all active / completed / cancelled / all
limit int 20 1-50
offset int 0 分页偏移

响应 data{ "orders": [ {...见 4.1} ], "total": 12, "has_more": false }

4.3 GET /ai/order/{order_id}/timeline — 查询订单时间线

用途:客户问"我的订单走到哪了"时,AI 获取完整时间线

响应 data

{
  "order_id": "ORD-2026-08-0001",
  "timeline": [
    { "stage": "L1", "stage_name": "线索", "timestamp": "2026-08-12 09:00", "note": "客户通过 App 下单" },
    { "stage": "L2", "stage_name": "报价", "timestamp": "2026-08-12 09:15", "note": "系统自动报价 HK$580" },
    { "stage": "L3", "stage_name": "下单", "timestamp": "2026-08-12 10:30", "note": "客户确认下单" },
    { "stage": "L4", "stage_name": "已派单", "timestamp": "2026-08-12 11:00", "note": "派单给金牌师傅李**" }
  ],
  "current_stage": "L4",
  "next_expected_stage": "L5 上门",
  "next_expected_at": "2026-08-14 14:00"
}

五、报价计算接口

5.1 POST /ai/quote/calculate — 实时报价计算

用途:客户问"装一张床多少钱"时,AI 收集参数后调用本接口实时计算

请求 body

{
  "service_category": "C01",
  "product": "双人床",
  "building_type": "private",
  "district": "wan_chai",
  "worker_level": "certified",
  "time_slot": "off_peak",
  "floor": 8,
  "has_elevator": true,
  "special_work": []
}

响应 data

{
  "quote_id": "QT-20260813-0001",
  "base_fee": 400,
  "building_factor": 1.0,
  "district_factor": 1.1,
  "worker_level_factor": 1.0,
  "time_slot_factor": 1.0,
  "floor_extra": 0,
  "special_work_extra": 0,
  "final_price": 440,
  "cap_price": 500,
  "currency": "HKD",
  "breakdown_visible": true,
  "valid_until": "2026-08-13 23:59"
}

AI 消费规则: - AI 必须展示 final_pricecap_price,强调"封顶价 HK$500" - AI 应当主动说明各项系数影响(如"湾仔区域加成 1.1") - AI 应当提示报价有效期(valid_until

5.2 GET /ai/quote/history?customer_id={id} — 查询客户历史报价

响应 data{ "quotes": [ {...见 5.1} ], "total": 8 }


六、师傅状态查询接口

6.1 GET /ai/worker/{worker_id} — 查询师傅基本信息

响应 data

{
  "worker_id": "WKR-001",
  "name_masked": "李**",
  "nickname": "李师傅",
  "level": "gold",
  "rating": 4.8,
  "completed_orders_30d": 45,
  "skills": ["C01-床", "C01-沙发", "C02-吊灯"],
  "current_status": "on_the_way",
  "current_order_id": "ORD-2026-08-0001",
  "eta_minutes": 25
}

AI 消费规则: - AI 始终使用 nickname 称呼师傅,禁止透露师傅真实姓名/手机号 - 客户索要师傅联系方式 → AI 引导通过 App 内匿名通话功能

6.2 GET /ai/worker/{worker_id}/location — 查询师傅实时位置

用途:客户问"师傅到哪里了"时调用

响应 data

{
  "worker_id": "WKR-001",
  "current_district": "wan_chai",
  "distance_km": 2.3,
  "eta_minutes": 25,
  "last_updated_at": "2026-08-13 13:45",
  "status": "on_the_way"
}

安全约束: - 仅在师傅 current_status = on_the_waycurrent_order_id 属于该客户时返回精确位置 - 其他情况返回模糊位置(如"师傅目前在港岛区")


七、工单管理接口

7.1 POST /ai/ticket — 创建工单

请求 body

{
  "customer_id": "CST-2026-00001",
  "order_id": "ORD-2026-08-0001",
  "category": "complaint",
  "subject": "师傅迟到",
  "description": "客户反馈师傅比约定时间晚到 30 分钟",
  "priority": "P2",
  "source": "ai_chat",
  "ai_confidence": 0.85,
  "ai_summary": "客户情绪较激动,需要安抚+具体到达时间"
}

响应 data

{
  "ticket_id": "T-20260813-01",
  "status": "open",
  "assigned_to": "WCL-AI",
  "sla_response_deadline": "2026-08-13 17:00",
  "sla_resolution_deadline": "2026-08-15 17:00"
}

AI 消费规则: - AI 创建工单时必须ai_confidenceai_summary,便于人工兜底客服快速接手 - ai_confidence < 0.7 → AI 主动升级人工

7.2 GET /ai/ticket/{ticket_id} — 查询工单状态

响应 data

{
  "ticket_id": "T-20260813-01",
  "status": "in_progress",
  "assigned_to": "WCL-Human-002",
  "category": "complaint",
  "subject": "师傅迟到",
  "priority": "P2",
  "created_at": "2026-08-13 14:00",
  "updated_at": "2026-08-13 14:30",
  "sla_response_deadline": "2026-08-13 17:00",
  "sla_resolution_deadline": "2026-08-15 17:00",
  "sla_response_breach": false,
  "sla_resolution_breach": false,
  "history": [
    { "action": "created", "actor": "WCL-AI", "timestamp": "2026-08-13 14:00", "note": "AI 创建工单" },
    { "action": "assigned", "actor": "WCL-AI", "timestamp": "2026-08-13 14:05", "note": "自动转人工(AI 置信度 0.65)" }
  ]
}

7.3 PATCH /ai/ticket/{ticket_id} — 更新工单

可更新字段status / priority / assigned_to / note

AI 权限:仅可更新 statuspending_customer / waiting_internal / resolved;其他字段变更需人工客服操作。


八、AI 专用聚合接口

本节接口为 AI 客服专用,一次性返回多个域的信息,避免 AI 多次调用造成延迟。

8.1 GET /ai/context/customer+order?phone={phone} — 客户+订单聚合

用途:AI 客服接入咨询时一次性获取客户身份 + 进行中订单 + 工单

响应 data

{
  "customer": { "...": "见 3.1" },
  "active_orders": [ { "...": "见 4.1" } ],
  "open_tickets": [ { "...": "见 7.2" } ],
  "suggested_actions": [
    "确认身份后主动告知订单进度",
    "如有工单则同步工单状态"
  ]
}

8.2 GET /ai/context/order+worker?order_id={id} — 订单+师傅聚合

响应 data

{
  "order": { "...": "见 4.1" },
  "worker": { "...": "见 6.1" },
  "worker_location": { "...": "见 6.2" },
  "timeline": { "...": "见 4.3" },
  "anomalies": []
}

8.3 GET /ai/context/ticket+order?ticket_id={id} — 工单+订单聚合

响应 data

{
  "ticket": { "...": "见 7.2" },
  "order": { "...": "见 4.1" },
  "customer": { "...": "见 3.1" },
  "sla_status": { "response_breach": false, "resolution_breach": false, "response_remaining_minutes": 180 }
}

九、接口健康监控

9.1 WCL 监控指标

指标 阈值 告警
接口可用性 ≥ 99.5% < 99.5% 告警
平均响应时间 ≤ 500ms(简单)/ 2s(聚合) 超阈值告警
错误率(5xx) ≤ 0.5% > 0.5% 告警
AI 调用成功率 ≥ 99% < 99% 告警
限流触发次数 ≤ 10次/天 超阈值告警(需扩容)

9.2 接口降级策略

当接口异常时,AI 客服按以下策略降级:

异常类型 降级策略
单个接口超时 AI 改用静态知识库回答 + 提示"实时数据暂不可用"
客户身份接口失败 AI 引导客户手动提供订单号
订单接口失败 AI 创建工单转人工处理
报价接口失败 AI 提供区间参考价(基于 business-knowledge.md) + 引导下单查看精准报价
全部接口不可用 AI 主动告知"系统临时维护中" + 创建 P0 工单 + 升级人工

十、修订记录

版本 日期 修订人 修订内容
V1.0 2026-08-13 DT 初始化实时业务状态接口契约;定义 15 个 AI 客服专用接口(客户识别 2 + 订单 3 + 报价 2 + 师傅 2 + 工单 3 + 聚合 3);定义 AI service account 权限矩阵;定义接口降级策略与健康监控指标

本文件为 AI 客服系统的实时业务状态接口契约。接口实现由 听码 WDE 负责,契约维护由 听云 WCL + WDE 共同承担。对齐 DIP1-API OpenAPI 规格 V2.0