Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| from groq import Groq | |
| import os | |
| # إعداد المفتاح السري من HuggingFace Secrets | |
| GROQ_API_KEY = os.getenv("DEEPSEEK_API_KEY") | |
| # تهيئة عميل Groq | |
| client = Groq(api_key=GROQ_API_KEY) | |
| # حالة الجلسة | |
| if "corrected_sentence" not in st.session_state: | |
| st.session_state.corrected_sentence = "" | |
| if "chat_history" not in st.session_state: | |
| st.session_state.chat_history = [] | |
| # عنوان التطبيق | |
| st.title("🔧 مصحّح الجُمل ومحادثة باللغة العربية") | |
| # 📌 القسم الأول: تصحيح الجملة | |
| st.subheader("✍️ أدخل جملة بالعربية لتصحيحها:") | |
| arabic_input = st.text_input("جملتك هنا:", "") | |
| if st.button("🔍 صحّح الجملة"): | |
| if arabic_input: | |
| prompt = f"صحّح الجملة التالية إن كانت تحتوي على أخطاء نحوية أو لغوية، وإن كانت صحيحة فقط أعد كتابتها بشكل جميل: '{arabic_input}'" | |
| response = client.chat.completions.create( | |
| #model="deepseek-r1-distill-llama-70b", | |
| model="meta-llama/llama-4-scout-17b-16e-instruct", | |
| messages=[{"role": "user", "content": prompt}], | |
| temperature=0.3, | |
| max_tokens=200 | |
| ) | |
| corrected = response.choices[0].message.content.strip() | |
| st.session_state.corrected_sentence = corrected | |
| st.success(f"✅ الجملة المصححة:\n\n**{corrected}**") | |
| else: | |
| st.warning("📝 الرجاء إدخال جملة أولاً!") | |
| # 📌 القسم الثاني: المحادثة حول الجملة المصححة | |
| if st.session_state.corrected_sentence: | |
| st.subheader("💬 تحاور مع الذكاء الاصطناعي حول الجملة") | |
| for role, msg in st.session_state.chat_history: | |
| if role == "user": | |
| st.markdown(f"🧑💬 **أنت**: {msg}") | |
| else: | |
| st.markdown(f"🤖 **الذكاء الاصطناعي**: {msg}") | |
| chat_input = st.text_input("📨 أرسل سؤالك بالعربية", key="chat_input") | |
| if st.button("💭 أرسل"): | |
| if chat_input: | |
| full_prompt = f"الجملة المصححة هي: '{st.session_state.corrected_sentence}'.\n\nالمستخدم يسأل: '{chat_input}'.\n\nأجب بشكل طبيعي وبالعربية الفصحى." | |
| chat_response = client.chat.completions.create( | |
| model="meta-llama/llama-4-scout-17b-16e-instruct", | |
| messages=[{"role": "user", "content": full_prompt}], | |
| temperature=0.7, | |
| max_tokens=300 | |
| ) | |
| reply = chat_response.choices[0].message.content.strip() | |
| st.session_state.chat_history.append(("user", chat_input)) | |
| st.session_state.chat_history.append(("assistant", reply)) | |
| st.rerun() | |
| # زر إعادة تعيين | |
| if st.button("🔄 إعادة تعيين"): | |
| st.session_state.chat_history = [] | |
| st.session_state.corrected_sentence = "" | |
| st.rerun() | |