from fastapi import FastAPI from src.encoder import FashionCLIPEncoder from src.models import TextRequest, ImageRequest, Response encoder = FashionCLIPEncoder(normalize=True) app = FastAPI() @app.get("/") async def root(): return { "status": "ok", "message": "FashionCLIP API is running", "endpoints": { "encode_texts": "POST /encode_texts - Get embeddings for text inputs", "encode_images": "POST /encode_images - Get embeddings for image inputs", }, } @app.post("/encode_texts") async def encode_texts( request: TextRequest, ) -> Response: embeddings = encoder.encode_text(request.texts) response = Response(embeddings=embeddings) return response @app.post("/encode_images") async def encode_images( request: ImageRequest, ) -> Response: images = request.download() embeddings = encoder.encode_images(images) response = Response(embeddings=embeddings) return response