Extraction_validate / schemas.py
Monike123's picture
Deploy DocVerify FastAPI backend (EasyOCR + Gemini 3 Flash)
0e39d80
Raw
History Blame Contribute Delete
2.03 kB
from typing import Any
from pydantic import BaseModel, Field
class UploadResponse(BaseModel):
doc_id: str
doc_type: str
class AnalyzeResponse(BaseModel):
doc_id: str
doc_type: str
confidence_score: float
flags: list[str]
extracted_fields: dict[str, Any]
status: str
text_source: str | None = None
score_breakdown: dict[str, float] | None = None
full_text: str | None = None
ocr_confidence: float | None = None
ai_powered: bool | None = None
forgery_score: float | None = None
forgery_reason: str | None = None
ai_confidence: float | None = None
class StatusResponse(BaseModel):
doc_id: str
doc_type: str
status: str
confidence_score: float | None
flags: list[str]
extracted_fields: dict[str, Any]
text_source: str | None = None
verification_status: str | None = None
masked_image_path: str | None = None
created_at: str | None = None
score_breakdown: dict[str, float] | None = None
full_text: str | None = None
ocr_confidence: float | None = None
reviewer_notes: str | None = None
reviewed_by: str | None = None
original_filename: str | None = None
ai_powered: bool | None = None
forgery_score: float | None = None
forgery_reason: str | None = None
ai_confidence: float | None = None
class ManualReviewRequest(BaseModel):
action: str = Field(..., pattern="^(approve|reject|request_reupload)$")
notes: str | None = None
reviewer_name: str | None = None
edited_fields: dict[str, Any] | None = None
class VerifyExperienceResponse(BaseModel):
doc_id: str
verification_status: str
flags: list[str]
demo_mode: bool = False
class GovVerifyResponse(BaseModel):
verified: bool
message: str
class StatsResponse(BaseModel):
total: int
verified: int
pending_review: int
rejected: int
pending: int
avg_confidence: float
avg_ocr_accuracy: float
by_doc_type: dict[str, int]
recent_uploads: list[StatusResponse]