| |
| |
| """ |
| @Author : Ailove |
| ------------------------------------ |
| @File : services.py |
| @CreateTime : 2025/5/22 20:37 |
| ------------------------------------ |
| """ |
| from utils import readimg, is_bottom_third_blank, detect_features, get_embedding, get_cos_similar |
|
|
| def analyze_image(body): |
| inputs = readimg(body, keys=['url']) |
| img = list(inputs.values())[0] |
| if img is None: |
| raise ValueError("Image not found or invalid.") |
| result = { |
| "embedding": get_embedding(img).round(6).tolist(), |
| "blank": bool(is_bottom_third_blank(img)), |
| "features": detect_features(img) |
| } |
| return result |
|
|
|
|
| def compare_images(body): |
| print(body) |
| keys = ["img_1", "url_1", "img_2", "url_2"] |
| inputs = readimg(body, keys=[k for k in keys if k in body]) |
| img1, img2 = inputs.get("img_1") or inputs.get("url_1"), inputs.get("img_2") or inputs.get("url_2") |
| if not img1 or not img2: |
| raise ValueError("Both images must be provided.") |
| emb1 = get_embedding(img1) |
| emb2 = get_embedding(img2) |
| sim = get_cos_similar(emb1, emb2) |
| return {"similarity": float(round(sim, 6))} |
|
|