methodya commited on
Commit
157800f
·
verified ·
1 Parent(s): 48e59c1

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +43 -16
app.py CHANGED
@@ -1,56 +1,83 @@
1
  import gradio as gr
2
  from transformers import AutoTokenizer, AutoModelForCausalLM
3
  import torch
 
 
4
 
5
- # تهيئة النموذج
 
 
 
6
  model_name = "google/gemma-2b-it"
7
  tokenizer = AutoTokenizer.from_pretrained(model_name)
8
  model = AutoModelForCausalLM.from_pretrained(model_name)
9
 
10
- if torch.cuda.is_available():
11
- model = model.to('cuda')
 
12
 
13
  def generate_summary(text):
 
14
  prompt = f"""قم بتلخيص النص التالي بطريقتين:
15
- 1. ملخص مترابط: اكتب فقرة واحدة مترابطة باستخدام كلمات الربط المناسبة
16
- 2. نقاط رئيسية: اكتب النقاط الرئيسية مسبوقة بـ "**ــ**"
17
 
 
 
 
 
18
  قواعد التلخيص:
19
  - تقليل 8 كلمات من كل فقرة
20
  - الحفاظ على المعنى الأساسي والسياق
 
21
  - التلخيص بأسلوب علمي وواضح
22
-
23
  النص الأصلي:
24
  {text}
25
  """
26
 
27
- inputs = tokenizer(prompt, return_tensors="pt")
28
- if torch.cuda.is_available():
29
- inputs = inputs.to('cuda')
30
 
 
31
  outputs = model.generate(
32
  **inputs,
33
  max_length=1024,
34
  temperature=0.7,
35
  top_k=50,
36
  top_p=0.95,
37
- num_return_sequences=1
 
38
  )
39
 
 
40
  summary = tokenizer.decode(outputs[0], skip_special_tokens=True)
41
  return summary
42
 
43
- # إنشاء واجهة Gradio
44
  interface = gr.Interface(
45
  fn=generate_summary,
46
- inputs=gr.Textbox(label="أدخل النص المراد تلخيصه", lines=10, dir="rtl"),
47
- outputs=gr.Textbox(label="الملخص", lines=10, dir="rtl"),
48
- title="خدمة تلخيص النصوص العربية",
49
- description="يقوم هذا النموذج بتلخيص النصوص العربية مع الحفاظ على المعنى الأساسي",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50
  examples=[
51
- ["قم بإضافة نص مثال هنا للتجربة السريعة"]
52
  ],
53
  theme=gr.themes.Soft()
54
  )
55
 
 
56
  interface.launch()
 
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
+ # نقل النموذج إلى GPU إذا كان متاحاً
16
+ device = 'cuda' if torch.cuda.is_available() else 'cpu'
17
+ model = model.to(device)
18
 
19
  def generate_summary(text):
20
+ # إعداد البرومبت
21
  prompt = f"""قم بتلخيص النص التالي بطريقتين:
 
 
22
 
23
+ 1. ملخص مترابط: اكتب فقرة واحدة مترابطة باستخدام كلمات الربط المناسبة مثل (كما، علاوة على ذلك، إضافة إلى ذلك، ولقد، وعليه، ومن ثم...)
24
+
25
+ 2. نقاط رئيسية: اكتب النقاط الرئيسية مسبوقة بـ "**ــ**"
26
+
27
  قواعد التلخيص:
28
  - تقليل 8 كلمات من كل فقرة
29
  - الحفاظ على المعنى الأساسي والسياق
30
+ - الحفاظ على المصطلحات الفلسفية المهمة
31
  - التلخيص بأسلوب علمي وواضح
32
+
33
  النص الأصلي:
34
  {text}
35
  """
36
 
37
+ # تحويل النص إلى توكنز
38
+ inputs = tokenizer(prompt, return_tensors="pt").to(device)
 
39
 
40
+ # توليد النص
41
  outputs = model.generate(
42
  **inputs,
43
  max_length=1024,
44
  temperature=0.7,
45
  top_k=50,
46
  top_p=0.95,
47
+ num_return_sequences=1,
48
+ pad_token_id=tokenizer.eos_token_id
49
  )
50
 
51
+ # تحويل التوكنز إلى نص
52
  summary = tokenizer.decode(outputs[0], skip_special_tokens=True)
53
  return summary
54
 
55
+ # إنشاء واجهة gradio
56
  interface = gr.Interface(
57
  fn=generate_summary,
58
+ inputs=gr.Textbox(
59
+ label="أدخل النص المراد تلخيصه",
60
+ lines=10,
61
+ placeholder="ضع النص هنا...",
62
+ dir="rtl"
63
+ ),
64
+ outputs=gr.Textbox(
65
+ label="الملخص",
66
+ lines=10,
67
+ dir="rtl"
68
+ ),
69
+ title="خدمة تلخيص النصوص العربية باستخدام Gemma-2B",
70
+ description="""
71
+ هذه الخدمة تقوم بتلخيص النصوص العربية مع:
72
+ - الحفاظ على المعنى الأساسي
73
+ - استخدام كلمات ربط مناسبة
74
+ - تقديم نقاط رئيسية
75
+ """,
76
  examples=[
77
+ ["يعتبر الذكاء الاصطناعي من أهم التقنيات الحديثة التي غيرت وجه العالم. فهو يستخدم في مجالات عديدة مثل الطب والتعليم والصناعة. كما أنه يساعد في حل المشكلات المعقدة وتحسين جودة الحياة."]
78
  ],
79
  theme=gr.themes.Soft()
80
  )
81
 
82
+ # تشغيل الواجهة
83
  interface.launch()