feat: adaptive debounce and intent-driven quote trigger tuning
This commit is contained in:
@@ -61,6 +61,58 @@ class RegressionPipelineTest(unittest.IsolatedAsyncioTestCase):
|
||||
self.assertIn("15", resp.reply)
|
||||
agent._quote_pending_images.assert_awaited()
|
||||
|
||||
async def test_single_image_requirement_intent_triggers_quote(self):
|
||||
agent = CustomerServiceAgent()
|
||||
st = agent._get_conversation_state(self.customer_id)
|
||||
st.pending_image_urls = ["https://img.alicdn.com/a.jpg"]
|
||||
st.pending_requirements = []
|
||||
agent._sync_pending_quote_state(self.customer_id, st)
|
||||
agent._quote_pending_images = AsyncMock(return_value={"reply": "这张20元,定了我马上做", "need_transfer": False})
|
||||
|
||||
msg = CustomerMessage(
|
||||
msg_id="m3",
|
||||
acc_id="test_shop",
|
||||
msg="这个门头上面的字做一下",
|
||||
from_id=self.customer_id,
|
||||
from_name="t",
|
||||
cy_id=self.customer_id,
|
||||
acc_type="AliWorkbench",
|
||||
msg_type=0,
|
||||
cy_name="t",
|
||||
goods_name="专业找图",
|
||||
goods_order="",
|
||||
)
|
||||
resp = await agent.process_message(msg)
|
||||
self.assertTrue(resp.should_reply)
|
||||
self.assertIn("20", resp.reply)
|
||||
agent._quote_pending_images.assert_awaited()
|
||||
|
||||
async def test_multi_image_finish_intent_triggers_quote(self):
|
||||
agent = CustomerServiceAgent()
|
||||
st = agent._get_conversation_state(self.customer_id)
|
||||
st.pending_image_urls = ["https://img.alicdn.com/a.jpg", "https://img.alicdn.com/b.jpg"]
|
||||
st.pending_requirements = ["改字"]
|
||||
agent._sync_pending_quote_state(self.customer_id, st)
|
||||
agent._quote_pending_images = AsyncMock(return_value={"reply": "两张打包45,定了我就开做", "need_transfer": False})
|
||||
|
||||
msg = CustomerMessage(
|
||||
msg_id="m4",
|
||||
acc_id="test_shop",
|
||||
msg="就这几张,先按这些报个价",
|
||||
from_id=self.customer_id,
|
||||
from_name="t",
|
||||
cy_id=self.customer_id,
|
||||
acc_type="AliWorkbench",
|
||||
msg_type=0,
|
||||
cy_name="t",
|
||||
goods_name="专业找图",
|
||||
goods_order="",
|
||||
)
|
||||
resp = await agent.process_message(msg)
|
||||
self.assertTrue(resp.should_reply)
|
||||
self.assertIn("45", resp.reply)
|
||||
agent._quote_pending_images.assert_awaited()
|
||||
|
||||
async def test_pending_state_restore(self):
|
||||
db.update_pending_quote_state(self.customer_id, ["u1", "u2"], ["r1"])
|
||||
agent = CustomerServiceAgent()
|
||||
|
||||
Reference in New Issue
Block a user