from enum import Enum from pydantic import BaseModel def to_lower_camel(string: str) -> str: tokens = [token.capitalize() if i > 0 else token for i, token in enumerate(string.split("_"))] return "".join(tokens) class TextModelRequest(BaseModel): text: str class TextResponse(BaseModel): __root__: str class MessageResponse(BaseModel): message: str class TagResponse(BaseModel): __root__: list[str] class Embedding(BaseModel): __root__: list[float] class EmbeddingResponse(BaseModel): __root__: Embedding class BoundingBox(BaseModel): x1: int y1: int x2: int y2: int class Face(BaseModel): image_width: int image_height: int bounding_box: BoundingBox score: float embedding: Embedding class Config: alias_generator = to_lower_camel allow_population_by_field_name = True class FaceResponse(BaseModel): __root__: list[Face] class ModelType(Enum): IMAGE_CLASSIFICATION = "image-classification" CLIP = "clip" FACIAL_RECOGNITION = "facial-recognition"