mirror of
https://github.com/docling-project/docling-serve.git
synced 2025-11-29 00:23:36 +00:00
68 lines
1.5 KiB
Python
68 lines
1.5 KiB
Python
import enum
|
|
from typing import Optional
|
|
|
|
from pydantic import BaseModel
|
|
|
|
from docling.datamodel.document import ConversionStatus, ErrorItem
|
|
from docling.utils.profiling import ProfilingItem
|
|
from docling_jobkit.datamodel.result import (
|
|
ChunkedDocumentResultItem,
|
|
ExportDocumentResponse,
|
|
ExportResult,
|
|
)
|
|
from docling_jobkit.datamodel.task_meta import TaskProcessingMeta, TaskType
|
|
|
|
|
|
# Status
|
|
class HealthCheckResponse(BaseModel):
|
|
status: str = "ok"
|
|
|
|
|
|
class ClearResponse(BaseModel):
|
|
status: str = "ok"
|
|
|
|
|
|
class ConvertDocumentResponse(BaseModel):
|
|
document: ExportDocumentResponse
|
|
status: ConversionStatus
|
|
errors: list[ErrorItem] = []
|
|
processing_time: float
|
|
timings: dict[str, ProfilingItem] = {}
|
|
|
|
|
|
class PresignedUrlConvertDocumentResponse(BaseModel):
|
|
processing_time: float
|
|
num_converted: int
|
|
num_succeeded: int
|
|
num_failed: int
|
|
|
|
|
|
class ConvertDocumentErrorResponse(BaseModel):
|
|
status: ConversionStatus
|
|
|
|
|
|
class ChunkDocumentResponse(BaseModel):
|
|
chunks: list[ChunkedDocumentResultItem]
|
|
documents: list[ExportResult]
|
|
processing_time: float
|
|
|
|
|
|
class TaskStatusResponse(BaseModel):
|
|
task_id: str
|
|
task_type: TaskType
|
|
task_status: str
|
|
task_position: Optional[int] = None
|
|
task_meta: Optional[TaskProcessingMeta] = None
|
|
|
|
|
|
class MessageKind(str, enum.Enum):
|
|
CONNECTION = "connection"
|
|
UPDATE = "update"
|
|
ERROR = "error"
|
|
|
|
|
|
class WebsocketMessage(BaseModel):
|
|
message: MessageKind
|
|
task: Optional[TaskStatusResponse] = None
|
|
error: Optional[str] = None
|