gemmaphilo / appOld.py
methodya's picture
Rename app.py to appOld.py
b3a7735 verified
raw
history blame
3.15 kB
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)
# نقل النموذج إلى GPU إذا كان متاحاً
device = 'cuda' if torch.cuda.is_available() else 'cpu'
model = model.to(device)
def generate_summary(text):
# إعداد البرومبت
prompt = f"""قم بتلخيص النص التالي بطريقتين:
1. ملخص مترابط: اكتب فقرة واحدة مترابطة باستخدام كلمات الربط المناسبة مثل (كما، علاوة على ذلك، إضافة إلى ذلك، ولقد، وعليه، ومن ثم...)
2. نقاط رئيسية: اكتب النقاط الرئيسية مسبوقة بـ "**ــ**"
قواعد التلخيص:
- تقليل 8 كلمات من كل فقرة
- الحفاظ على المعنى الأساسي والسياق
- الحفاظ على المصطلحات الفلسفية المهمة
- التلخيص بأسلوب علمي وواضح
النص الأصلي:
{text}
"""
# تحويل النص إلى توكنز
inputs = tokenizer(prompt, return_tensors="pt").to(device)
# توليد النص
outputs = model.generate(
**inputs,
max_length=1024,
temperature=0.7,
top_k=50,
top_p=0.95,
num_return_sequences=1,
pad_token_id=tokenizer.eos_token_id
)
# تحويل التوكنز إلى نص
summary = tokenizer.decode(outputs[0], skip_special_tokens=True)
return summary
# إنشاء واجهة gradio
css = """
.rtl-text {
direction: rtl;
text-align: right;
}
"""
interface = gr.Interface(
fn=generate_summary,
inputs=gr.Textbox(
label="أدخل النص المراد تلخيصه",
lines=10,
placeholder="ضع النص هنا...",
elem_classes="rtl-text"
),
outputs=gr.Textbox(
label="الملخص",
lines=10,
elem_classes="rtl-text"
),
title="خدمة تلخيص النصوص العربية باستخدام Gemma-2B",
description="""
هذه الخدمة تقوم بتلخيص النصوص العربية مع:
- الحفاظ على المعنى الأساسي
- استخدام كلمات ربط مناسبة
- تقديم نقاط رئيسية
""",
examples=[
["يعتبر الذكاء الاصطناعي من أهم التقنيات الحديثة التي غيرت وجه العالم. فهو يستخدم في مجالات عديدة مثل الطب والتعليم والصناعة. كما أنه يساعد في حل المشكلات المعقدة وتحسين جودة الحياة."]
],
theme=gr.themes.Soft(),
css=css
)
# تشغيل الواجهة
interface.launch()