File size: 1,191 Bytes
c700888
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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()