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("📌 يرجى تصحيح جملة أولاً لبدء المحادثة.")