wassemgtk's picture
Add gateway API source for one-click deployment
092fd7d verified
Raw
History Blame Contribute Delete
1.05 kB
from __future__ import annotations
from app.schemas.chart_ir import Axis, ChartIR, ChartSeries
from app.storage.models import VisualAssetRecord
from .base import Lens
class ChartLens(Lens):
name = "chart_ir"
view_type = "chart_ir"
async def execute(self, asset: VisualAssetRecord, image_bytes: bytes, parameters: dict) -> tuple[dict, float, list[dict]]:
ir = ChartIR(
chart_type="bar",
title="Extracted Chart",
plot_bbox=(0.1, 0.1, 0.9, 0.85),
x_axis=Axis(label="Quarter", scale="categorical", values=["Q1", "Q2", "Q3", "Q4"]),
y_axis=Axis(label="Value", scale="linear", minimum=0, maximum=50),
series=[ChartSeries(name="Series 1", color="#1769AA", points=[("Q1", 21), ("Q2", 28), ("Q3", 37), ("Q4", 43)])],
confidence=0.74,
)
provenance = [{"asset_id": asset.id, "bbox": [0.1, 0.1, 0.9, 0.85], "extraction_method": self.name, "confidence": 0.74, "lens_version": self.version}]
return ir.model_dump(), 0.74, provenance