File size: 2,702 Bytes
d2e9bfa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
55
56
57
58
import streamlit as st
from transformers import pipeline

# تحميل النموذج مرة واحدة فقط
@st.cache_resource
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("💬 يرجى تحسين جملة أولاً للبدء في الدردشة.")