File size: 834 Bytes
5dab1e8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from typing import Any

from pydantic import BaseModel, Field


class AnalyzeResponse(BaseModel):
    score: float = Field(ge=0.0, le=1.0)
    verdict: str
    heatmap_b64: str
    overlay_b64: str
    model_version: str
    elapsed_ms: int
    structure_score: float | None = Field(default=None, ge=0.0, le=1.0)
    context_score: float | None = Field(default=None, ge=0.0, le=1.0)
    detail_score: float | None = Field(default=None, ge=0.0, le=1.0)
    source: str | None = None
    threshold: float | None = None
    reason: str | None = None
    model_scores: list[dict[str, Any]] = Field(default_factory=list)
    provenance: dict[str, Any] | None = None
    ensemble: dict[str, Any] | None = None


class VersionResponse(BaseModel):
    model_version: str
    model_path: str


class HealthResponse(BaseModel):
    status: str