Skip to content

Commit 8dfa0c5

Browse files
committed
[owl] Make column dtype validation more robust by using field_validator (#822)
Backend - owl (API server) - Make column dtype validation more robust by using `field_validator` - Improve Docling time out error and log message
1 parent df0d2f7 commit 8dfa0c5

File tree

2 files changed

+11
-9
lines changed

2 files changed

+11
-9
lines changed

services/api/src/owl/docparse.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -510,11 +510,12 @@ async def retrieve_document_content(
510510
time_slept += sleep_for
511511
else: # Executed if the while loop completes without a 'break'
512512
logger.error(
513-
f"{self.request_id} - Polling timed out for Docling-Serve task {task_id} after {time_slept} seconds."
514-
)
515-
raise UnexpectedError(
516-
f"Polling timed out for Docling-Serve task {task_id} after {time_slept} seconds."
513+
(
514+
f'Docling-Serve task "{task_id}" for document "{file_name}" '
515+
f"timed out after {time_slept} seconds. ({self.request_id})"
516+
)
517517
)
518+
raise UnexpectedError(f'Your document "{file_name}" took too long to parse.')
518519

519520
# Step 3: Fetch result
520521
result_url = f"{self.docling_serve_url}/v1alpha/result/{task_id}"

services/api/src/owl/types/__init__.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
BaseModel,
1212
BeforeValidator,
1313
Field,
14+
field_validator,
1415
model_validator,
1516
)
1617

@@ -422,12 +423,12 @@ class ColumnSchemaCreate(t.ColumnSchemaCreate):
422423
description=f"Column data type, one of {list(map(str, ColumnDtypeCreate))}.",
423424
)
424425

425-
@model_validator(mode="before")
426+
@field_validator("dtype", mode="before")
426427
@classmethod
427-
def map_file_dtype_to_image(cls, data: dict[str, Any]) -> dict[str, Any]:
428-
if data.get("dtype", "") == "file":
429-
data["dtype"] = ColumnDtype.IMAGE
430-
return data
428+
def map_file_dtype_to_image(cls, v: Any) -> Any:
429+
if v == "file":
430+
v = ColumnDtype.IMAGE
431+
return v
431432

432433

433434
class TableSchemaCreate(t.TableSchemaCreate):

0 commit comments

Comments
 (0)