mirror of
https://github.com/bytedance/deer-flow.git
synced 2026-06-10 09:25:57 +00:00
fix(middleware): fix LLM fallback run status (#3321)
* Fix LLM fallback run status * optimize LLM fallback maker extraction in streaming path
This commit is contained in:
@@ -86,6 +86,8 @@ class RunJournal(BaseCallbackHandler):
|
||||
self._last_ai_msg: str | None = None
|
||||
self._first_human_msg: str | None = None
|
||||
self._msg_count = 0
|
||||
self._had_llm_error_fallback = False
|
||||
self._llm_error_fallback_message: str | None = None
|
||||
|
||||
# Latency tracking
|
||||
self._llm_start_times: dict[str, float] = {} # langchain run_id -> start time
|
||||
@@ -256,6 +258,18 @@ class RunJournal(BaseCallbackHandler):
|
||||
# Token usage from message
|
||||
usage = getattr(message, "usage_metadata", None)
|
||||
usage_dict = dict(usage) if usage else {}
|
||||
additional_kwargs = getattr(message, "additional_kwargs", None) or {}
|
||||
if isinstance(additional_kwargs, dict) and additional_kwargs.get("deerflow_error_fallback"):
|
||||
self._had_llm_error_fallback = True
|
||||
detail = additional_kwargs.get("error_detail")
|
||||
reason = additional_kwargs.get("error_reason")
|
||||
fallback_text = self._message_text(message).strip()
|
||||
if isinstance(detail, str) and detail.strip():
|
||||
self._llm_error_fallback_message = detail.strip()
|
||||
elif isinstance(reason, str) and reason.strip():
|
||||
self._llm_error_fallback_message = reason.strip()
|
||||
elif fallback_text:
|
||||
self._llm_error_fallback_message = fallback_text[:2000]
|
||||
|
||||
# Resolve call index
|
||||
call_index = self._llm_call_index
|
||||
@@ -569,3 +583,11 @@ class RunJournal(BaseCallbackHandler):
|
||||
"last_ai_message": self._last_ai_msg,
|
||||
"first_human_message": self._first_human_msg,
|
||||
}
|
||||
|
||||
@property
|
||||
def had_llm_error_fallback(self) -> bool:
|
||||
return self._had_llm_error_fallback
|
||||
|
||||
@property
|
||||
def llm_error_fallback_message(self) -> str | None:
|
||||
return self._llm_error_fallback_message
|
||||
|
||||
Reference in New Issue
Block a user