schemas.py 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. from enum import Enum
  2. from pydantic import BaseModel
  3. def to_lower_camel(string: str) -> str:
  4. tokens = [token.capitalize() if i > 0 else token for i, token in enumerate(string.split("_"))]
  5. return "".join(tokens)
  6. class TextModelRequest(BaseModel):
  7. text: str
  8. class TextResponse(BaseModel):
  9. __root__: str
  10. class MessageResponse(BaseModel):
  11. message: str
  12. class TagResponse(BaseModel):
  13. __root__: list[str]
  14. class Embedding(BaseModel):
  15. __root__: list[float]
  16. class EmbeddingResponse(BaseModel):
  17. __root__: Embedding
  18. class BoundingBox(BaseModel):
  19. x1: int
  20. y1: int
  21. x2: int
  22. y2: int
  23. class Face(BaseModel):
  24. image_width: int
  25. image_height: int
  26. bounding_box: BoundingBox
  27. score: float
  28. embedding: Embedding
  29. class Config:
  30. alias_generator = to_lower_camel
  31. allow_population_by_field_name = True
  32. class FaceResponse(BaseModel):
  33. __root__: list[Face]
  34. class ModelType(Enum):
  35. IMAGE_CLASSIFICATION = "image-classification"
  36. CLIP = "clip"
  37. FACIAL_RECOGNITION = "facial-recognition"