Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from transformers import AutoModelForSeq2SeqLM, AutoTokenizer | |
| # تحميل النموذج والتوكنايزر | |
| model_id = "methodya/arabic-summarizer-philosophy" | |
| model = AutoModelForSeq2SeqLM.from_pretrained(model_id) | |
| tokenizer = AutoTokenizer.from_pretrained(model_id) | |
| # دالة التلخيص مع المعاملات الجديدة | |
| def summarize(text, max_length=150, num_beams=7, length_penalty=0.8): | |
| inputs = tokenizer(text, return_tensors="pt", max_length=1024, truncation=True) | |
| outputs = model.generate( | |
| **inputs, | |
| max_length=max_length, | |
| num_beams=num_beams, | |
| length_penalty=length_penalty, | |
| early_stopping=True | |
| ) | |
| return tokenizer.decode(outputs[0], skip_special_tokens=True) | |
| # إعداد واجهة Gradio | |
| interface = gr.Interface( | |
| fn=summarize, | |
| inputs=[ | |
| gr.Textbox(lines=8, label="النص"), # النص الأصلي | |
| gr.Slider(50, 250, value=150, label="طول الملخص"), # max_length | |
| gr.Slider(1, 10, value=7, step=1, label="دقة التلخيص (num_beams)"), # num_beams | |
| gr.Slider(0.1, 2.0, value=0.8, step=0.1, label="معامل الطول (length_penalty)") # length_penalty | |
| ], | |
| outputs=gr.Textbox(label="الملخص"), # النص الملخص | |
| title="ملخص النصوص الفلسفية", | |
| description="نموذج لتلخيص النصوص الفلسفية باللغة العربية مع إعدادات متقدمة" | |
| ) | |
| # تشغيل التطبيق | |
| interface.launch() | |