methodya commited on
Commit
69decce
1 Parent(s): 9df51e2

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +42 -0
app.py ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
3
+
4
+ # تحميل النموذج والتوكنايزر
5
+ model_id = "methodya/arabic-summarizer-philosophy"
6
+ model = AutoModelForSeq2SeqLM.from_pretrained(model_id)
7
+ tokenizer = AutoTokenizer.from_pretrained(model_id)
8
+
9
+ # دالة التلخيص مع المعاملات الجديدة
10
+ def summarize(text, max_length=150, num_beams=7, length_penalty=0.8):
11
+ # تحويل القيم إلى النوع المناسب
12
+ max_length = int(max_length)
13
+ num_beams = int(num_beams)
14
+ length_penalty = float(length_penalty)
15
+
16
+ # تجهيز البيانات للنموذج
17
+ inputs = tokenizer(text, return_tensors="pt", max_length=1024, truncation=True)
18
+ outputs = model.generate(
19
+ **inputs,
20
+ max_length=max_length,
21
+ num_beams=num_beams,
22
+ length_penalty=length_penalty,
23
+ early_stopping=True
24
+ )
25
+ return tokenizer.decode(outputs[0], skip_special_tokens=True)
26
+
27
+ # إعداد واجهة Gradio
28
+ interface = gr.Interface(
29
+ fn=summarize,
30
+ inputs=[
31
+ gr.Textbox(lines=8, label="النص"), # النص الأصلي
32
+ gr.Slider(50, 250, value=150, label="طول الملخص"), # max_length
33
+ gr.Slider(1, 10, value=7, step=1, label="دقة التلخيص (num_beams)"), # num_beams
34
+ gr.Slider(0.1, 2.0, value=0.8, step=0.1, label="معامل الطول (length_penalty)") # length_penalty
35
+ ],
36
+ outputs=gr.Textbox(label="الملخص"), # النص الملخص
37
+ title="ملخص النصوص الفلسفية",
38
+ description="نموذج لتلخيص النصوص الفلسفية باللغة العربية مع إعدادات متقدمة"
39
+ )
40
+
41
+ # تشغيل التطبيق
42
+ interface.launch()