Spaces:
Sleeping
Sleeping
File size: 1,722 Bytes
cbe8696 771297a cbe8696 771297a cbe8696 771297a cbe8696 |
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 |
import streamlit as st
from huggingface_hub import hf_hub_download
from llama_cpp import Llama
import os
import time
# تحميل النموذج من Hugging Face
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
)
# دالة تلخيص النصوص
def summarize(text: str) -> str:
if not text:
return "يرجى إدخال نص للتلخيص"
prompt = f"""أنت مساعد عربي متخصص في تلخيص النصوص الفلسفية. قم بتلخيص النص التالي:
{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)}"
# واجهة المستخدم باستخدام Streamlit
st.title("ملخص النصوص الفلسفية")
st.markdown("أداة لتلخيص النصوص الفلسفية باللغة العربية")
# إنشاء واجهة الإدخال والإخراج
text_input = st.text_area("النص الفلسفي", height=200)
if st.button("تلخيص"):
with st.spinner('Processing...'):
# محاكاة لعملية المعالجة التي تستغرق وقتًا طويلاً
time.sleep(3) # استبدال هذا بـ عملية النموذج
summary = summarize(text_input)
st.success('تم التلخيص بنجاح!')
st.text_area("الملخص", value=summary, height=150, disabled=True)
|