import gradio as gr from transformers import AutoTokenizer, AutoModelForCausalLM import torch # تهيئة النموذج model_name = "google/gemma-2b-it" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForCausalLM.from_pretrained(model_name) if torch.cuda.is_available(): model = model.to('cuda') def generate_summary(text): prompt = f"""قم بتلخيص النص التالي بطريقتين: 1. ملخص مترابط: اكتب فقرة واحدة مترابطة باستخدام كلمات الربط المناسبة 2. نقاط رئيسية: اكتب النقاط الرئيسية مسبوقة بـ "**ــ**" قواعد التلخيص: - تقليل 8 كلمات من كل فقرة - الحفاظ على المعنى الأساسي والسياق - التلخيص بأسلوب علمي وواضح النص الأصلي: {text} """ inputs = tokenizer(prompt, return_tensors="pt") if torch.cuda.is_available(): inputs = inputs.to('cuda') outputs = model.generate( **inputs, max_length=1024, temperature=0.7, top_k=50, top_p=0.95, num_return_sequences=1 ) summary = tokenizer.decode(outputs[0], skip_special_tokens=True) return summary # إنشاء واجهة Gradio interface = gr.Interface( fn=generate_summary, inputs=gr.Textbox(label="أدخل النص المراد تلخيصه", lines=10, dir="rtl"), outputs=gr.Textbox(label="الملخص", lines=10, dir="rtl"), title="خدمة تلخيص النصوص العربية", description="يقوم هذا النموذج بتلخيص النصوص العربية مع الحفاظ على المعنى الأساسي", examples=[ ["قم بإضافة نص مثال هنا للتجربة السريعة"] ], theme=gr.themes.Soft() ) interface.launch()