|
import streamlit as st |
|
from transformers import pipeline |
|
|
|
|
|
@st.cache_resource |
|
def load_generator(): |
|
return pipeline("text-generation", model="aubmindlab/aragpt2-base", device=-1) |
|
|
|
|
|
generator = load_generator() |
|
|
|
|
|
st.title("Arabic Sentence Improver & Chat App") |
|
|
|
|
|
st.subheader("Improve an Arabic Sentence") |
|
user_input = st.text_input("Enter an Arabic sentence to improve:", "أنا ذهبت الحديقة") |
|
if st.button("Improve Sentence"): |
|
if user_input: |
|
|
|
prompt = f"Correct this Arabic sentence: '{user_input}' to" |
|
try: |
|
response = generator(prompt, max_new_tokens=50, temperature=0.7)[0]["generated_text"] |
|
|
|
corrected_sentence = response.split("to")[1].strip() if "to" in response else response |
|
st.session_state.corrected_sentence = corrected_sentence |
|
st.success(f"Improved Sentence: {corrected_sentence}") |
|
except Exception as e: |
|
st.error(f"Error: {str(e)}") |
|
else: |
|
st.warning("Please enter a sentence first!") |
|
|
|
|
|
st.subheader("Chat About the Corrected Sentence") |
|
if "corrected_sentence" in st.session_state: |
|
chat_input = st.text_input("Ask something about the corrected sentence:", key="chat_input") |
|
if st.button("Send"): |
|
if chat_input: |
|
|
|
prompt = f"The corrected sentence is: '{st.session_state.corrected_sentence}'. User asks: '{chat_input}'" |
|
try: |
|
response = generator(prompt, max_new_tokens=100, temperature=0.7)[0]["generated_text"] |
|
st.write(f"**You:** {chat_input}") |
|
st.write(f"**LLM:** {response}") |
|
except Exception as e: |
|
st.error(f"Error in chat: {str(e)}") |
|
else: |
|
st.warning("Please enter a question!") |
|
else: |
|
st.write("Improve a sentence first to start chatting!") |