import streamlit as st from transformers import AutoTokenizer, AutoModelForCausalLM import warnings warnings.simplefilter("ignore") tokenizer = AutoTokenizer.from_pretrained("Unbabel/TowerBase-13B-v0.1") model = AutoModelForCausalLM.from_pretrained("Unbabel/TowerBase-13B-v0.1", device_map="auto", load_in_4bit=True) languages = ["English", "Spanish", "Vietnamese", "French", "Portuguese"] def translate_text(source_lang, target_lang, text): input_text = f"{source_lang}: {text}\n{target_lang}:" inputs = tokenizer(input_text, return_tensors="pt") outputs = model.generate(**inputs, max_new_tokens=20) translated_text = tokenizer.decode(outputs[0], skip_special_tokens=True) return translated_text def main(): st.title("Language Translator") source_lang = st.selectbox("Choose source language:", languages) target_lang = st.selectbox("Choose target language:", languages) text = st.text_area(f"Enter text in {source_lang}:", "") if st.button("Translate"): translated_text = translate_text(source_lang, target_lang, text) st.text_area(f"Translation in {target_lang}:", translated_text) if __name__ == "__main__": main()