Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -980,41 +980,7 @@ with gr.Blocks(title="تشخيص OED — PLIP",
|
|
| 980 |
)
|
| 981 |
|
| 982 |
with gr.Tabs() as tabs:
|
| 983 |
-
# ---------- Tab 1:
|
| 984 |
-
with gr.Tab("🔬 تصنيف ضمن الفئات الأربع"):
|
| 985 |
-
with gr.Row(equal_height=False):
|
| 986 |
-
with gr.Column(scale=1, min_width=300):
|
| 987 |
-
prompt_input = gr.Textbox(
|
| 988 |
-
label="📝 برومبت الفئات (وصف كل فئة في سطر)",
|
| 989 |
-
value=DEFAULT_PROMPT,
|
| 990 |
-
lines=6,
|
| 991 |
-
placeholder=(
|
| 992 |
-
"اكتب كل فئة في سطر منفصل، أو اترك "
|
| 993 |
-
"الافتراضي للفئات الأربع للدراسة."
|
| 994 |
-
),
|
| 995 |
-
)
|
| 996 |
-
gr.HTML(
|
| 997 |
-
"<div class='prompt-hint'>"
|
| 998 |
-
"💡 يستخدم هذا الوضع نموذج PLIP المتخصص بالباثولوجيا "
|
| 999 |
-
"ويعطي نسبة تشابه لكل فئة. البرومبت بالإنجليزية يعطي "
|
| 1000 |
-
"أفضل نتائج."
|
| 1001 |
-
"</div>"
|
| 1002 |
-
)
|
| 1003 |
-
|
| 1004 |
-
diagnose_btn = gr.Button(
|
| 1005 |
-
"🔍 شخّص الصورة",
|
| 1006 |
-
variant="primary",
|
| 1007 |
-
size="lg",
|
| 1008 |
-
)
|
| 1009 |
-
|
| 1010 |
-
with gr.Column(scale=1, min_width=300):
|
| 1011 |
-
summary_output = gr.HTML(value=INITIAL_RESULT_HTML)
|
| 1012 |
-
plot_output = gr.Plot(
|
| 1013 |
-
label="📊 نسبة التشابه لكل فئة",
|
| 1014 |
-
show_label=True,
|
| 1015 |
-
)
|
| 1016 |
-
|
| 1017 |
-
# ---------- Tab 2: Q&A (HF Inference API) ----------
|
| 1018 |
with gr.Tab("💬 سؤال وجواب حر"):
|
| 1019 |
with gr.Row(equal_height=False):
|
| 1020 |
with gr.Column(scale=1, min_width=300):
|
|
@@ -1032,8 +998,8 @@ with gr.Blocks(title="تشخيص OED — PLIP",
|
|
| 1032 |
gr.HTML(
|
| 1033 |
"<div class='prompt-hint'>"
|
| 1034 |
"💡 يستخدم هذا الوضع نموذج <strong>"
|
| 1035 |
-
"Google Gemini 2.
|
| 1036 |
-
"
|
| 1037 |
"الأسئلة بالإنجليزية تعطي نتائج أدق."
|
| 1038 |
"</div>"
|
| 1039 |
)
|
|
@@ -1055,6 +1021,40 @@ with gr.Blocks(title="تشخيص OED — PLIP",
|
|
| 1055 |
"</div>"
|
| 1056 |
))
|
| 1057 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1058 |
# =================== EVENTS ===================
|
| 1059 |
SAVE_AUTH_JS = """
|
| 1060 |
(signal) => {
|
|
|
|
| 980 |
)
|
| 981 |
|
| 982 |
with gr.Tabs() as tabs:
|
| 983 |
+
# ---------- Tab 1: Q&A (DEFAULT — Gemini API) ----------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 984 |
with gr.Tab("💬 سؤال وجواب حر"):
|
| 985 |
with gr.Row(equal_height=False):
|
| 986 |
with gr.Column(scale=1, min_width=300):
|
|
|
|
| 998 |
gr.HTML(
|
| 999 |
"<div class='prompt-hint'>"
|
| 1000 |
"💡 يستخدم هذا الوضع نموذج <strong>"
|
| 1001 |
+
"Google Gemini 2.5 Flash</strong> (مجاني، "
|
| 1002 |
+
"حتى 1000 طلب/يوم). الإجابة تأخذ ~3-5 ثواني. "
|
| 1003 |
"الأسئلة بالإنجليزية تعطي نتائج أدق."
|
| 1004 |
"</div>"
|
| 1005 |
)
|
|
|
|
| 1021 |
"</div>"
|
| 1022 |
))
|
| 1023 |
|
| 1024 |
+
# ---------- Tab 2: Classification (PLIP) ----------
|
| 1025 |
+
with gr.Tab("🔬 تصنيف ضمن الفئات الأربع"):
|
| 1026 |
+
with gr.Row(equal_height=False):
|
| 1027 |
+
with gr.Column(scale=1, min_width=300):
|
| 1028 |
+
prompt_input = gr.Textbox(
|
| 1029 |
+
label="📝 برومبت الفئات (وصف كل فئة في سطر)",
|
| 1030 |
+
value=DEFAULT_PROMPT,
|
| 1031 |
+
lines=6,
|
| 1032 |
+
placeholder=(
|
| 1033 |
+
"اكتب كل فئة في سطر منفصل، أو اترك "
|
| 1034 |
+
"الافتراضي للفئات الأربع للدراسة."
|
| 1035 |
+
),
|
| 1036 |
+
)
|
| 1037 |
+
gr.HTML(
|
| 1038 |
+
"<div class='prompt-hint'>"
|
| 1039 |
+
"💡 يستخدم هذا الوضع نموذج PLIP المتخصص بالباثولوجيا "
|
| 1040 |
+
"ويعطي نسبة تشابه لكل فئة. البرومبت بالإنجليزية يعطي "
|
| 1041 |
+
"أفضل نتائج."
|
| 1042 |
+
"</div>"
|
| 1043 |
+
)
|
| 1044 |
+
|
| 1045 |
+
diagnose_btn = gr.Button(
|
| 1046 |
+
"🔍 شخّص الصورة",
|
| 1047 |
+
variant="primary",
|
| 1048 |
+
size="lg",
|
| 1049 |
+
)
|
| 1050 |
+
|
| 1051 |
+
with gr.Column(scale=1, min_width=300):
|
| 1052 |
+
summary_output = gr.HTML(value=INITIAL_RESULT_HTML)
|
| 1053 |
+
plot_output = gr.Plot(
|
| 1054 |
+
label="📊 نسبة التشابه لكل فئة",
|
| 1055 |
+
show_label=True,
|
| 1056 |
+
)
|
| 1057 |
+
|
| 1058 |
# =================== EVENTS ===================
|
| 1059 |
SAVE_AUTH_JS = """
|
| 1060 |
(signal) => {
|