Spaces:
Sleeping
Sleeping
Update main.py
Browse files
main.py
CHANGED
|
@@ -56,7 +56,7 @@ body {{
|
|
| 56 |
)
|
| 57 |
|
| 58 |
# -----------------------------
|
| 59 |
-
# LOAD MODEL
|
| 60 |
# -----------------------------
|
| 61 |
BASE_MODEL = "facebook/nllb-200-distilled-600M"
|
| 62 |
LORA_REPO = "junaid17/nllb-kurdish-lora"
|
|
@@ -64,13 +64,9 @@ LORA_REPO = "junaid17/nllb-kurdish-lora"
|
|
| 64 |
|
| 65 |
@st.cache_resource
|
| 66 |
def load_model():
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
tokenizer = AutoTokenizer.from_pretrained(BASE_MODEL)
|
| 71 |
-
base = AutoModelForSeq2SeqLM.from_pretrained(BASE_MODEL)
|
| 72 |
-
model = PeftModel.from_pretrained(base, LORA_REPO)
|
| 73 |
-
|
| 74 |
return model, tokenizer
|
| 75 |
|
| 76 |
|
|
@@ -111,21 +107,16 @@ with colTheme:
|
|
| 111 |
with col2:
|
| 112 |
tgt_lang = st.selectbox("To:", ["Kurdish", "English"])
|
| 113 |
|
| 114 |
-
|
| 115 |
-
# Handle swap
|
| 116 |
if swap:
|
| 117 |
src_lang, tgt_lang = tgt_lang, src_lang
|
| 118 |
-
st.session_state["LANG1"] = src_lang
|
| 119 |
-
st.session_state["LANG2"] = tgt_lang
|
| 120 |
st.rerun()
|
| 121 |
|
| 122 |
-
#
|
| 123 |
if toggle:
|
| 124 |
st.session_state["theme"] = "dark" if THEME == "light" else "light"
|
| 125 |
st.rerun()
|
| 126 |
|
| 127 |
-
|
| 128 |
-
# Language mapping
|
| 129 |
lang_codes = {
|
| 130 |
"English": "eng_Latn",
|
| 131 |
"Kurdish": "ckb_Arab"
|
|
@@ -136,23 +127,24 @@ tgt_code = lang_codes[tgt_lang]
|
|
| 136 |
|
| 137 |
text = st.text_area("Enter text:", height=180)
|
| 138 |
|
|
|
|
| 139 |
# -----------------------------
|
| 140 |
-
# TRANSLATE BUTTON
|
| 141 |
# -----------------------------
|
| 142 |
if st.button("Translate"):
|
| 143 |
if not text.strip():
|
| 144 |
st.warning("Please enter some text.")
|
| 145 |
else:
|
| 146 |
-
|
| 147 |
-
|
|
|
|
|
|
|
| 148 |
|
| 149 |
output = translate(text, src_code, tgt_code)
|
| 150 |
|
| 151 |
-
# Remove loader
|
| 152 |
loader.empty()
|
| 153 |
|
| 154 |
st.subheader("Output")
|
| 155 |
st.markdown(f"<div class='output-box'>{output}</div>", unsafe_allow_html=True)
|
| 156 |
|
| 157 |
-
# Copy button
|
| 158 |
st.button("Copy Output", on_click=lambda: st.session_state.update({"copied": output}))
|
|
|
|
| 56 |
)
|
| 57 |
|
| 58 |
# -----------------------------
|
| 59 |
+
# LOAD MODEL (NO LOADER HERE)
|
| 60 |
# -----------------------------
|
| 61 |
BASE_MODEL = "facebook/nllb-200-distilled-600M"
|
| 62 |
LORA_REPO = "junaid17/nllb-kurdish-lora"
|
|
|
|
| 64 |
|
| 65 |
@st.cache_resource
|
| 66 |
def load_model():
|
| 67 |
+
tokenizer = AutoTokenizer.from_pretrained(BASE_MODEL)
|
| 68 |
+
base = AutoModelForSeq2SeqLM.from_pretrained(BASE_MODEL)
|
| 69 |
+
model = PeftModel.from_pretrained(base, LORA_REPO)
|
|
|
|
|
|
|
|
|
|
|
|
|
| 70 |
return model, tokenizer
|
| 71 |
|
| 72 |
|
|
|
|
| 107 |
with col2:
|
| 108 |
tgt_lang = st.selectbox("To:", ["Kurdish", "English"])
|
| 109 |
|
| 110 |
+
# Swap
|
|
|
|
| 111 |
if swap:
|
| 112 |
src_lang, tgt_lang = tgt_lang, src_lang
|
|
|
|
|
|
|
| 113 |
st.rerun()
|
| 114 |
|
| 115 |
+
# Toggle theme
|
| 116 |
if toggle:
|
| 117 |
st.session_state["theme"] = "dark" if THEME == "light" else "light"
|
| 118 |
st.rerun()
|
| 119 |
|
|
|
|
|
|
|
| 120 |
lang_codes = {
|
| 121 |
"English": "eng_Latn",
|
| 122 |
"Kurdish": "ckb_Arab"
|
|
|
|
| 127 |
|
| 128 |
text = st.text_area("Enter text:", height=180)
|
| 129 |
|
| 130 |
+
|
| 131 |
# -----------------------------
|
| 132 |
+
# TRANSLATE BUTTON (with loader)
|
| 133 |
# -----------------------------
|
| 134 |
if st.button("Translate"):
|
| 135 |
if not text.strip():
|
| 136 |
st.warning("Please enter some text.")
|
| 137 |
else:
|
| 138 |
+
loader = st.markdown(
|
| 139 |
+
"<div class='dots-loader'><div></div><div></div><div></div></div>",
|
| 140 |
+
unsafe_allow_html=True
|
| 141 |
+
)
|
| 142 |
|
| 143 |
output = translate(text, src_code, tgt_code)
|
| 144 |
|
|
|
|
| 145 |
loader.empty()
|
| 146 |
|
| 147 |
st.subheader("Output")
|
| 148 |
st.markdown(f"<div class='output-box'>{output}</div>", unsafe_allow_html=True)
|
| 149 |
|
|
|
|
| 150 |
st.button("Copy Output", on_click=lambda: st.session_state.update({"copied": output}))
|