arabicPhiloV2 / appOLD.py
methodya's picture
Rename app.py to appOLD.py
3bfdbf4 verified
import gradio as gr
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
import torch
# تحميل النموذج والتوكينايزر
model_name = "methodya/arabic-summarizer-philosophy-v2"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSeq2SeqLM.from_pretrained(model_name)
# التأكد من استخدام GPU إذا كان متوفراً
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
model = model.to(device)
model.eval()
def summarize(text):
# التأكد من أن النص ليس فارغاً
if not text.strip():
return "الرجاء إدخال نص للتلخيص"
# تحضير المدخلات
inputs = tokenizer(text, return_tensors="pt", max_length=2048, padding=True, truncation=True)
inputs = {k: v.to(device) for k, v in inputs.items()}
# توليد الملخص
with torch.no_grad():
outputs = model.generate(
**inputs,
max_length=512,
min_length=30,
num_beams=4,
length_penalty=2.0,
no_repeat_ngram_size=3
)
# فك ترميز الملخص
summary = tokenizer.decode(outputs[0], skip_special_tokens=True)
return summary
# تعريف واجهة gradio
iface = gr.Interface(
fn=summarize,
inputs=gr.Textbox(label="النص", placeholder="أدخل النص العربي هنا..."),
outputs=gr.Textbox(label="الملخص"),
title="نظام تلخيص النصوص الفلسفية العربية",
description="نموذج لتلخيص النصوص الفلسفية باللغة العربية",
submit_btn="تلخيص",
clear_btn="مسح"
)
# تشغيل التطبيق
iface.launch()