feat: 优化业务界面并修复助手意图回复

This commit is contained in:
NathanAlex7
2026-09-15 14:34:48 +08:00
parent 370ec46775
commit 97f8f0edc9
10 changed files with 218 additions and 6 deletions
+22
View File
@@ -351,6 +351,28 @@ class ProjectAssistantTests(unittest.TestCase):
self.assertEqual(returned["next_action"], "查看退回要求并补充材料")
self.assertTrue(returned["returned_at"])
def test_conversation_read_questions_receive_distinct_answers(self):
env = {"XINGBANG_DEMO_ROLE_LOGIN": "1", "XINGBANG_DEMO_PROJECTS": "DEMO-A,DEMO-B,DEMO-C"}
headers = {"X-Xingbang-Demo-Role": "manager"}
with patch.dict(os.environ, env):
status = self.post("/commands", {"project_id": "DEMO-B", "message": "这个项目到哪一步了?"}, headers=headers)
next_step = self.post("/commands", {"project_id": "DEMO-B", "message": "我接下来要做什么?"}, headers=headers)
issues = self.post("/commands", {"project_id": "DEMO-B", "message": "现在有哪些风险?"}, headers=headers)
materials = self.post("/commands", {"project_id": "DEMO-B", "message": "还缺什么材料?"}, headers=headers)
unknown = self.post("/commands", {"project_id": "DEMO-B", "message": "请详细分析这个客户"}, headers=headers)
for response in (status, next_step, issues, materials, unknown):
self.assertEqual(response.status_code, 200, response.text)
self.assertEqual(status.json()["intent"], "project_status")
self.assertIn("当前处于", status.json()["message"])
self.assertEqual(next_step.json()["intent"], "next_step")
self.assertIn("下一步", next_step.json()["message"])
self.assertNotIn("lease.duplicate_count完整性", next_step.json()["message"])
self.assertNotEqual(status.json()["message"], next_step.json()["message"])
self.assertEqual(issues.json()["intent"], "project_issues")
self.assertIn("未闭环问题", issues.json()["message"])
self.assertEqual(materials.json()["intent"], "materials")
self.assertEqual(unknown.json()["intent"], "clarify")
def test_full_review_topics_gate_approval_and_freeze_trace(self):
pre_run = self.run_project("DEMO-A")
report = self.post("/projects/DEMO-A/reports", {"run_id": pre_run["id"]}).json()