fix(message_summary): stop rendering failed workflow output
This commit is contained in:
@@ -298,6 +298,9 @@ class MessageSummaryPlugin(MessagePluginInterface):
|
||||
|
||||
def _append_usage_info(self, answer: str, metadata: Dict[str, Any]) -> str:
|
||||
"""把 token 统计追加到总结文本末尾"""
|
||||
if not answer or not answer.strip():
|
||||
return answer
|
||||
|
||||
usage = metadata.get("usage", {}) if metadata else {}
|
||||
if not usage:
|
||||
return answer
|
||||
@@ -331,6 +334,11 @@ class MessageSummaryPlugin(MessagePluginInterface):
|
||||
def _parse_workflow_response(self, response_data: Dict[str, Any]) -> Tuple[str, Dict[str, Any]]:
|
||||
"""解析 Dify workflow 响应"""
|
||||
payload = (response_data or {}).get("data", {}) or {}
|
||||
status = str(payload.get("status", "")).strip().lower()
|
||||
if status and status not in {"succeeded", "success", "partial-succeeded"}:
|
||||
error_message = payload.get("error") or response_data.get("message") or f"workflow status={status}"
|
||||
raise RuntimeError(str(error_message))
|
||||
|
||||
outputs = payload.get("outputs", {}) or {}
|
||||
answer = ""
|
||||
|
||||
@@ -478,6 +486,9 @@ class MessageSummaryPlugin(MessagePluginInterface):
|
||||
answer = response_data.get("answer", "")
|
||||
metadata = response_data.get("metadata", {})
|
||||
|
||||
if not answer or not answer.strip():
|
||||
raise RuntimeError("Dify 未返回有效总结内容")
|
||||
|
||||
answer = self._clean_summary_output(answer)
|
||||
spath = ""
|
||||
answer = self._append_usage_info(answer, metadata)
|
||||
|
||||
Reference in New Issue
Block a user