LLMManuscript / app.py
NassimeBejaia's picture
Update app.py
dcde8db verified
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()