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()