Spaces:
Running
Running
# نسخة GPU - تستخدم CUDA لتسريع المعالجة | |
# لتشغيل هذه النسخة يجب اختيار GPU في إعدادات Space على Hugging Face | |
import gradio as gr | |
from huggingface_hub import hf_hub_download | |
from llama_cpp import Llama | |
import os | |
model_path = hf_hub_download( | |
repo_id="methodya/arabic-summarizer-philosophy-v3", | |
filename="sambalingo-arabic-chat.Q5_K_M.gguf" | |
) | |
llm = Llama( | |
model_path=model_path, | |
n_ctx=2048, | |
n_threads=4, | |
n_gpu_layers=-1 # تفعيل GPU | |
) | |
def summarize(text: str) -> str: | |
if not text: | |
return "يرجى إدخال نص للتلخيص" | |
prompt = f"""أنت مساعد متخصص في تلخيص النصوص الفلسفية العربية. المطلوب: | |
1. تلخيص النص بشكل مركز ومختصر | |
2. الحفاظ على الأفكار الرئيسية | |
3. عدم الخروج عن موضوع النص | |
النص للتلخيص: | |
{text} | |
""" | |
try: | |
output = llm( | |
prompt, | |
max_tokens=2000, | |
temperature=0.7, | |
stop=["User:", "\n\n"] | |
) | |
return output['choices'][0]['text'] | |
except Exception as e: | |
return f"حدث خطأ: {str(e)}" | |
interface = gr.Interface( | |
fn=summarize, | |
inputs=gr.Textbox(label="النص الفلسفي", lines=8, text_align="right"), | |
outputs=gr.Textbox(label="الملخص", lines=6, text_align="right"), | |
title="ملخص النصوص الفلسفية", | |
description="أداة لتلخيص النصوص الفلسفية باللغة العربية" | |
) | |
if __name__ == "__main__": | |
interface.launch() |