methodya commited on
Commit
9c42bf9
·
verified ·
1 Parent(s): b3a7735

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(
14
+ model_name,
15
+ torch_dtype=torch.float16, # استخدام الدقة النصفية لتسريع الأداء
16
+ low_cpu_mem_usage=True # تحسين استخدام الذاكرة
17
+ )
18
+
19
+ device = 'cuda' if torch.cuda.is_available() else 'cpu'
20
+ model = model.to(device)
21
+
22
+ def generate_summary(text):
23
+ prompt = f"""لخص النص التالي في فقرة مع استخدام كلمات الربط المناسبة، ثم اكتب النقاط المهمة:
24
+
25
+ النص:
26
+ {text}
27
+
28
+ التلخيص:"""
29
+
30
+ inputs = tokenizer(
31
+ prompt,
32
+ return_tensors="pt",
33
+ padding=True,
34
+ truncation=True,
35
+ max_length=512 # تحديد طول المدخلات
36
+ ).to(device)
37
+
38
+ # تحسين إعدادات التوليد
39
+ outputs = model.generate(
40
+ **inputs,
41
+ max_length=512, # تقليل الطول الأقصى
42
+ temperature=0.5, # تقليل العشوائية
43
+ top_k=20, # تقليل نطاق الاختيارات
44
+ top_p=0.9,
45
+ num_return_sequences=1,
46
+ pad_token_id=tokenizer.eos_token_id,
47
+ do_sample=True,
48
+ no_repeat_ngram_size=2 # منع التكرار
49
+ )
50
+
51
+ return tokenizer.decode(outputs[0], skip_special_tokens=True)
52
+
53
+ css = """
54
+ .rtl-text { direction: rtl; text-align: right; }
55
+ .container { max-width: 800px; margin: auto; }
56
+ """
57
+
58
+ # واجهة مبسطة وسريعة
59
+ interface = gr.Interface(
60
+ fn=generate_summary,
61
+ inputs=gr.Textbox(
62
+ label="النص المراد تلخيصه",
63
+ lines=8,
64
+ placeholder="أدخل النص هنا...",
65
+ elem_classes="rtl-text"
66
+ ),
67
+ outputs=gr.Textbox(
68
+ label="الملخص",
69
+ lines=8,
70
+ elem_classes="rtl-text"
71
+ ),
72
+ title="ملخص النصوص العربية",
73
+ theme=gr.themes.Soft(),
74
+ css=css,
75
+ examples=[["الذكاء الاصطناعي تقنية ثورية تغير العالم وتستخدم في مجالات متعددة كالطب والتعليم والصناعة، مما يسهم في تحسين حياة البشر وحل المشكلات المعقدة."]]
76
+ )
77
+
78
+ interface.launch()