Spylif/FastAPI-Vector-Model
0
1from fastapi import FastAPI, Request2from pydantic import BaseModel3from transformers import CLIPProcessor, CLIPModel4from PIL import Image5import torch6import requests7from io import BytesIO8 9app = FastAPI()10 11# use TensorFlow format -- Akash 22 april 2512model = CLIPModel.from_pretrained("laion/CLIP-ViT-B-32-laion2B-s34B-b79K")13processor = CLIPProcessor.from_pretrained("laion/CLIP-ViT-B-32-laion2B-s34B-b79K")14 15 16class ImageInput(BaseModel):17 image_url: str18 19@app.post("/vector")20def vectorize_image(data: ImageInput):21 try:22 response = requests.get(data.image_url)23 image = Image.open(BytesIO(response.content)).convert("RGB")24 25 inputs = processor(images=image, return_tensors="pt")26 with torch.no_grad():27 features = model.get_image_features(**inputs)28 29 return {"vector": features[0].tolist()}30 except Exception as e:31 return {"error": str(e)}32 