methodya commited on
Commit
c43abb5
·
verified ·
1 Parent(s): 903e037

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +51 -0
app.py ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
3
+ import torch
4
+
5
+ # تحميل النموذج والتوكينايزر
6
+ model_name = "methodya/arabic-summarizer-philosophy-v2"
7
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
8
+ model = AutoModelForSeq2SeqLM.from_pretrained(model_name)
9
+
10
+ # التأكد من استخدام GPU إذا كان متوفراً
11
+ device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
12
+ model = model.to(device)
13
+ model.eval()
14
+
15
+ def summarize(text):
16
+ # التأكد من أن النص ليس فارغاً
17
+ if not text.strip():
18
+ return "الرجاء إدخال نص للتلخيص"
19
+
20
+ # تحضير المدخلات
21
+ inputs = tokenizer(text, return_tensors="pt", max_length=2048, padding=True, truncation=True)
22
+ inputs = {k: v.to(device) for k, v in inputs.items()}
23
+
24
+ # توليد الملخص
25
+ with torch.no_grad():
26
+ outputs = model.generate(
27
+ **inputs,
28
+ max_length=512,
29
+ min_length=30,
30
+ num_beams=4,
31
+ length_penalty=2.0,
32
+ no_repeat_ngram_size=3
33
+ )
34
+
35
+ # فك ترميز الملخص
36
+ summary = tokenizer.decode(outputs[0], skip_special_tokens=True)
37
+ return summary
38
+
39
+ # تعريف واجهة gradio
40
+ iface = gr.Interface(
41
+ fn=summarize,
42
+ inputs=gr.Textbox(label="النص", placeholder="أدخل النص العربي هنا..."),
43
+ outputs=gr.Textbox(label="الملخص"),
44
+ title="نظام تلخيص النصوص الفلسفية العربية",
45
+ description="نموذج لتلخيص النصوص الفلسفية باللغة العربية",
46
+ submit_btn="تلخيص",
47
+ clear_btn="مسح"
48
+ )
49
+
50
+ # تشغيل التطبيق
51
+ iface.launch()