Spaces:
Sleeping
Sleeping
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) | |