methodya commited on
Commit
3620540
·
verified ·
1 Parent(s): 6260ef3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +46 -12
app.py CHANGED
@@ -2,19 +2,53 @@ import gradio as gr
2
  from transformers import AutoTokenizer, AutoModelForCausalLM
3
  import torch
4
 
5
- # تحميل النموذج من Hugging Face
6
  model_id = "silma-ai/SILMA-9B-Instruct-v1.0"
7
  tokenizer = AutoTokenizer.from_pretrained(model_id)
8
- model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto", torch_dtype=torch.bfloat16)
9
 
10
- # دالة تنفيذ التلخيص
11
  def summarize(text):
12
- prompt = f"[INST] قم بتلخيص النص التالي بطريقة واضحة:\n{text} [/INST]"
13
- inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
14
- outputs = model.generate(**inputs, max_new_tokens=256)
15
- summary = tokenizer.decode(outputs[0], skip_special_tokens=True)
16
- return summary
17
-
18
- # إنشاء واجهة `Gradio`
19
- iface = gr.Interface(fn=summarize, inputs="text", outputs="text", title="SILMA AI Summarizer")
20
- iface.launch()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  from transformers import AutoTokenizer, AutoModelForCausalLM
3
  import torch
4
 
5
+ # تحميل النموذج والمحلل اللغوي
6
  model_id = "silma-ai/SILMA-9B-Instruct-v1.0"
7
  tokenizer = AutoTokenizer.from_pretrained(model_id)
8
+ model = AutoModelForCausalLM.from_pretrained(model_id, device_map="cpu") # استخدم المعالج بدلاً من CUDA
9
 
10
+ # دالة التلخيص
11
  def summarize(text):
12
+ try:
13
+ prompt = f"[INST] قم بتلخيص النص التالي بطريقتين:\n\n"
14
+ prompt += "1. ملخص مترابط: اكتب فقرة واحدة مترابطة باستخدام كلمات الربط المناسبة مثل (كما، علاوة على ذلك، إضافة إلى ذلك، ولقد، وعليه، ومن ثم...)\n"
15
+ prompt += "2. نقاط رئيسية: اكتب النقاط الرئيسية مسبوقة بـ '**ــ**'\n\n"
16
+ prompt += "قواعد التلخيص:\n"
17
+ prompt += "- تقليل 8 كلمات من كل فقرة\n"
18
+ prompt += "- الحفاظ على المعنى الأساسي والسياق\n"
19
+ prompt += "- الحفاظ على المصطلحات الفلسفية المهمة\n"
20
+ prompt += "- التلخيص بأسلوب علمي وواضح\n\n"
21
+ prompt += f"النص الأصلي:\n{text} [/INST]"
22
+
23
+ # تحليل النص بدون .to("cuda")
24
+ inputs = tokenizer(prompt, return_tensors="pt")
25
+
26
+ # توليد النص
27
+ outputs = model.generate(
28
+ inputs.input_ids,
29
+ max_length=300,
30
+ num_return_sequences=1,
31
+ temperature=0.7,
32
+ top_p=0.95,
33
+ top_k=50,
34
+ no_repeat_ngram_size=2,
35
+ )
36
+
37
+ # فك ترميز الإخراج
38
+ summarized_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
39
+ return summarized_text
40
+
41
+ except Exception as e:
42
+ return f"❌ خطأ: {str(e)}"
43
+
44
+ # بناء واجهة Gradio
45
+ interface = gr.Interface(
46
+ fn=summarize,
47
+ inputs=gr.Textbox(label="النص"),
48
+ outputs=gr.Textbox(label="الملخص"),
49
+ title="SILMA AI Summarizer",
50
+ description="أدخل نصًا وسيقوم النموذج بتلخيصه باستخدام تقنيتين مختلفتين.",
51
+ )
52
+
53
+ # تشغيل التطبيق
54
+ interface.launch()