def _workflow_stream_handler(data: Dict[str, str], raw_response: httpx.Response) -> Optional[WorkflowEvent]:
id = int(data["id"])
event = data["event"]
event_data = data["data"] # type: str
if event == WorkflowEventType.DONE:
return None
elif event == WorkflowEventType.MESSAGE:
return WorkflowEvent(
id=id,
event=event,
message=WorkflowEventMessage.model_validate_json(event_data),
)
elif event == WorkflowEventType.ERROR:
return WorkflowEvent(id=id, event=event, error=WorkflowEventError.model_validate_json(event_data))
elif event == WorkflowEventType.INTERRUPT:
return WorkflowEvent(
id=id,
event=event,
interrupt=WorkflowEventInterrupt.model_validate_json(event_data),
)
else:
return WorkflowEvent(id=id, event=WorkflowEventType.UNKNOWN, unknown=data)
中的这行
if event == WorkflowEventType.DONE:
return None
中的这行