NassimeBejaia's picture
Update app.py
87f99db verified
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("📌 يرجى تصحيح جملة أولاً لبدء المحادثة.")