methodya commited on
Commit
d4cb9a4
·
verified ·
1 Parent(s): e557495

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +71 -0
app.py ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ device = 'cuda' if torch.cuda.is_available() else 'cpu'
15
+ model = model.to(device)
16
+
17
+ def summarize(text, max_length=150, num_beams=7, length_penalty=0.8):
18
+ prompt = f"""لخص النص التالي مع التركيز على المفاهيم الفلسفية الأساسية:
19
+
20
+ النص:
21
+ {text}
22
+
23
+ قدم التلخيص بالشكل التالي:
24
+ 1- الفكرة المحورية (باختصار)
25
+ 2- المفاهيم الرئيسية
26
+ 3- العلاقات بين الشخصيات والأفكار
27
+ """
28
+
29
+ inputs = tokenizer(
30
+ prompt,
31
+ return_tensors="pt",
32
+ max_length=2048,
33
+ truncation=True
34
+ ).to(device)
35
+
36
+ outputs = model.generate(
37
+ **inputs,
38
+ max_length=max_length,
39
+ num_beams=num_beams,
40
+ length_penalty=length_penalty,
41
+ early_stopping=True
42
+ )
43
+
44
+ return tokenizer.decode(outputs[0], skip_special_tokens=True)
45
+
46
+ # CSS لتحسين المظهر
47
+ css = """
48
+ .gradio-container {background: #f9fafb !important}
49
+ .rtl-text {
50
+ direction: rtl;
51
+ text-align: right;
52
+ font-family: Arial, sans-serif;
53
+ line-height: 1.6;
54
+ }
55
+ """
56
+
57
+ interface = gr.Interface(
58
+ fn=summarize,
59
+ inputs=[
60
+ gr.Textbox(lines=8, label="النص", elem_classes="rtl-text"),
61
+ gr.Slider(50, 250, value=150, label="طول الملخص"),
62
+ gr.Slider(1, 10, value=7, step=1, label="دقة التلخيص (num_beams)"),
63
+ gr.Slider(0.1, 2.0, value=0.8, step=0.1, label="معامل الطول")
64
+ ],
65
+ outputs=gr.Textbox(label="الملخص", elem_classes="rtl-text"),
66
+ title="ملخص النصوص الفلسفية",
67
+ theme=gr.themes.Soft(),
68
+ css=css
69
+ )
70
+
71
+ interface.launch()