Spaces:
Sleeping
Sleeping
import streamlit as st | |
from transformers import pipeline | |
# تحميل النموذج مرة واحدة فقط | |
def load_generator(): | |
return pipeline("text-generation", model="aubmindlab/aragpt2-base", device=-1) # استخدام CPU | |
# تحميل نموذج التوليد | |
generator = load_generator() | |
# عنوان التطبيق | |
st.title("مُحسِّن الجمل العربية والدردشة") | |
# --- قسم تحسين الجمل --- | |
st.subheader("تحسين جملة عربية") | |
user_input = st.text_input("أدخل جملة عربية لتحسينها:", "أنا ذهبت الحديقة") | |
if st.button("تحسين الجملة"): | |
if user_input: | |
# توليد الرد | |
prompt = f"صحح هذه الجملة العربية وأجب فقط باللغة العربية: '{user_input}'" | |
try: | |
response = generator(prompt, max_new_tokens=50, temperature=0.7)[0]["generated_text"] | |
# نحاول استخراج الجملة المصححة | |
corrected_sentence = response.replace(prompt, "").strip() | |
st.session_state.corrected_sentence = corrected_sentence | |
st.success(f"✅ الجملة المحسّنة: {corrected_sentence}") | |
except Exception as e: | |
st.error(f"❌ حدث خطأ: {str(e)}") | |
else: | |
st.warning("⚠️ الرجاء إدخال جملة أولاً!") | |
# --- قسم الدردشة --- | |
st.subheader("الدردشة حول الجملة المحسّنة") | |
if "corrected_sentence" in st.session_state: | |
chat_input = st.text_input("اطرح سؤالاً عن الجملة المحسّنة:", key="chat_input") | |
if st.button("إرسال"): | |
if chat_input: | |
# توليد المحادثة | |
prompt = ( | |
f"الجملة المصححة هي: '{st.session_state.corrected_sentence}'. " | |
f"سؤال المستخدم: '{chat_input}'. " | |
f"أجب فقط باللغة العربية الفصحى، ولا تستخدم أي كلمات إنجليزية." | |
) | |
try: | |
response = generator(prompt, max_new_tokens=100, temperature=0.7)[0]["generated_text"] | |
reply = response.replace(prompt, "").strip() | |
st.write(f"🧑💬 **المستخدم:** {chat_input}") | |
st.write(f"🤖 **المساعد:** {reply}") | |
except Exception as e: | |
st.error(f"❌ حدث خطأ أثناء المحادثة: {str(e)}") | |
else: | |
st.warning("⚠️ الرجاء كتابة سؤال!") | |
else: | |
st.info("💬 يرجى تحسين جملة أولاً للبدء في الدردشة.") | |