Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
File size: 1,056 Bytes
f6627f1 |
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 32 33 34 35 36 37 38 39 40 41 |
from pydantic import BaseModel, validator
from typing import List
from PIL.Image import Image
from .utils import download_image_as_pil
BATCH_SIZE_TEXT: int = 128
BATCH_SIZE_IMAGE: int = 64
class TextRequest(BaseModel):
texts: List[str]
@validator("texts")
def validate_texts_batch_size(cls, v):
if len(v) > BATCH_SIZE_TEXT:
raise ValueError(f"Maximum batch size for texts is {BATCH_SIZE_TEXT}")
if len(v) == 0:
raise ValueError("At least one text is required")
return v
class ImageRequest(BaseModel):
urls: List[str]
@validator("urls")
def validate_images_batch_size(cls, v):
if len(v) > BATCH_SIZE_IMAGE:
raise ValueError(f"Maximum batch size for images is {BATCH_SIZE_IMAGE}")
if len(v) == 0:
raise ValueError("At least one image URL is required")
return v
def download(self) -> List[Image]:
return [download_image_as_pil(url) for url in self.urls]
class Response(BaseModel):
embeddings: List[List[float]]
|