feat(frontend): 优化对话与管理页面展示体验

This commit is contained in:
2026-05-30 00:26:18 +08:00
parent df45a89eb1
commit 905067277a
10 changed files with 776 additions and 218 deletions

View File

@@ -1,5 +1,6 @@
from django.urls import reverse
from agent_core.results import AgentResult
from apps.audit.models import AgentAuditLog
from apps.documents.models import UploadedDocument
@@ -58,3 +59,49 @@ def test_chat_passes_selected_document_ids_to_agent_core(client, db, monkeypatch
assert response.status_code == 200
assert captured["options"]["document_ids"] == [selected.id]
assert other.id not in captured["options"]["document_ids"]
def test_chat_renders_structured_output_references_and_tool_calls(client, db, monkeypatch):
def fake_run_agent(scenario_config, user_input, options=None):
return AgentResult(
answer="建议先隔离现场。",
structured_output={
"output_type": "quality_report",
"summary": "发现异常批次需要立即处置。",
"risk_level": "high",
"suggested_actions": ["隔离现场", "通知负责人"],
},
references=[
{
"source": "sop.md",
"content": "异常处理 SOP先隔离现场再通知负责人。",
}
],
tool_calls=[
{
"tool_name": "query_demo_records",
"success": True,
"result": {"records": [{"title": "A线缺陷"}]},
"error": "",
}
],
model_name="mock-model",
status="success",
)
monkeypatch.setattr("apps.chat.views.run_agent", fake_run_agent)
response = client.post(
reverse("chat:index", args=["quality_analysis"]),
{"message": "分析 A 线异常"},
)
content = response.content.decode("utf-8")
assert response.status_code == 200
assert "结构化结果" in content
assert "发现异常批次需要立即处置" in content
assert "引用片段" in content
assert "sop.md" in content
assert "工具调用" in content
assert "query_demo_records" in content
assert "查看本次审计日志" in content