methodya commited on
Commit
a3fff9e
·
verified ·
1 Parent(s): 6fe3590

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +78 -0
app.py ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from transformers import AutoTokenizer, AutoModelForCausalLM
3
+ import torch
4
+ import os
5
+ from huggingface_hub import login
6
+
7
+ # تسجيل الدخول
8
+ login(token=os.environ.get('HUGGING_FACE_HUB_TOKEN'))
9
+
10
+ # تهيئة النموذج
11
+ model_name = "google/gemma-2b-it"
12
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
13
+ model = AutoModelForCausalLM.from_pretrained(model_name)
14
+
15
+ device = 'cuda' if torch.cuda.is_available() else 'cpu'
16
+ model = model.to(device)
17
+
18
+ def generate_summary(text):
19
+ prompt = f"""أنت مختص في تلخيص النصوص الفلسفية. قم بتلخيص النص التالي:
20
+
21
+ النص: {text}
22
+
23
+ يجب أن يتضمن التلخيص:
24
+ 1. فقرة موجزة تشرح جوهر الفكرة (3-4 أسطر كحد أقصى)
25
+ 2. ثلاث نقاط رئيسية مستخلصة من النص
26
+ 3. ذكر الشخصيات الرئيسية وأدوارهم في النص
27
+
28
+ نسق الإجابة كالتالي:
29
+
30
+ الفكرة الرئيسية:
31
+ [اكتب هنا الفقرة]
32
+
33
+ النقاط الأساسية:
34
+ 1. [النقطة الأولى]
35
+ 2. [النقطة الثانية]
36
+ 3. [النقطة الثالثة]
37
+
38
+ الشخصيات المحورية:
39
+ - [اسم الشخصية]: [دورها]
40
+ """
41
+
42
+ inputs = tokenizer(prompt, return_tensors="pt").to(device)
43
+ outputs = model.generate(
44
+ **inputs,
45
+ max_length=512,
46
+ temperature=0.2, # خفض الحرارة للحصول على إجابات أكثر تماسكاً
47
+ do_sample=False # إيقاف العشوائية للحصول على إجابات محددة
48
+ )
49
+
50
+ return tokenizer.decode(outputs[0], skip_special_tokens=True)
51
+
52
+ css = """
53
+ .rtl-text {
54
+ direction: rtl;
55
+ text-align: right;
56
+ font-family: Arial, sans-serif;
57
+ line-height: 1.6;
58
+ }
59
+ """
60
+
61
+ interface = gr.Interface(
62
+ fn=generate_summary,
63
+ inputs=gr.Textbox(
64
+ label="النص المراد تلخيصه",
65
+ lines=6,
66
+ elem_classes="rtl-text"
67
+ ),
68
+ outputs=gr.Textbox(
69
+ label="التلخيص",
70
+ lines=10,
71
+ elem_classes="rtl-text"
72
+ ),
73
+ title="ملخص النصوص الفلسفية",
74
+ theme=gr.themes.Soft(),
75
+ css=css
76
+ )
77
+
78
+ interface.launch()