Mazenbs commited on
Commit
445477c
·
verified ·
1 Parent(s): d039734

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -5
app.py CHANGED
@@ -1,6 +1,6 @@
1
  from fastapi import FastAPI, Query
2
  from transformers import AutoModelForImageClassification, AutoImageProcessor
3
- from PIL import Image
4
  import requests
5
  from io import BytesIO
6
  import torch
@@ -30,9 +30,15 @@ def root():
30
  @app.post("/classify")
31
  def classify_image(url: str = Query(..., description="رابط الصورة")):
32
  try:
33
- # تحميل الصورة
34
- response = requests.get(url)
35
- image = Image.open(BytesIO(response.content)).convert("RGB")
 
 
 
 
 
 
36
 
37
  # تجهيز المدخلات
38
  inputs = processor(images=image, return_tensors="pt")
@@ -45,9 +51,11 @@ def classify_image(url: str = Query(..., description="رابط الصورة")):
45
 
46
  return {
47
  "url": url,
48
- "predicted_class": model.config.id2label[predicted_class],
49
  "scores": logits.softmax(-1).tolist()
50
  }
51
 
 
 
52
  except Exception as e:
53
  return {"error": str(e)}
 
1
  from fastapi import FastAPI, Query
2
  from transformers import AutoModelForImageClassification, AutoImageProcessor
3
+ from PIL import Image, UnidentifiedImageError
4
  import requests
5
  from io import BytesIO
6
  import torch
 
30
  @app.post("/classify")
31
  def classify_image(url: str = Query(..., description="رابط الصورة")):
32
  try:
33
+ # تحميل الصورة مع timeout ومع التحقق
34
+ response = requests.get(url, timeout=10, stream=True)
35
+ response.raise_for_status() # رفع استثناء لو كان الرابط غير صالح
36
+
37
+ # قراءة الصورة
38
+ try:
39
+ image = Image.open(BytesIO(response.content)).convert("RGB")
40
+ except UnidentifiedImageError:
41
+ return {"error": "الرابط لا يحتوي على صورة صالحة"}
42
 
43
  # تجهيز المدخلات
44
  inputs = processor(images=image, return_tensors="pt")
 
51
 
52
  return {
53
  "url": url,
54
+ "predicted_class": model.config.id2label.get(predicted_class, "Unknown"),
55
  "scores": logits.softmax(-1).tolist()
56
  }
57
 
58
+ except requests.exceptions.RequestException as e:
59
+ return {"error": f"تعذر الوصول إلى الرابط: {e}"}
60
  except Exception as e:
61
  return {"error": str(e)}