落地销售调价:按自然语言改价并单独记销售价,拉群和后台不再把调后价当成 TMS 原价。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -254,6 +254,75 @@ class LandDispatchTests(unittest.TestCase):
|
||||
)
|
||||
self.assertEqual(phase, "wait_collab")
|
||||
|
||||
def _land_to_quoted(self, sender_id: str) -> None:
|
||||
store = get_message_store()
|
||||
facts = {
|
||||
"起运港": "广州",
|
||||
"目的港": "深圳",
|
||||
"品名": "衣服",
|
||||
"体积": "100CBM",
|
||||
"毛重": "50kg",
|
||||
}
|
||||
handle_text_inquiry(
|
||||
InboundMessage(sender_id=sender_id, message_id=f"{sender_id}-a", content="陆运"),
|
||||
injected_facts=facts,
|
||||
injected_mode="LAND",
|
||||
store=store,
|
||||
)
|
||||
handle_text_inquiry(
|
||||
InboundMessage(
|
||||
sender_id=sender_id,
|
||||
message_id=f"{sender_id}-b",
|
||||
content="国内运输拼车 国内长途/零担 急件",
|
||||
),
|
||||
injected_facts=facts,
|
||||
injected_mode="LAND",
|
||||
store=store,
|
||||
)
|
||||
handle_text_inquiry(
|
||||
InboundMessage(sender_id=sender_id, message_id=f"{sender_id}-c", content="确定"),
|
||||
store=store,
|
||||
)
|
||||
self.assertEqual(get_land_text_flow().session_of(sender_id).phase, "wait_collab")
|
||||
|
||||
def test_quoted_rise_percent_not_first_chat(self) -> None:
|
||||
"""已出 TMS 卡后,A 判成调价就必须追问费用名,不能回开场白。"""
|
||||
store = get_message_store()
|
||||
self._land_to_quoted("ld-rise")
|
||||
name = dispatch_inbound(
|
||||
InboundMessage(sender_id="ld-rise", message_id="m-rise", content="报价上升10%"),
|
||||
RouteDecision(intent="quote_adjust"),
|
||||
)
|
||||
self.assertEqual(name, "quote_adjust")
|
||||
last = list(store._outbox.values())[-1].content
|
||||
self.assertNotIn("你好,我是询价机器人", last)
|
||||
self.assertIn("请说明要调哪一项费用", last)
|
||||
|
||||
def test_quoted_land_wins_over_stale_sea(self) -> None:
|
||||
"""旧海运书签不能把陆运调价抢走。"""
|
||||
store = get_message_store()
|
||||
handle_text_inquiry(
|
||||
InboundMessage(sender_id="ld-mix", message_id="m-mix-sea", content="海运"),
|
||||
injected_facts=COMPLETE_SEA,
|
||||
injected_mode="SEA",
|
||||
store=store,
|
||||
)
|
||||
self._land_to_quoted("ld-mix")
|
||||
name = dispatch_inbound(
|
||||
InboundMessage(sender_id="ld-mix", message_id="m-mix-rise", content="报价上升10%"),
|
||||
RouteDecision(intent="quote_adjust"),
|
||||
)
|
||||
self.assertEqual(name, "quote_adjust")
|
||||
from agent.handlers.text_inquiry import _pick_text_flow
|
||||
|
||||
self.assertIs(
|
||||
_pick_text_flow(sender_id="ld-mix", text="报价上升10%", prefer_quoted=True),
|
||||
get_land_text_flow(),
|
||||
)
|
||||
last = list(store._outbox.values())[-1].content
|
||||
self.assertNotIn("你好,我是询价机器人", last)
|
||||
self.assertIn("请说明要调哪一项费用", last)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user