| from transformers import CLIPModel, CLIPProcessor | |
| import torch | |
| import numpy as np | |
| device = "cuda" if torch.cuda.is_available() else "cpu" | |
| model = CLIPModel.from_pretrained(".").to(device) | |
| processor = CLIPProcessor.from_pretrained(".") | |
| def inference(inputs): | |
| text = inputs.get("text", None) | |
| if text: | |
| processed = processor(text=[text], return_tensors="pt", truncation=True).to(device) | |
| with torch.no_grad(): | |
| emb = model.get_text_features(**processed) | |
| emb = torch.nn.functional.normalize(emb, dim=-1) | |
| return emb.cpu().numpy().tolist() | |
| return {"error": "No valid input provided"} |