返回文章列表

营运与维护 · 实作指南

客户没提电话,不等于让 AI 删除电话

辨别 JSON Merge Patch 的省略、null 与阵列取代语意,避免把未知资料变成删除指令。

客户没提电话,不等于让 AI 删除电话

AAHouse 原创解说视频,采用 AI 辅助概念画面、合成旁白及原创音乐。

英文逐字稿 · 简体中文普通话逐字稿 · 台湾华语逐字稿 · 澳门粤语逐字稿

一张交班便条

设想一家美国自行车维修店:客户说“请把取车备注改成周五下午”,AI 便生成客户资料更新。旧资料里还有联系电话。危险不在备注写得是否流畅,而在工具把“没提到电话”编码成了什么。以下是虚构的变更评审,不是客户事故或实测成果。

一张交班便条
一张交班便条
  • 客户只改取车备注
  • 旧记录仍有联系电话
  • 先看变更含义,再看文案

未经修改的原始来源说明图。

候选甲:没有 phone 字段

如果接口明确采用 JSON Merge Patch,补丁只写 pickupNote,而不包含 phone,原电话成员保持不变。[1] 我们建议模型先输出“修改备注、保留其他字段”的业务意图,再由确定性代码生成允许的字段。不要为了让对象看起来完整,把未提到的值补成 null。

候选甲:没有 phone 字段
候选甲:没有 phone 字段
  • 补丁:只包含 pickupNote
  • phone 未出现
  • 结果:原电话保持不变

未经修改的原始来源说明图。

候选乙:phone 为 null

同一协议中,{"phone":null} 的含义是移除现有 phone 成员,不是“我不知道电话”。[1] 因此,抽取阶段的未知状态不能直接复用为写入补丁。删除电话应有明确的用户意图与相应权限;“语法合法”不等于“业务获准”。

候选乙:phone 为 null
候选乙:phone 为 null
  • 补丁:{"phone": null}
  • 合并补丁中的 null → 移除成员
  • 未知信息 ≠ 删除指令

未经修改的原始来源说明图。

还有一张容易误读的清单

客户若说“加上周末可联系标签”,也别让 AI 直接提交只含新标签的数组。Merge Patch 对数组采用整体替换,不是按项目追加。[1] 评审应展示更新前后完整列表,以及将消失的项目;若接口有专用追加操作,先核实它的实际契约。

还有一张容易误读的清单
还有一张容易误读的清单
  • 原列表:[维修提醒, 邮件联系]
  • 提交:[周末联系]
  • 整体替换:旧项目不再保留

未经修改的原始来源说明图。

先核对门牌,再解释便条

这些规则只适用于已确认采用该格式的接口。JSON Patch 是另一种格式,以有序的 add、remove、replace 等操作表达更改。[2] 不能因为请求方法都是 PATCH,就把两者混用。记录实际 Content-Type、供应商文档与字段约束;若业务确实要保存 null,也应确认协议能清楚表达该需求。

先核对门牌,再解释便条
先核对门牌,再解释便条
  • Merge Patch:对象描述变更
  • JSON Patch:有序操作列表
  • 同为 PATCH,不代表相同语义

未经修改的原始来源说明图。

给交班人一张验收单

建议用合成客户资料演练四种输入:未提及、明确删除、空字符串和新列表。预先写好期望差异,检查最终序列化请求,再在隔离环境读回结果。我们的验收目标是“未提及不变、删除有据、列表无意外丢项”,不是让 JSON 校验器只亮绿灯。这里给出测试方案,并未替你在业务系统执行。

给交班人一张验收单
给交班人一张验收单
  • 输入:未提及 / 删除 / 空字符串 / 列表
  • 核对:意图 → 序列化请求 → 结果
  • 通过:无意外删除或丢项

未经修改的原始来源说明图。

把“不知道”留在读取端

给团队的最终约定可以很短:读取时允许“未知”,写入时必须说清“保留、设置、移除”。相关的缺值处理见 AAHouse《缺少栏位需要工作流程》;本篇补上写入端的语义检查。模型越容易生成结构化输出,这一道业务翻译就越值得明确。

把“不知道”留在读取端
把“不知道”留在读取端
  • 读取状态:已知 / 未知
  • 写入意图:保留 / 设置 / 移除
  • 负责人审核差异,不只审核句子

未经修改的原始来源说明图。

想把想法变成可验证的试点?

聊聊你的工作流程

来源与延伸阅读

编辑原则

本系列以 AI 辅助原创撰写,并对照连结的公开来源。实作建议与假设情境属编辑分析,并非客户实绩。来源发布日期及产品细节可能与本系列整理日期不同。