wassemgtk's picture
Add gateway API source for one-click deployment
092fd7d verified
Raw
History Blame Contribute Delete
758 Bytes
from __future__ import annotations
import httpx
from app.config import Settings
from .base import OcrProvider
class LocalOcrProvider(OcrProvider):
def __init__(self, settings: Settings):
self.settings = settings
async def extract(self, image_bytes: bytes, region: tuple[float, float, float, float] | None = None) -> dict:
files = {"file": ("image.png", image_bytes, "image/png")}
data = {}
if region:
data["region"] = ",".join(str(x) for x in region)
async with httpx.AsyncClient(timeout=60) as client:
response = await client.post(f"{self.settings.ocr_base_url.rstrip('/')}/ocr", files=files, data=data)
response.raise_for_status()
return response.json()