陆运选项不全时改为复制填空清单,方便销售按编号回填。
停发填写样例图,同群只跟当前工单,重量体积统一为 KG/CBM。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -11,6 +11,7 @@ if ROOT not in sys.path:
|
||||
sys.path.insert(0, ROOT)
|
||||
|
||||
from agent.ledger.memory_ledger import MemoryLedger
|
||||
from agent.policy import inquiry_copy as copy
|
||||
from agent.policy.multi_segments import (
|
||||
Segment,
|
||||
classify_multi_text,
|
||||
@@ -130,10 +131,11 @@ class SplitTests(unittest.TestCase):
|
||||
ready, _, text = refresh_segments(outcome.segments)
|
||||
self.assertFalse(ready)
|
||||
self.assertIn("请确认并补充以下信息:", text)
|
||||
self.assertIn("待补充:", text)
|
||||
self.assertIn("品名:(如:茶叶)", text)
|
||||
self.assertIn("货源地(非必填):(如:东莞)", text)
|
||||
self.assertIn("贸易条款(非必填):(如:FOB)", text)
|
||||
self.assertIn(copy.CLARIFY_PASTE_HINT, text)
|
||||
self.assertIn("品名(必填):\n(如:茶叶)", text)
|
||||
self.assertIn("货源地(非必填):\n(如:东莞)", text)
|
||||
self.assertIn("贸易条款(非必填):\n(如:DDP、DAP、CIF、CIP)", text)
|
||||
self.assertNotIn("品名:(如:茶叶)", text)
|
||||
|
||||
def test_port_to_port_fills_sea_class(self) -> None:
|
||||
"""海运只缺运输分类时,回复 Port to Port 要写进该段,和单聊一样。"""
|
||||
@@ -226,10 +228,10 @@ class SplitTests(unittest.TestCase):
|
||||
]
|
||||
ready, updated, text = refresh_segments(segs)
|
||||
self.assertFalse(ready)
|
||||
self.assertIn("线路类别(必填):可选择回复", text)
|
||||
self.assertIn("国内长途/零担", text)
|
||||
self.assertIn("线路类别(必填):", text)
|
||||
self.assertIn("1.1国内长途/零担", text)
|
||||
self.assertIn("国内城配/拖车/打包", text)
|
||||
self.assertIn("运输分类(必填):可选择回复", text)
|
||||
self.assertIn("运输分类(必填):", text)
|
||||
self.assertIn("1.普件", text)
|
||||
self.assertNotIn("始发站", text)
|
||||
self.assertNotIn("请回复「确定」创建工单", text)
|
||||
@@ -301,9 +303,9 @@ class FlowTests(unittest.TestCase):
|
||||
return "ok"
|
||||
|
||||
def last_prompt(self) -> str:
|
||||
"""样例图兜底会后发,取带段号或可选择回复的那条补问。"""
|
||||
"""取带段号或复制填空清单的那条补问。"""
|
||||
for text in reversed(self.replies):
|
||||
if "段1" in text or "可选择回复" in text or "请回复「确定」" in text or "待补充" in text:
|
||||
if "段1" in text or "Step1:" in text or "请回复「确定」" in text or "待补充" in text:
|
||||
return text
|
||||
return self.replies[-1] if self.replies else ""
|
||||
|
||||
@@ -313,8 +315,8 @@ class FlowTests(unittest.TestCase):
|
||||
card = self.replies[-1]
|
||||
self.assertIn("请确认并补充以下信息:", card)
|
||||
self.assertIn("段2:空运", card)
|
||||
self.assertIn("待补充:", card)
|
||||
self.assertIn("包装类型:(如:", card)
|
||||
self.assertIn(copy.CLARIFY_PASTE_HINT, card)
|
||||
self.assertIn("包装类型(必填):\n(如:", card)
|
||||
self.assertNotIn("TMS", card)
|
||||
|
||||
def test_clarify_reply_gets_a_followup(self) -> None:
|
||||
@@ -377,7 +379,7 @@ class FlowTests(unittest.TestCase):
|
||||
)
|
||||
card = self.last_prompt()
|
||||
self.assertEqual(phase, "clarify")
|
||||
self.assertIn("线路类别(必填):可选择回复", card)
|
||||
self.assertIn("线路类别(必填):", card)
|
||||
self.assertIn("纽约港", card)
|
||||
self.assertIn("巴生西港", card)
|
||||
self.assertIn("机器设备", card)
|
||||
@@ -393,8 +395,8 @@ class FlowTests(unittest.TestCase):
|
||||
phase = self.flow.on_text(sender_id="sales", text=start, reply=self.reply)
|
||||
self.assertEqual(phase, "clarify")
|
||||
first = self.last_prompt()
|
||||
self.assertIn("线路类别(必填):可选择回复", first)
|
||||
self.assertIn("运输分类(必填):可选择回复", first)
|
||||
self.assertIn("线路类别(必填):", first)
|
||||
self.assertIn("运输分类(必填):", first)
|
||||
self.assertNotIn("始发站", first)
|
||||
phase = self.flow.on_text(
|
||||
sender_id="sales",
|
||||
@@ -411,7 +413,7 @@ class FlowTests(unittest.TestCase):
|
||||
)
|
||||
card = self.last_prompt()
|
||||
self.assertEqual(phase, "clarify")
|
||||
self.assertIn("线路类别(必填):可选择回复", card)
|
||||
self.assertIn("线路类别(必填):", card)
|
||||
self.assertNotIn("始发站", card)
|
||||
self.assertNotIn("请回复「确定」创建工单", card)
|
||||
|
||||
@@ -466,8 +468,8 @@ class FlowTests(unittest.TestCase):
|
||||
phase = self.flow.on_text(sender_id="sales", text=text, reply=self.reply)
|
||||
self.assertEqual(phase, "clarify")
|
||||
card = self.last_prompt()
|
||||
self.assertIn("线路类别(必填):可选择回复", card)
|
||||
self.assertIn("运输分类(必填):可选择回复", card)
|
||||
self.assertIn("线路类别(必填):", card)
|
||||
self.assertIn("运输分类(必填):", card)
|
||||
self.assertNotIn("始发站", card)
|
||||
self.assertNotIn("请回复「确定」创建工单", card)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user