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