feat: 增强审核智能体页风险与通知能力卡展示
This commit is contained in:
@@ -86,6 +86,8 @@ def detail(request, conversation_id: str):
|
||||
conversation.refresh_from_db()
|
||||
workspace_summary = _build_workspace_summary(conversation, batch)
|
||||
export_card = _build_export_card(result, conversation)
|
||||
risk_card = _build_risk_card(result, conversation)
|
||||
notify_card = _build_notify_card(result, conversation)
|
||||
|
||||
return render(
|
||||
request,
|
||||
@@ -105,6 +107,8 @@ def detail(request, conversation_id: str):
|
||||
"workspace_summary": workspace_summary,
|
||||
"upload_form": upload_form,
|
||||
"export_card": export_card,
|
||||
"risk_card": risk_card,
|
||||
"notify_card": notify_card,
|
||||
},
|
||||
)
|
||||
|
||||
@@ -265,6 +269,55 @@ def _build_export_card(result: AgentResult | None, conversation: Conversation) -
|
||||
}
|
||||
|
||||
|
||||
def _build_risk_card(result: AgentResult | None, conversation: Conversation) -> dict:
|
||||
structured_output = {}
|
||||
if result and result.structured_output:
|
||||
structured_output = result.structured_output
|
||||
else:
|
||||
structured_output = (conversation.latest_summary or {}).get("structured_output") or {}
|
||||
if structured_output.get("output_type") != "registration_risk_report":
|
||||
return {}
|
||||
return {
|
||||
"summary": structured_output.get("summary", ""),
|
||||
"highest_risk_level": structured_output.get("highest_risk_level", ""),
|
||||
"pass_status": structured_output.get("pass_status", ""),
|
||||
"manual_review_items": structured_output.get("manual_review_items") or [],
|
||||
"risk_items": structured_output.get("risk_items") or [],
|
||||
"owner_roles": structured_output.get("owner_roles") or [],
|
||||
}
|
||||
|
||||
|
||||
def _build_notify_card(result: AgentResult | None, conversation: Conversation) -> dict:
|
||||
latest_summary = conversation.latest_summary or {}
|
||||
structured_output = latest_summary.get("structured_output") or {}
|
||||
notification_payload = latest_summary.get("notification_payload") or {}
|
||||
|
||||
if result and result.structured_output:
|
||||
structured_output = result.structured_output
|
||||
if result and result.notification_payload:
|
||||
notification_payload = result.notification_payload
|
||||
|
||||
notify_reason = (
|
||||
structured_output.get("notify_reason")
|
||||
or notification_payload.get("notify_reason")
|
||||
or ""
|
||||
)
|
||||
mentioned_users = structured_output.get("mentioned_users") or notification_payload.get("mentioned_users") or []
|
||||
message_status = structured_output.get("message_status") or notification_payload.get("message_status") or ""
|
||||
web_detail_url = structured_output.get("web_detail_url") or notification_payload.get("web_detail_url") or ""
|
||||
owners = structured_output.get("owner_roles") or notification_payload.get("owners") or []
|
||||
|
||||
if not any([notify_reason, mentioned_users, message_status, web_detail_url, owners]):
|
||||
return {}
|
||||
return {
|
||||
"notify_reason": notify_reason,
|
||||
"mentioned_users": mentioned_users,
|
||||
"message_status": message_status,
|
||||
"web_detail_url": web_detail_url,
|
||||
"owners": owners,
|
||||
}
|
||||
|
||||
|
||||
def _apply_agent_result_to_conversation(conversation: Conversation, result: AgentResult) -> None:
|
||||
conversation.task_status = result.status
|
||||
if result.node_results:
|
||||
|
||||
Reference in New Issue
Block a user