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, torch_dtype=torch.float16, # استخدام الدقة النصفية لتسريع الأداء ) device = 'cuda' if torch.cuda.is_available() else 'cpu' model = model.to(device) def generate_summary(text): prompt = f"""اكتب تلخيصاً موجزاً ومنظماً للنص التالي في نقطتين: 1. ملخص موجز في فقرة واحدة فقط 2. أهم 3 أفكار رئيسية النص: {text} """ inputs = tokenizer( prompt, return_tensors="pt", truncation=True, max_length=512 ).to(device) outputs = model.generate( **inputs, max_length=512, temperature=0.5, top_k=20, top_p=0.9, do_sample=True, no_repeat_ngram_size=2, pad_token_id=tokenizer.eos_token_id ) return tokenizer.decode(outputs[0], skip_special_tokens=True) css = """ .rtl-text { direction: rtl; text-align: right; } .container { max-width: 800px; margin: auto; } """ # واجهة مبسطة interface = gr.Interface( fn=generate_summary, inputs=gr.Textbox( label="النص المراد تلخيصه", lines=8, placeholder="أدخل النص هنا...", elem_classes="rtl-text" ), outputs=gr.Textbox( label="الملخص", lines=8, elem_classes="rtl-text" ), title="ملخص النصوص العربية", description="يقوم هذا النموذج بتلخيص النص وإبراز أهم الأفكار الرئيسية", theme=gr.themes.Soft(), css=css, examples=[["الذكاء الاصطناعي تقنية ثورية تغير العالم وتستخدم في مجالات متعددة كالطب والتعليم والصناعة، مما يسهم في تحسين حياة البشر وحل المشكلات المعقدة."]] ) interface.launch()