Spaces:
Running
Running
File size: 1,852 Bytes
6893513 4ee975c 6893513 4ee975c 5419f5c 4ee975c 6893513 0652e73 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
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() |