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