Spaces:
Paused
Paused
| import gradio as gr | |
| from transformers import AutoTokenizer, AutoModelForCausalLM | |
| import torch | |
| import os | |
| from huggingface_hub import login | |
| # تسجيل الدخول باستخدام التوكن | |
| login(token=os.environ.get('HUGGING_FACE_HUB_TOKEN')) | |
| # تهيئة النموذج والتوكينايزر | |
| model_name = "google/gemma-2b-it" | |
| tokenizer = AutoTokenizer.from_pretrained(model_name) | |
| model = AutoModelForCausalLM.from_pretrained(model_name) | |
| # نقل النموذج إلى GPU إذا كان متاحاً | |
| device = 'cuda' if torch.cuda.is_available() else 'cpu' | |
| model = model.to(device) | |
| def generate_summary(text): | |
| # إعداد البرومبت | |
| prompt = f"""قم بتلخيص النص التالي بطريقتين: | |
| 1. ملخص مترابط: اكتب فقرة واحدة مترابطة باستخدام كلمات الربط المناسبة مثل (كما، علاوة على ذلك، إضافة إلى ذلك، ولقد، وعليه، ومن ثم...) | |
| 2. نقاط رئيسية: اكتب النقاط الرئيسية مسبوقة بـ "**ــ**" | |
| قواعد التلخيص: | |
| - تقليل 8 كلمات من كل فقرة | |
| - الحفاظ على المعنى الأساسي والسياق | |
| - الحفاظ على المصطلحات الفلسفية المهمة | |
| - التلخيص بأسلوب علمي وواضح | |
| النص الأصلي: | |
| {text} | |
| """ | |
| # تحويل النص إلى توكنز | |
| inputs = tokenizer(prompt, return_tensors="pt").to(device) | |
| # توليد النص | |
| outputs = model.generate( | |
| **inputs, | |
| max_length=1024, | |
| temperature=0.7, | |
| top_k=50, | |
| top_p=0.95, | |
| num_return_sequences=1, | |
| pad_token_id=tokenizer.eos_token_id | |
| ) | |
| # تحويل التوكنز إلى نص | |
| summary = tokenizer.decode(outputs[0], skip_special_tokens=True) | |
| return summary | |
| # إنشاء واجهة gradio | |
| css = """ | |
| .rtl-text { | |
| direction: rtl; | |
| text-align: right; | |
| } | |
| """ | |
| interface = gr.Interface( | |
| fn=generate_summary, | |
| inputs=gr.Textbox( | |
| label="أدخل النص المراد تلخيصه", | |
| lines=10, | |
| placeholder="ضع النص هنا...", | |
| elem_classes="rtl-text" | |
| ), | |
| outputs=gr.Textbox( | |
| label="الملخص", | |
| lines=10, | |
| elem_classes="rtl-text" | |
| ), | |
| title="خدمة تلخيص النصوص العربية باستخدام Gemma-2B", | |
| description=""" | |
| هذه الخدمة تقوم بتلخيص النصوص العربية مع: | |
| - الحفاظ على المعنى الأساسي | |
| - استخدام كلمات ربط مناسبة | |
| - تقديم نقاط رئيسية | |
| """, | |
| examples=[ | |
| ["يعتبر الذكاء الاصطناعي من أهم التقنيات الحديثة التي غيرت وجه العالم. فهو يستخدم في مجالات عديدة مثل الطب والتعليم والصناعة. كما أنه يساعد في حل المشكلات المعقدة وتحسين جودة الحياة."] | |
| ], | |
| theme=gr.themes.Soft(), | |
| css=css | |
| ) | |
| # تشغيل الواجهة | |
| interface.launch() |