落地转人工:三次补问或明确接管后出入口,真正转人工后冻结本票并允许新开询价。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-20 16:42:13 +08:00
co-authored by Cursor
parent 26dd5d72a1
commit 7eedf28e8d
23 changed files with 1499 additions and 132 deletions
+29
View File
@@ -323,6 +323,35 @@ class LandDispatchTests(unittest.TestCase):
self.assertNotIn("你好,我是询价机器人", last)
self.assertIn("请说明要调哪一项费用", last)
def test_clarify_short_reply_misrouted_as_other_stays_on_inquiry(self) -> None:
"""补问阶段回「111」即使被标闲聊,也不能发开场白。"""
store = get_message_store()
facts = {
"起运港": "广州",
"目的港": "深圳",
"运输类型": "国内运输拼车",
"线路类别": "国内长途/零担",
"运输分类": "急件",
}
phase = handle_text_inquiry(
InboundMessage(sender_id="ld-111", message_id="m-111a", content="陆运广州到深圳"),
injected_facts=facts,
injected_mode="LAND",
store=store,
)
self.assertEqual(phase, "clarify")
name = dispatch_inbound(
InboundMessage(sender_id="ld-111", message_id="m-111b", content="111"),
RouteDecision(intent="ordinary_text_other"),
)
self.assertEqual(name, "ordinary_text_inquiry")
sess = get_land_text_flow().session_of("ld-111")
self.assertIsNotNone(sess)
self.assertNotEqual(sess.phase, "")
last = list(store._outbox.values())[-1].content
self.assertNotIn("你好,我是询价机器人", last)
self.assertNotIn("请直接描述客户需求", last)
if __name__ == "__main__":
unittest.main()