From 33bed1597b721afdf372afe94463a7794ecc66a8 Mon Sep 17 00:00:00 2001 From: Win Cheng Date: Thu, 9 Oct 2025 13:34:06 -0700 Subject: [PATCH 1/2] update vocr types and added confidence --- jigsawstack/vision.py | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/jigsawstack/vision.py b/jigsawstack/vision.py index 8eccb51..ffb69cf 100644 --- a/jigsawstack/vision.py +++ b/jigsawstack/vision.py @@ -152,13 +152,31 @@ class VOCRParams(TypedDict): page_range: NotRequired[List[int]] +class Word(TypedDict): + text: str + bounds: BoundingBox + confidence: float + + +class Line(TypedDict): + text: str + bounds: BoundingBox + average_confidence: float + words: List[Word] + + +class Section(TypedDict): + text: str + lines: List[Line] + + class OCRResponse(BaseResponse): context: str width: int height: int tags: List[str] has_text: bool - sections: List[object] + sections: List[Section] total_pages: Optional[int] page_range: Optional[ List[int] @@ -215,7 +233,9 @@ def vocr( return resp @overload - def object_detection(self, params: ObjectDetectionParams) -> ObjectDetectionResponse: ... + def object_detection( + self, params: ObjectDetectionParams + ) -> ObjectDetectionResponse: ... @overload def object_detection( self, blob: bytes, options: ObjectDetectionParams = None @@ -295,7 +315,9 @@ async def vocr( return resp @overload - async def object_detection(self, params: ObjectDetectionParams) -> ObjectDetectionResponse: ... + async def object_detection( + self, params: ObjectDetectionParams + ) -> ObjectDetectionResponse: ... @overload async def object_detection( self, blob: bytes, options: ObjectDetectionParams = None From d0e19285e5acc827fbd399d1a5ab8855bb11581b Mon Sep 17 00:00:00 2001 From: Win Cheng Date: Thu, 9 Oct 2025 13:41:51 -0700 Subject: [PATCH 2/2] formatted --- jigsawstack/vision.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/jigsawstack/vision.py b/jigsawstack/vision.py index ffb69cf..0b5a483 100644 --- a/jigsawstack/vision.py +++ b/jigsawstack/vision.py @@ -233,9 +233,7 @@ def vocr( return resp @overload - def object_detection( - self, params: ObjectDetectionParams - ) -> ObjectDetectionResponse: ... + def object_detection(self, params: ObjectDetectionParams) -> ObjectDetectionResponse: ... @overload def object_detection( self, blob: bytes, options: ObjectDetectionParams = None @@ -315,9 +313,7 @@ async def vocr( return resp @overload - async def object_detection( - self, params: ObjectDetectionParams - ) -> ObjectDetectionResponse: ... + async def object_detection(self, params: ObjectDetectionParams) -> ObjectDetectionResponse: ... @overload async def object_detection( self, blob: bytes, options: ObjectDetectionParams = None