diff --git a/dify_client/models/base.py b/dify_client/models/base.py index f224dcb..ef7741a 100644 --- a/dify_client/models/base.py +++ b/dify_client/models/base.py @@ -40,10 +40,10 @@ class CompletionInputs(BaseModel): class File(BaseModel): type: FileType transfer_method: TransferMethod - url: Optional[str] + url: Optional[str] = None # Uploaded file ID, which must be obtained by uploading through the File Upload API in advance # (when the transfer method is local_file) - upload_file_id: Optional[str] + upload_file_id: Optional[str] = None class Usage(BaseModel): diff --git a/dify_client/models/stream.py b/dify_client/models/stream.py index 8c6dfe1..da0594d 100644 --- a/dify_client/models/stream.py +++ b/dify_client/models/stream.py @@ -27,18 +27,22 @@ class StreamEvent(StrEnum): ERROR = "error" PING = "ping" TTS_MESSAGE_END = "tts_message_end" - + PARALLEL_BRANCH_STARTED = "parallel_branch_started" + PARALLEL_BRANCH_FINISHED = "parallel_branch_finished" + NODE_RETRY = "node_retry" + AGENT_LOG = "agent_log" + @classmethod def new(cls, event: Union["StreamEvent", str]) -> "StreamEvent": if isinstance(event, cls): return event - return utils.str_to_enum(cls, event) + return utils.str_to_enum(cls, event, ignore_not_found=True, enum_default=event) class StreamResponse(BaseModel): model_config = ConfigDict(extra='allow') - event: StreamEvent + event: StreamEvent | str task_id: Optional[str] = "" @field_validator("event", mode="before") @@ -65,7 +69,7 @@ class MessageEndStreamResponse(StreamResponse): message_id: str conversation_id: Optional[str] = "" created_at: int # unix timestamp seconds - metadata: Optional[Metadata] + metadata: Optional[Metadata] = None class MessageReplaceStreamResponse(MessageStreamResponse): @@ -104,7 +108,7 @@ class WorkflowsStreamResponse(StreamResponse): WorkflowFinishedData, NodeStartedData, NodeFinishedData] - ] + ] = None class ChatWorkflowsStreamResponse(WorkflowsStreamResponse): diff --git a/dify_client/models/workflow.py b/dify_client/models/workflow.py index 93a1e01..7fad18f 100644 --- a/dify_client/models/workflow.py +++ b/dify_client/models/workflow.py @@ -17,15 +17,15 @@ class WorkflowStatus(StrEnum): class ExecutionMetadata(BaseModel): - total_tokens: Optional[int] - total_price: Optional[str] - currency: Optional[str] + total_tokens: Optional[int] = None + total_price: Optional[str] = None + currency: Optional[str] = None class WorkflowStartedData(BaseModel): id: str # workflow run id workflow_id: str # workflow id - sequence_number: int + sequence_number: int | None = None inputs: Optional[dict] = None created_at: int # unix timestamp seconds @@ -66,10 +66,10 @@ class WorkflowFinishedData(BaseModel): workflow_id: str # workflow id sequence_number: int status: WorkflowStatus - outputs: Optional[dict] - error: Optional[str] - elapsed_time: Optional[float] - total_tokens: Optional[int] + outputs: Optional[dict] = None + error: Optional[str] = None + elapsed_time: Optional[float] = None + total_tokens: Optional[int] = None total_steps: Optional[int] = 0 created_at: int finished_at: int