File size: 791 Bytes
68f48a7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from __future__ import annotations

from typing import List
from pydantic import BaseModel, Field, ConfigDict


class ClassifyRequest(BaseModel):
    model_config = ConfigDict(extra="forbid")
    image_base64: str = Field(..., description="Base64-encoded image bytes (jpg/png/webp).")
    domain_top_n: int = Field(default=2, ge=1, le=3)
    top_k: int = Field(default=5, ge=1, le=20)


class Hit(BaseModel):
    model_config = ConfigDict(extra="forbid")
    id: str
    score: float


class ClassifyResponse(BaseModel):
    model_config = ConfigDict(extra="forbid", protected_namespaces=())
    label_set_hash: str
    model_id: str
    domain_hits: List[Hit]
    chosen_domains: List[str]
    label_hits: List[Hit]
    elapsed_ms: int
    elapsed_domain_ms: int
    elapsed_labels_ms: int