wassemgtk's picture
Add gateway API source for one-click deployment
092fd7d verified
Raw
History Blame Contribute Delete
1.02 kB
from __future__ import annotations
from app.providers.ocr.base import OcrProvider
from app.storage.models import VisualAssetRecord
from .base import Lens
class OcrLens(Lens):
name = "glm_ocr"
view_type = "ocr"
def __init__(self, provider: OcrProvider):
self.provider = provider
async def execute(self, asset: VisualAssetRecord, image_bytes: bytes, parameters: dict) -> tuple[dict, float, list[dict]]:
payload = await self.provider.extract(image_bytes, parameters.get("region"))
confidence = min([line.get("confidence", 0.0) for line in payload.get("lines", [])] or [0.0])
provenance = [
{
"asset_id": asset.id,
"bbox": line.get("bbox"),
"extraction_method": self.name,
"confidence": line.get("confidence", confidence),
"lens_version": self.version,
}
for line in payload.get("lines", [])
]
return payload, confidence, provenance