mirror of
https://github.com/langgenius/dify.git
synced 2026-04-07 21:00:33 -04:00
78 lines
1.9 KiB
Python
78 lines
1.9 KiB
Python
from __future__ import annotations
|
|
|
|
from datetime import datetime
|
|
|
|
from pydantic import field_validator
|
|
|
|
from fields.base import ResponseModel
|
|
|
|
|
|
def _to_timestamp(value: datetime | int | None) -> int | None:
|
|
if isinstance(value, datetime):
|
|
return int(value.timestamp())
|
|
return value
|
|
|
|
|
|
class UploadConfig(ResponseModel):
|
|
file_size_limit: int
|
|
batch_count_limit: int
|
|
file_upload_limit: int | None = None
|
|
image_file_size_limit: int
|
|
video_file_size_limit: int
|
|
audio_file_size_limit: int
|
|
workflow_file_upload_limit: int
|
|
image_file_batch_limit: int
|
|
single_chunk_attachment_limit: int
|
|
attachment_image_file_size_limit: int | None = None
|
|
|
|
|
|
class FileResponse(ResponseModel):
|
|
id: str
|
|
name: str
|
|
size: int
|
|
extension: str | None = None
|
|
mime_type: str | None = None
|
|
created_by: str | None = None
|
|
created_at: int | None = None
|
|
preview_url: str | None = None
|
|
source_url: str | None = None
|
|
original_url: str | None = None
|
|
user_id: str | None = None
|
|
tenant_id: str | None = None
|
|
conversation_id: str | None = None
|
|
file_key: str | None = None
|
|
|
|
@field_validator("created_at", mode="before")
|
|
@classmethod
|
|
def _normalize_created_at(cls, value: datetime | int | None) -> int | None:
|
|
return _to_timestamp(value)
|
|
|
|
|
|
class RemoteFileInfo(ResponseModel):
|
|
file_type: str
|
|
file_length: int
|
|
|
|
|
|
class FileWithSignedUrl(ResponseModel):
|
|
id: str
|
|
name: str
|
|
size: int
|
|
extension: str | None = None
|
|
url: str | None = None
|
|
mime_type: str | None = None
|
|
created_by: str | None = None
|
|
created_at: int | None = None
|
|
|
|
@field_validator("created_at", mode="before")
|
|
@classmethod
|
|
def _normalize_created_at(cls, value: datetime | int | None) -> int | None:
|
|
return _to_timestamp(value)
|
|
|
|
|
|
__all__ = [
|
|
"FileResponse",
|
|
"FileWithSignedUrl",
|
|
"RemoteFileInfo",
|
|
"UploadConfig",
|
|
]
|