schemas.py 1.1 KB

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