Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions dify_client/models/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down
14 changes: 9 additions & 5 deletions dify_client/models/stream.py
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand All @@ -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):
Expand Down Expand Up @@ -104,7 +108,7 @@ class WorkflowsStreamResponse(StreamResponse):
WorkflowFinishedData,
NodeStartedData,
NodeFinishedData]
]
] = None


class ChatWorkflowsStreamResponse(WorkflowsStreamResponse):
Expand Down
16 changes: 8 additions & 8 deletions dify_client/models/workflow.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand Down
Loading