File size: 9,118 Bytes
4ac3ef7
3344858
2b6ad90
 
 
 
 
 
 
 
 
 
 
 
 
 
78119f7
 
 
 
 
 
01481ba
78119f7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
998de28
 
 
 
78119f7
 
9e90329
998de28
 
78119f7
 
 
 
 
 
 
 
 
 
998de28
 
 
 
 
 
78119f7
b2bf05e
78119f7
 
 
 
 
 
 
998de28
 
e197a54
998de28
78119f7
 
998de28
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
from transformers import BitsAndBytesConfig
import torch
import os
import torch
from datasets import load_dataset
from transformers import (
    AutoModelForCausalLM,
    AutoTokenizer,
    BitsAndBytesConfig,
    HfArgumentParser,
    TrainingArguments,
    pipeline,
    logging,
    Trainer
)
from peft import LoraConfig, PeftModel
config = PeftConfig.from_pretrained("mohamedemam/Arabic-meeting-summarization")
model = AutoModelForCausalLM.from_pretrained("bigscience/bloomz-3b")
model = PeftModel.from_pretrained(model, "mohamedemam/Arabic-meeting-summarization")
# Load the tokenizer and model
model_name ="bigscience/bloomz-3b"
tokenizer = AutoTokenizer.from_pretrained("bigscience/bloomz-3b")
model.eval()

example_contexts=[" "
                  ,"""
ليلى: السلام عليكم أحمد، أنا مشتاقة للعثور على كتاب جديد يشغل وقتي وفكري.
أحمد: بالطبع، هل تميلين إلى أحد أنواع الأدب المعينة أو الجوانب التاريخية المحددة؟
ليلى: بالفعل، أتطلع لاستكشاف رواية تاريخية مثيرة تأخذني في رحلة عبر العصور.
أحمد: لدينا تشكيلة متنوعة ورائعة من الكتب التاريخية، وسأقترح عليك بعض الأعمال المذهلة.
ليلى: ذلك يبدو رائعًا، أتوق إلى معرفة هذه الاقتراحات والاستمتاع بتصفحها.
أحمد: هل تميلين إلى الاطلاع على الروايات الكلاسيكية أم تفضلين الأعمال الأدبية الحديثة؟
ليلى: أعتقد أني هذه المرة أفضل الأعمال الحديثة التي تجمع بين الماضي والحاضر.
أحمد: سأقوم بالبحث بعناية لتقديم لك عناوين مثيرة ومميزة تلبي توقعاتك.
ليلى: شكرًا جزيلاً، أنا ممتنة لك على هذا الاهتمام والمساعدة.
""" ,  """علي: انه عصفورة كبيرة ؟ كان يطير بجوار نافذتي.
يوسف: نعم، رأيته أيضًا علي! العصافير حيوانات جميلة حقًا. لديها ريش رائع وطيران خفيف.
علي: هذا صحيح، وأيضًا لون ريشها يجعلها تبدو بهية. وهي تصدر أيضًا أصواتًا جميلة عندما تغرد.
يوسف: نعم، صوتها لطيف حقًا. لا يمكنني إلا أن أعشق كيفية تحليقها بحرية في السماء وكيفية تغردها في الصباح الباكر.
علي: إنها تجعلني أشعر بالسعادة عندما أراها. هل تعلم أن العصافير ترمز في العديد من الثقافات إلى الحرية والسلام؟
يوسف: نعم، أنا ملم بذلك. إنها رمز للعديد من القيم الجميلة. وهي تذكرنا دائمًا بجمال الطبيعة وأهميتها في حياتنا.
علي: بالتأكيد، العصافير هي إحدى عجائب الطبيعة التي يجب علينا الحفاظ عليها واحترامها.""" 
                  ,
                 """فاطمة: مرحبًا، هل لديك خطط لرحلة هذا الصيف؟
أحمد: نعم، أنا أخطط للسفر إلى إسبانيا مع عائلتي.
فاطمة: إلى أي مدينة في إسبانيا ستذهبون؟
أحمد: سنزور مدريد وبرشلونة. هل لديك أي توصيات للأماكن التي يجب زيارتها؟
فاطمة: بالطبع! يجب عليكم زيارة متحف برادو في مدريد وكنيسة سان جويل في برشلونة.
أحمد: شكرًا على التوصيات. كيف يمكنني الحجز لزيارة هذه المعالم؟
فاطمة: يمكنك الحجز عبر الإنترنت أو عند وصولك إلى هناك.
أحمد: ممتاز، سأفعل ذلك. شكرًا لك!"""
                 ,"""حسن: هل تحب الفنون وزيارة المتاحف؟
لمى: نعم، أنا أحب استكشاف الفن والثقافات المختلفة. إنها وسيلة رائعة لفهم تنوع العالم.
حسن: يعجبني أيضًا الفن والتاريخ. عندما تزورين المتاحف، هل تتفاعلين مع اللوحات والمعروضات بشكل خاص؟
لمى: بالطبع، أحب الاستماع إلى القصص والتفاصيل وراء كل عمل فني. إنها تضيف أبعادًا جديدة للتجربة.
حسن: هل قمت بزيارة متحف اللوفر في باريس؟
لمى: لا، لكنه في قائمة انتظاري منذ فترة طويلة. هل زرته؟
حسن: نعم، زرته عندما كنت في باريس العام الماضي. كانت تجربة رائعة بالفعل.
لمى: مذهل! ما هي الأعمال الفنية التي أعجبتك بها أكثر؟
حسن: أعجبتني "موناليزا" بالطبع، لكنني استمتعت أيضًا برؤية "حرية مؤقتة" و "العشاء الرائع".
لمى: تبدو رائعة! كيف كانت تجربة التجوال في المتحف؟
حسن: كان هناك الكثير لاستكشافه، ولكن كنت أفضل تخصيص وقت كافٍ لزيارة معروضات الفن الإغريقي والروماني.
لمى: صوتت لي لحظة رائعة. سأحاول تنظيم زيارتي هناك في المستقبل.
حسن: ستحبينه بالتأكيد، وباريس لديها الكثير من المعالم الثقافية والتاريخية الرائعة لاستكشافها."""
                ,"""فاطمة: مرحبًا، هل لديك خطط لرحلة هذا الصيف؟
أحمد: نعم، أنا أخطط للسفر إلى إسبانيا مع عائلتي لقضاء إجازة صيفية مميزة.
فاطمة: إلى أي مدينة في إسبانيا ستذهبون؟
أحمد: سنقضي أسبوعًا في مدريد وثم ننتقل إلى برشلونة للإقامة هناك لفترة مماثلة.
فاطمة: مدريد وبرشلونة مدن رائعة! هل لديك أفكار محددة حول ما ترغبون في رؤيته وقضائه هناك؟
أحمد: نعم، بالطبع. نحن نرغب في استكشاف التراث الثقافي والفني لكل منهما. هل لديك أي توصيات للأماكن التي يجب زيارتها؟
فاطمة: بالتأكيد! في مدريد، يجب عليكم زيارة متحف برادو الشهير، حيث تجدون أعمال فنية رائعة من الفنانين الكبار. وفي برشلونة، لا تفوتوا زيارة كنيسة سان جويل المعروفة بمعمارها الفريد وألوانها الزاهية.
أحمد: شكرًا جزيلاً على التوصيات. هل يمكننا الحجز مسبقًا لزيارة هذه المعالم؟
فاطمة: نعم، يمكنكم الحجز عبر الإنترنت لتجنب الانتظار في الطوابير. سأرسل لكم روابط للحجز.
أحمد: ممتاز، سنفعل ذلك بالتأكيد. شكرًا لك على المعلومات والتوصيات القيمة!
فاطمة: على الرحب والسعة، أتمنى لكم رحلة سعيدة واستمتاعًا كبيرًا في إسبانيا!""" 
                 
                 ]







# Create a Wikipedia API instance


# Function to generate questions and answers with configurable parameters
def generate_qa(text,context, temperature, top_p,num_seq,l_p, num_b):
    input_text = text+context+f"\n\nSummarize the previous text in three sentences in arabic:\n\n"
    a = tokenizer(text=input_text, return_tensors='pt')
    
    # Generate with configurable parameters
    output = model.generate(input_ids=a['input_ids'],
        temperature=temperature,
        top_p=top_p,
        num_return_sequences=num_seq,
   
        max_new_tokens=60,
        num_beams=num_b,
        length_penalty=l_p,    
        do_sample=True,
        
    )
    #
    generated_text = tokenizer.batch_decode(output, skip_special_tokens=True)
    return formatted_output
iface = gr.Interface(
    fn=generate_qa,
    inputs=[    "text",    gr.inputs.Dropdown(example_contexts, default="",label="Choose an Example"),

            
        gr.inputs.Slider(minimum=0.0, maximum=5, default=1.1, step=0.01, label="Temperature"),
        gr.inputs.Slider(minimum=0.0, maximum=1, default=0.5, step=0.01, label="Top-p"),     
        gr.inputs.Slider(minimum=1, maximum=20, default=1, step=1, label="num of sequance"), 
        gr.inputs.Slider(minimum=0.01, maximum=5, default=1, step=.01, label="length penalty")
     ,
        gr.inputs.Slider(minimum=1, maximum=20, default=3, step=1, label="num of beams"),


    ],theme="red-black",
    outputs=gr.outputs.Textbox(label="Generated Output"),
    title="arabic summarizition of messages",
    description="put you conversizition ",
)
# Launch the interface
iface.launch()