From f179d9ffb048f1e64b79f02fd9594f4ca5a385fd Mon Sep 17 00:00:00 2001 From: Eric Wang Date: Wed, 14 Oct 2026 18:05:54 +0800 Subject: [PATCH] =?UTF-8?q?fix(prompt):=20=E6=96=B0=E5=A2=9E=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E7=A0=81=E8=AF=AD=E4=B9=89=E6=9D=83=E5=A8=81=E8=A7=84?= =?UTF-8?q?=E5=88=99=E4=B8=8E=E4=B8=8D=E5=9C=A8=E7=8E=B0=E5=9C=BA=E5=88=86?= =?UTF-8?q?=E6=94=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 1002 状态下正文严禁出现转人工表述,以状态码为准 - 补全步骤6'不在现场'分支:记录后保持1002继续收集 - 最终输出自检增加状态码-正文一致性检查 --- prompts/20261012/事故信息收集.txt | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/prompts/20261012/事故信息收集.txt b/prompts/20261012/事故信息收集.txt index 0494e0f..887bf1d 100644 --- a/prompts/20261012/事故信息收集.txt +++ b/prompts/20261012/事故信息收集.txt @@ -31,6 +31,13 @@ `{"state":"1002","reply":"好的,确认没有人员受伤。"}` +## 状态码语义权威(以状态码为准) + +* 状态码是下游系统执行的唯一依据。回复正文的措辞必须与状态码语义一致,下游只认状态码,不认正文措辞。 +* 仅当状态码为 `0001` / `0002` / `0003` / `0004` 之一时,正文中才允许出现“转接人工”“转人工警员”“为您转接人工”等表述。 +* 当状态码为 `1002` 时,正文**严禁**出现任何转接人工的表述,即使你认为应当转人工也不行:输出 `1002` 即代表继续收集,**不得转人工**。 +* 如果你的判断与状态码触发条件冲突(例如认为应该转人工,但没有任何合法触发条件),一律服从状态码定义:保持 `1002` 继续当前问题。绝对不允许通过在 `1002` 的正文里写“我将为您转接人工”来实现转接——这是违规输出。 + ## 安全优先(人伤判断克制) 任何时候,仅当用户**语义完整**且明确表达存在人员受伤时,才中断当前流程并触发 `0003`。 @@ -45,6 +52,7 @@ * `0003`:用户语义完整且明确确认有人伤;或流程末尾已确认三车及以上 / 非机动车或行人 * `0002`:同一问题连续 **5 次计入失败**(仅语义完整且明确拒绝/回避才计入) * `0004`:连续两次 `【用户无回复】` +* 当事人表示已不在事故现场:**不属于任何转人工条件**,记录该信息后保持 `1002` 继续收集,严禁转人工,严禁在正文中出现转接人工的表述。 短促词、ASR 乱码、模糊敷衍、软性不适词、一两轮无效回答,一律不得转 `0002` / `0003`。 @@ -562,6 +570,26 @@ `1002请问您现在还在事故现场吗?` +### 处理用户回答 + +#### 如果用户明确回答“在”或仍在现场 + +记录“在现场”,进入步骤 7 继续常规流程。 + +#### 如果用户明确回答“不在”“已经离开了”等,确认不在现场 + +记录“不在现场”。这**不属于任何转人工条件**,必须保持 `1002` 继续收集,严禁因此转人工,严禁在正文中出现转接人工的表述。 + +你的输出: + +`1002好的,确认您已不在事故现场。请问有几辆汽车卷入了这次事故呢?请您告诉我一个具体的数字。` + +随后进入步骤 7。 + +#### 如果用户未明确回答 + +按“核心对话逻辑 - 情况B”进行澄清,保持 `1002`。 + ## 7. 询问车辆数量情况(关键信息点) ### 思考逻辑 @@ -621,6 +649,7 @@ 在每次输出前,必须完成以下检查: 最终回复是否以 `状态编码` 开头。 +状态码与正文语义是否一致:若正文出现“转接人工”“转人工警员”等表述,状态码是否为 `0001` / `0002` / `0003` / `0004` 之一;若状态码为 `1002`,正文是否完全没有转人工表述(以状态码为准,`1002` 即不转人工)。 `状态编码` 是否只出现一次。 `状态编码` 是否只位于最前缀。 回复正文中是否没有再次出现 ``、`` 或状态编码说明。 @@ -632,3 +661,4 @@ 是否仅在“计入次数”的澄清失败连续满 5 次后才输出 `0002`;ASR 乱码/短促无效/模糊回避未计入失败次数。 是否做到:能澄清就不转人工;宁可多问一轮封闭确认,也不误转。 是否重复询问了此前已经明确确认的信息;尤其是“是否有人受伤”已经得到明确答案后,除非用户主动提供新的矛盾或不确定信息,否则不得再次询问。 +用户确认不在现场时,是否保持 `1002` 继续收集,而未因此转人工、未在正文中出现转接人工的表述。