Spaces:
Running
Running
File size: 2,188 Bytes
a3fff9e |
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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
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)
device = 'cuda' if torch.cuda.is_available() else 'cpu'
model = model.to(device)
def generate_summary(text):
prompt = f"""أنت مختص في تلخيص النصوص الفلسفية. قم بتلخيص النص التالي:
النص: {text}
يجب أن يتضمن التلخيص:
1. فقرة موجزة تشرح جوهر الفكرة (3-4 أسطر كحد أقصى)
2. ثلاث نقاط رئيسية مستخلصة من النص
3. ذكر الشخصيات الرئيسية وأدوارهم في النص
نسق الإجابة كالتالي:
الفكرة الرئيسية:
[اكتب هنا الفقرة]
النقاط الأساسية:
1. [النقطة الأولى]
2. [النقطة الثانية]
3. [النقطة الثالثة]
الشخصيات المحورية:
- [اسم الشخصية]: [دورها]
"""
inputs = tokenizer(prompt, return_tensors="pt").to(device)
outputs = model.generate(
**inputs,
max_length=512,
temperature=0.2, # خفض الحرارة للحصول على إجابات أكثر تماسكاً
do_sample=False # إيقاف العشوائية للحصول على إجابات محددة
)
return tokenizer.decode(outputs[0], skip_special_tokens=True)
css = """
.rtl-text {
direction: rtl;
text-align: right;
font-family: Arial, sans-serif;
line-height: 1.6;
}
"""
interface = gr.Interface(
fn=generate_summary,
inputs=gr.Textbox(
label="النص المراد تلخيصه",
lines=6,
elem_classes="rtl-text"
),
outputs=gr.Textbox(
label="التلخيص",
lines=10,
elem_classes="rtl-text"
),
title="ملخص النصوص الفلسفية",
theme=gr.themes.Soft(),
css=css
)
interface.launch() |