arabicPhilo5 / appV1.py
methodya's picture
Rename app.py to appV1.py
50ec9f1 verified
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)