mostafasmart commited on
Commit
1901268
·
1 Parent(s): cfef266

mostafa add notifction API3

Browse files
Files changed (2) hide show
  1. app.py +34 -14
  2. requirements.txt +2 -0
app.py CHANGED
@@ -1,6 +1,8 @@
1
- import gradio as gr
2
  from PIL import Image
3
  import numpy as np
 
 
4
 
5
  from transformers import AutoFeatureExtractor,AutoModelForImageClassification,pipeline
6
 
@@ -15,24 +17,42 @@ feature_extractor = AutoFeatureExtractor.from_pretrained(model_id)
15
 
16
  clsss = pipeline('image-classification',model=model2,feature_extractor=feature_extractor)
17
 
18
- def predict(image):
19
- yl = clsss(image)
20
- max_item = max(yl, key=lambda x: x['score'])
21
- nn = "{:f}".format(max_item['score'])
22
- dd = max_item['label']
23
- nn,dd
24
- return f"dissesse: {dd} , score : {nn}"
25
-
26
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
  iface = gr.Interface(
28
  fn=predict,
29
- inputs=gr.inputs.Image(type="pil", label="ارفع صورتك"),
30
  outputs="text",
31
  title="نموذج ViT لتصنيف الصور",
32
- description="قم برفع صورة للحصول على تصنيف باستخدام نموذج ViT المدرب."
33
  )
34
 
35
-
36
  iface.launch()
37
 
38
-
 
1
+ import gradio as gr
2
  from PIL import Image
3
  import numpy as np
4
+ import requests
5
+ from io import BytesIO
6
 
7
  from transformers import AutoFeatureExtractor,AutoModelForImageClassification,pipeline
8
 
 
17
 
18
  clsss = pipeline('image-classification',model=model2,feature_extractor=feature_extractor)
19
 
20
+ def predict(image_url):
21
+ try:
22
+ # التحقق من صحة الرابط وتحميل الصورة
23
+ response = requests.get(image_url, timeout=10)
24
+ response.raise_for_status() # سيقوم برفع استثناء إذا كان الطلب غير ناجح
25
+
26
+ # التحقق من نوع المحتوى
27
+ content_type = response.headers.get('Content-Type')
28
+ if not content_type or not content_type.startswith('image'):
29
+ return "الرابط المقدم لا يشير إلى صورة صالحة."
30
+
31
+ # تحميل الصورة من الرابط
32
+ image = Image.open(BytesIO(response.content)).convert("RGB")
33
+
34
+ yl = clsss(image)
35
+ max_item = max(yl, key=lambda x: x['score'])
36
+ nn = "{:.2f}".format(max_item['score']) # تنسيق الدقة ليكون مقروءًا بشكل أفضل
37
+ dd = max_item['label']
38
+ return f"التصنيف المتوقع: {dd}, الدقة: {nn}"
39
+
40
+ except requests.exceptions.RequestException as e:
41
+ return f"خطأ في تحميل الصورة من الرابط المقدم: {e}"
42
+ except UnidentifiedImageError:
43
+ return "لا يمكن تحديد نوع الصورة من الرابط المقدم."
44
+ except Exception as e:
45
+ return f"حدث خطأ أثناء معالجة الصورة: {e}"
46
+
47
+ # إنشاء واجهة Gradio
48
  iface = gr.Interface(
49
  fn=predict,
50
+ inputs=gr.inputs.Textbox(lines=2, placeholder="أدخل رابط الصورة هنا...", label="رابط الصورة"),
51
  outputs="text",
52
  title="نموذج ViT لتصنيف الصور",
53
+ description="أدخل رابط صورة للحصول على تصنيف باستخدام نموذج ViT المدرب."
54
  )
55
 
56
+ # تشغيل الواجهة
57
  iface.launch()
58
 
 
requirements.txt CHANGED
@@ -1,5 +1,7 @@
1
  gradio
2
  Pillow
 
 
3
  numpy
4
  transformers==4.44.2
5
  tensorflow==2.17.0
 
1
  gradio
2
  Pillow
3
+ io
4
+ requests
5
  numpy
6
  transformers==4.44.2
7
  tensorflow==2.17.0