import streamlit as st import requests from transformers import pipeline # Set up the page st.set_page_config(page_title="AI-Powered Language Learning Assistant", page_icon="🧠", layout="wide") # Header and introduction st.title("🧠 AI-Powered Language Learning Assistant") st.markdown(""" Welcome to your AI-powered language assistant! Here you can: - Translate words or sentences to different languages (using LibreTranslate API) - Learn and practice new vocabulary - Get grammar feedback. """) # Translation Function (Using LibreTranslate API) def translate_text(text, target_language): url = "https://libretranslate.de/translate" # Free LibreTranslate API payload = { 'q': text, 'source': 'en', 'target': target_language } response = requests.post(url, data=payload) if response.status_code == 200: return response.json()['translatedText'] else: return "Translation failed." # Vocabulary Practice Section using Hugging Face's BERT Model st.markdown("---") st.header("Vocabulary Practice") word_input = st.text_input("Enter a word to get its definition and synonyms", "") if word_input: try: word_model = pipeline("fill-mask", model="bert-base-uncased") # Using BERT to predict related words result = word_model(f"The synonym of {word_input} is [MASK].") st.write(f"Synonyms or related words for **{word_input}**: {result}") except Exception as e: st.error(f"Error fetching vocabulary practice data: {e}") # Translation Section st.markdown("---") st.header("Translation") text_input = st.text_input("Enter the text you want to translate", "") language = st.selectbox("Select the language to translate to", ["es", "fr", "de", "it", "pt", "ru"]) if text_input: translated_text = translate_text(text_input, language) st.subheader(f"Translated Text to {language.upper()}:") st.write(translated_text) # Footer for engagement st.markdown(""" --- **Need more practice?** Visit [LibreTranslate API](https://libretranslate.de/) for real-time translations and Hugging Face for more language models! """)