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() | |