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)