Spaces:
Running
Running
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): | |
# تحويل القيم إلى النوع المناسب | |
max_length = int(max_length) | |
num_beams = int(num_beams) | |
length_penalty = float(length_penalty) | |
# تجهيز البيانات للنموذج | |
inputs = tokenizer(text, return_tensors="pt", max_length=2048, 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="ملخص النصوص الفلسفية", | |
css=".gradio-container {background: #f9fafb !important} " + open("style.css").read(), | |
submit_btn="تلخيص", # تغيير زر Submit | |
clear_btn="مسح" # تغيير زر Clear | |
) | |
# تشغيل التطبيق | |
interface.launch() |