File size: 3,317 Bytes
1ac3da4
 
 
 
3179eab
1ac3da4
 
 
3179eab
1ac3da4
 
 
 
 
3179eab
 
1ac3da4
3179eab
 
 
1ac3da4
3179eab
1ac3da4
3179eab
1ac3da4
 
 
 
 
 
 
 
3179eab
1ac3da4
3179eab
1ac3da4
3179eab
1ac3da4
3179eab
 
1ac3da4
 
3179eab
1ac3da4
 
 
3179eab
1ac3da4
 
 
 
3179eab
87f99db
 
1ac3da4
 
 
 
 
 
 
 
3179eab
 
1ac3da4
 
3179eab
1ac3da4
3179eab
1ac3da4
3179eab
1ac3da4
 
 
 
 
3179eab
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import streamlit as st
from huggingface_hub import InferenceClient
import os

# الحصول على التوكن من إعدادات البيئة
API_TOKEN = os.getenv("HF_TOKEN_Mistral")
client = InferenceClient(token=API_TOKEN)

# تهيئة الحالة
if "chat_history" not in st.session_state:
    st.session_state.chat_history = []
if "corrected_sentence" not in st.session_state:
    st.session_state.corrected_sentence = ""

# العنوان الرئيسي
st.title("تحسين الجمل والدردشة الذكية")

# --- قسم تحسين الجملة ---
st.subheader("✍️ أدخل جملة بها أخطاء لغوية")
user_input = st.text_input("اكتب الجملة هنا:", "ذهبتو إلى الحديقه و العب.")

if st.button("🔧 صحح الجملة"):
    if user_input:
        prompt = f"صحح الجملة التالية من حيث النحو والإملاء وركّبها بطريقة سليمة ولغوية جميلة: '{user_input}'"
        try:
            response = client.text_generation(
                prompt,
                model="mistralai/Mixtral-8x7B-Instruct-v0.1",
                max_new_tokens=100,
                temperature=0.7,
            )
            st.session_state.corrected_sentence = response.strip()
            st.success(f"✅ الجملة المصححة: {st.session_state.corrected_sentence}")
        except Exception as e:
            st.error(f"⚠️ حدث خطأ أثناء التصحيح: {str(e)}")
    else:
        st.warning("⚠️ الرجاء إدخال جملة أولاً!")

# --- قسم الدردشة ---
st.subheader("💬 ناقش الجملة المصححة")

if st.session_state.corrected_sentence:
    # عرض المحادثة السابقة
    for speaker, message in st.session_state.chat_history:
        st.write(f"**{speaker}:** {message}")

    # وظيفة إرسال الرسالة
    def submit_chat():
        chat_text = st.session_state.chat_input
        if chat_text:
            prompt = (
                f"الجملة المصححة هي: '{st.session_state.corrected_sentence}'. "
                f"سؤال المستخدم: '{chat_text}'. "
                f"أجب باللغة العربية فقط، ولا تستخدم أي كلمة أو جملة إنجليزية. استخدم لغة عربية سليمة ومفهومة."
            )
            try:
                response = client.text_generation(
                    prompt,
                    model="mistralai/Mixtral-8x7B-Instruct-v0.1",
                    max_new_tokens=150,
                    temperature=0.7,
                )
                st.session_state.chat_history.append(("🧑 المستخدم", chat_text))
                st.session_state.chat_history.append(("🤖 المساعد", response.strip()))
                st.session_state.chat_input = ""
            except Exception as e:
                st.error(f"⚠️ حدث خطأ أثناء المحادثة: {str(e)}")

    # مربع إدخال الرسالة
    st.text_input(
        "اكتب سؤالك أو تعليقك حول الجملة المصححة (واضغط Enter):",
        key="chat_input",
        on_change=submit_chat,
    )

else:
    st.write("📌 يرجى تصحيح جملة أولاً لبدء المحادثة.")