"""天目 OCR 响应模型(Pydantic 版,供 API 路由使用)。""" from __future__ import annotations from pydantic import BaseModel, Field class OCRBlockSchema(BaseModel): """单行识别结果(Pydantic 版)。""" text: str = Field(description="识别文字") confidence: float = Field(description="置信度 0~1", ge=0, le=1) bbox: list[list[float]] = Field(default_factory=list, description="文本框坐标") class OCRResultSchema(BaseModel): """统一 OCR 响应模型。""" engine: str = Field(description="实际使用的引擎") text: str = Field(default="", description="识别文本") blocks: list[OCRBlockSchema] = Field(default_factory=list, description="逐块结果") duration_ms: float = Field(default=0, description="推理耗时(毫秒)") error: str | None = Field(default=None, description="错误信息") saved_md_path: str | None = Field(default=None, description="保存的 Markdown 路径")