25 lines
980 B
Python
25 lines
980 B
Python
"""天目 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 路径")
|