ⵙⴻⵇⴷⴻⵛ ⴰⵎⵣⵓⵏ ⵏ ⵓⵍⵎⴰⴷ ⵏ ⵜⵎⴰⵛⵉⵏⵉⵏⵉⴽ ⵙ Pitun

Pitun
ⴰⵍⵎⵓⴷ ⵏ ⵜⵎⴰⵛⵉⵏⵜ
ⴰⵎⵣⵓⵏ ⵏ ML
ⵙⴻⵇⴷⴻⵛ ⴰⵎⵣⵓⵏ ⵏ ⵓⵍⵎⴰⴷ ⵏ ⵜⵎⴰⵛⵉⵏⵉⵏⵉⴽ ⵙ Pitun cover image

ⵎⵉ ⴰⵔⴰ ⵜⵅⴻⴷⵎⴻⴹ ⴷⴻⴳ ⵓⵏⵏⴰⵔ ⵏ ⵜⵓⵙⵙⵏⴰ ⵏ ⵢⵉⵙⴻⴼⴽⴰ, ⵙ ⵓⵎⴰⵜⴰ, ⴰⴷ ⵜⴰⴼⴻⴹ ⵉⵎⴰⵏⵉⴽ ⵜⵇⵓⴱⵍⴻⴹ ⵢⵉⵡⴻⵏ ⵏ ⵡⵓⴳⵓⵔ ⴰⵎⴰⵢⵏⵓⵜ ⴷⴻⴼⴼⵉⵔ ⵎⴰ ⵜⴽⴻⵎⵍⴻⴹ ⵢⵉⵡⴻⵜ ⵏ ⵜⵃⴻⵎⵍⴰ ⵖⴻⵣⵣⵉⴼⴻⵏ ⵏ ⵓⵙⵙⵉⵍⴻⵖ, ⵏ ⵓⵙⵏⴻⴼⵍⵉ ⵏ ⵜⵖⴰⵡⵙⵉⵡⵉⵏ ⵙ ⵜⵖⴰⵡⵍⴰ, ⴷ ⵓⵙⵏⴻⵔⵏⵉ. ⴰⵢⵓⵣ ⵙ ⵍⴻⴱⵏⵉ ⵏ ⵓⵎⴹⵉⵇ ⵏ ML ⵢⴻⵙⵄⴰⵏ ⴰⵅⴻⴷⴷⵉⵎ ⵢⴻⵍⵀⴰⵏ ⵢⴻⵔⵏⴰ ⵢⴻⵜⵜⴰⵔⵔⴰⴷ ⵖⴻⴼ ⵜⵖⴰⵡⵙⵉⵡⵉⵏⵉⴽ. ⵜⵓⵔⴰ ⴰⵖⴱⴻⵍ ⴰⵢ ⵜⴻⵙⵄⵉⴹ ⴷⴻⴳ ⵓⴼⵓⵙⵉⴽ ⴷ ⴰⵎⴻⴽ ⴰⵔⴰ ⴷⵜⴻⵙⵙⵉⵡⴻⴹ ⴰⵃⵔⵉⵛⴰ ⵢⴻⵍⵀⴰⵏ ⵏ teknoloji ⵉ ⵢⵉⵎⵙⴻⵇⴷⴰⵛⴻⵏ ⴰⵢ ⴷⵢⴻⵜⵜⵡⴰⵡⴻⵀⵀⴰⵏ? ⵏⴻⵖ ⴰⵀⴰⵜ ⴰⵎⴻⴽ ⴰⵔⴰ ⵜⴻⵙⵙⵉⵡⴹⴻⴹ ⵙ ⵜⵖⴰⵡⵍⴰ ⴰⴳⵎⵓⴹⵉⴽ ⵉ ⵢⵉⵎⴹⴻⴱⴱⵔⴻⵏ ⵏ ⵜⴽⴻⴱⴱⴰⵏⵉⵜⵉⴽ? ⵏⴻⵖ ⵓⵍⴰ ⴷ ⴰⵎⴻⴽ ⴰⵔⴰ ⵜⴱⴻⴹⵏⴻⴹ ⵉⴳⵎⴰⴹⵉⴽ ⵏ ⵍⴻⵎⵜⴻⵍ ⴷ ⵢⵉⵎⴻⴷⴷⵓⴽⴰⵍⵉⴽ ⵙ ⵜⵖⴰⵡⵍⴰ ⵉ ⵍⵎⴻⵏⴷ ⵏ ⵜⴰⵍⵍⴻⵍⵜ ⵢⴻⵍⵀⴰⵏ?

ⴰⵙⵙⴻⵇⴷⴻⵛ ⵏ ⵓⵍⵎⴰⴷ ⵏ ⵜⵎⴰⵛⵉⵏⵉⵏ ⵢⴻⵣⵎⴻⵔ ⴰⴷ ⵢⵉⵍⵉ ⵜⵉⴽⵡⴰⵍ ⴷ ⴰⵢⴻⵏ ⵉⵡⴻⵄⵔⴻⵏ ⵉⵎⵉ ⴰⵔⴰ ⵏⴻⵙⵙⴻⵅⴷⴻⵎ ⵜⵉⵥⵡⴰⵔ ⴷ ⵜⵜⴰⵡⵉⵍⴰⵜ ⵙⴻⴳ ⵜⵎⵓⵙⵙⵏⵉⵡⵉⵏ ⵏ ⵣⵉⴽ ⴰⵢ ⵢⴻⵙⵙⴻⴼⴽⴻⵏ ⵉ ⵍⴻⴱⵏⵉ ⵏ ⵢⵉⵎⵓⴽⴰⵏⵏⵏⵉ.

ⴷⴻⴳ ⵓⵎⴰⴳⵔⴰⴷⴰ, ⴰⴷ ⴷⵏⴰⴼ ⴰⴱⵔⵉⴷ ⵏ ⵓⵙⵏⴻⴼⵍⵉ ⵏ ⵢⵉⵎⵓⴽⴰⵏ ⵏ ⵓⵍⵎⴰⴷ ⵏ ⵜⵎⴰⵛⵉⵏⵉⵏ ⵙ ⵓⵙⴻⵇⴷⴻⵛ ⴽⴰⵏ ⵏ python. ⵢⴻⵔⵏⴰ ⴷⴻⴳ ⵓⴱⵔⵉⴷ, ⴰⴷ ⵏⴻⴱⵏⵓ ⴰⵎⵣⵓⵏ ⵏ ⵜⵙⵓⵇⵉⵍⵜ ⵙ ⵜⵎⴰⵛⵉⵏⵉⵏ ⴷ ⵓⵙⴻⴱⵜⴻⵔ ⵡⴻⴱ.

ⵉⵀⵉ ⴰⵜⴰⵏ ⵍⵃⵉⵔⴼⴰⵜ ⴰⵔⴰ ⵏⵡⴰⵍⵉ:

  1. Aseqdec ⵏ ⵢⵉⵎⵓⴽⴰⵏ ⵏ ⵜⵙⵓⵇⵉⵍⵜ ⵙ ⵜⵎⴰⵛⵉⵏⵉⵏ ⴰⵃⴻⴱⴱⵓⵙ.

  2. Asekcem ⵏ Anvil ⴷ ⵍⴻⴱⵏⵉ ⵏ UI ⵡⴻⴱ ⵉ ⵍⴻⵎⵜⴻⵍⵏⵏⴻⵖ.

  3. Acuddu ⵏ ⴱⴰⵛⴽⴻⵏⴷ ⴷ frontend ⴷ ⵓⵇⴻⴷⴷⵉⵛ ⵏ ⵓⵎⴰⴹⴰⵍ ⴷ ⴰⵅⴻⴷⴷⵉⵎⵏⵏⴻⵖ!

ⴱⵏⵓ ⴰⵎⵣⵓⵏ ⵏ ⵜⵙⵓⵇⵉⵍⵜ ⵏ ⵜⵎⴰⵛⵉⵏⵜ

ⵀⵓⴳⴳⵉⵏⴳⴼⴰⵛⴻ ⴷ ⵜⴰⵎⵏⴰⴹⵜ ⵏ AI ⴰⵢ ⵉⵅⴻⴷⴷⵎⴻⵏ ⴰⴽⴽⴻⵏ ⴰⴷ “ⵜⴻⵙⵙⵉⵡⴻⴹ ⵜⵓⴳⴷⵓⵜ (démocratie) ⵏ ⵓⵍⵎⴰⴷ ⵢⴻⵍⵀⴰⵏ ⵏ ⵜⵎⴰⵛⵉⵏⵉⵏ”. ⴷⴷⴰⵡ ⵏ ⵜⵎⵓⵖⵍⵉⴰ, ⵜⵣⴻⵎⵔⴻⵎ ⴰⴷ ⵜⴰⴼⴻⵎ ⴰⵟⴰⵙ ⵏ ⵢⵉⵎⵓⴽⴰⵏ ⵢⴻⵜⵜⵡⴰⵙⵍⴻⵖⵎⴻⵏ ⵖⴻⴼ ⵜⵉⵖⴰⵡⵙⵉⵡⵉⵏ ⵢⴻⵎⴳⴻⵔⵔⴰⴷⴻⵏ ⵏ ⵓⵍⵎⴰⴷ ⵏ ⵜⵎⴰⵛⵉⵏⵉⵏ: ⴰⴼⴻⵔⴷⵉⵙ ⵏ ⵜⵓⴳⵏⴰ, ⴰⴹⵔⵉⵙ ⵖⴻⵔ ⵡⴰⵡⴰⵍ, ⴰⵙⴻⵏⴼⴰⵔ ⵏ ⵓⴹⵔⵉⵙ... ⵢⴻⵔⵏⴰ ⴷⴰⵖⴻⵏ ⴰⵙⵓⵇⴻⵍ ⵏ ⵜⵎⴰⵛⵉⵏⵉⵏ!

ⵜⴰⵙⵓⵇⵉⵍⵜ ⵏ ⵜⵎⴰⵛⵉⵏⵜ ⴷ ⵛⵛⵖⴻⵍ ⴽⴰⵏ ⵏ ⵜⵙⵓⵇⵉⵍⵜ ⴳⴰⵔ ⵙⵏⴰⵜ ⵏ ⵜⵓⵜⵍⴰⵢⵉⵏ ⴰⵢ ⴷⵢⴻⵜⵜⴳⴻⵏ ⵢⵉⵡⴻⵏ ⵏ ⵓⵙⵎⴻⵍ, ⴷⴻⴳ ⵜⴻⴳⵏⵉⵜⵏⵏⴻⵖ, ⴷ ⴰⵎⵣⵓⵏ ⵏ ⵓⵍⵎⴰⴷ ⵏ ⵜⵎⴰⵛⵉⵏⵜ ⴰⵢ ⴷⵢⴻⵍⵍⴰⵏ ⵙ ⵢⵉⵎⴻⵙⵏⵉⵍⴻⵏ (transformateurs).

Transformateur ⴷ ⵜⴰⵙⴻⴳⴷⴰ ⵏ ⵓⵍⵎⴰⴷ ⵍⵇⴰⵢⴻⵏ ⵉ ⴷⵢⴻⵙⴱⴻⴷⴷⴻⵏ ⵍⴱⴰⵍ. ⴰⴷ ⵜⵉⴷⵏⴻⵙⵙⵓⴼⴻⵖ ⴰⴷ ⵢⴻⴷⴷⵓ ⴷⴻⴳ ⵜⵎⴰⵛⵉⵏⵜⵉⴽ!

ⴰⴷ ⵏⴻⵙⵙⴻⵎⵔⴻⵙ ⵉⵎⵙⵓⴷⴷⵙⴻⵏ, ⵜⴰⵎⴽⴻⵔⴹⵉⵜ ⵏ python ⴰⴽⴽⴻⵏ ⴰⴷ ⴷⵏⴻⵙⵙⴻⴽⵛⴻⵎ ⴰⵎⵓⴷ ⵏ MT ⵢⴻⵔⵏⴰ ⴰⴷ ⵏⴻⵅⴷⴻⵎ ⵜⴰⵙⵓⵇⵉⵍⵜ.

pip install torch
pip install transformers

ⵙⴻⵏⴷ ⵎⴰ ⵜⴻⵙⴱⴻⴷⴷⴻⴹ ⵉⴼⴻⵔⴽⵉⵡⴻⵏ ⵉⵍⴰⵇⴻⵏ, ⵙⵙⴻⴽⵛⴻⵎ ⵉⵎⵓⴹⴰⵏⴰ:

from transformers import MarianTokenizer, MarianMTModel
from typing import List

ⴰⴷ ⴷⵏⴰⵡⵉ ⴰⵎⵣⵓⵏ ⴰⵔⴰ ⴷⵢⴻⵙⵙⵓⵇⵍⴻⵏ ⵜⴰⴼⵢⵉⵔⵜ ⵙⴻⴳ ⵜⴰⵍⵎⴰⵏⵉⵜ ⵖⴻⵔ ⵜⴻⴳⵍⵉⵣⵉⵜ. ⵏⴻⵃⵡⴰⴵ ⵉⵙⴻⵎ ⵏ ⵍⴻⵎⵜⴻⵍ:

src= "de"
trg= "en"
mname= f'Helsinki-NLP/opus-mt-{src}-{trg}'

ⵜⵓⵔⴰ ⴰⴷ ⴷⵏⴻⵙⵙⴻⴽⵛⴻⵎ ⴰⵎⵓⴷ ⵢⴻⵜⵜⵡⴰⵙⵍⴻⵖⵎⴻⵏ ⴷ ⵜⵎⴻⵥⴷⵉⵜ ⵙ ⵓⵙⴻⵇⴷⴻⵛ ⵏ ⵢⵉⴼⴻⵔⴷⵉⵙⴻⵏⴰ:

model = MarianMTModel.from_pretrained(mname)
tok = MarianTokenizer.from_pretrained(mname)

ⵜⴰⴳⵎⵓⴹⵜ ⵏ ⵓⵙⵏⵓⵍⴼⵓ ⵜⴻⵡⵡⴻⴹ ⴰⵣⴰⵍ ⵏ 300mb, ⴷⴻⴼⴼⵉⵔ ⵎⴰ ⵜⴽⴻⵎⵍⴻⴹ ⵜⵣⴻⵎⵔⴻⴹ ⴰⴷ ⵜⵃⴻⵔⵣⴻⴹ ⴰⵎⵓⴷ ⴷⴻⴳ ⵢⵉⵡⴻⵏ ⵏ ⵓⴹⵔⵉⵙ ⴰⴷⵉⴳⴰⵏ ⵙ ⵓⵙⴻⵇⴷⴻⵛ ⵏ ⵡⴰⵢⴻⵏ ⵉⴷⵉⵜⴻⴷⴷⵓⵏ:

model.save_pretrained("./models/de_en/")
tok.save_pretrained("./models/de_en/tok")

ⴰⴷ ⵏⴻⴼⴽ ⴰⵎⵣⵓⵏ:

text="ich habe keine ahnung"
gen = model.generate(**tok.prepare_seq2seq_batch(src_texts=[text], return_tensors="pt"))
words: List[str] = tok.batch_decode(gen, skip_special_tokens=True)
print(words[0])

ⵜⵓⵔⴰ ⵢⴻⵙⵙⴻⴼⴽ ⴰⴷ ⵜⴻⵙⵄⵓⴹ ⵜⴰⵙⵓⵇⵉⵍⵜ ⵜⴰⴳⵍⵉⵣⵉⵜ ⵏ ⵜⴻⴼⵢⵉⵔⵜ ⵢⴻⵜⵜⵡⴰⵃⴻⵔⵣⴻⵏ ⴷⴻⴳ words[0].

ⴰⴼⴻⴹ Anvil ⵓ ⴱⵏⵓ UI ⵏ ⵡⴻⴱ

Anvil ⴷ ⴰⴽⴰⵜⴰⵔ ⴷ ⵜⵎⴻⵥⴷⵉⵜ ⵏ ⵜⵉⴼⵔⴰⵜ ⴰⵔⴰ ⴽⵢⴻⴵⴵⴻⵏ ⴰⴷ ⵜⴻⴱⵏⵓⴹ ⵉⵙⴻⵏⴼⴰⵔⴻⵏ ⵡⴻⴱ ⵙ ⵓⵙⴻⵇⴷⴻⵛ ⴽⴰⵏ ⵏ ⵓⴹⵔⵉⵙ ⵏ python. ⵢⴻⵙⵄⴰ ⴰⵎⴻⵙⵏⵉⵍⴻⵙ ⵏ ⴷⵔⴰⴳ ⴰⵏⴷ drops ⵉ ⵍⴻⴱⵏⵉ ⵏ UI ⵡⴻⴱ ⵢⴻⵔⵏⴰ ⵢⴻⵜⵜⴰⴵⴵⴰⴽ ⴰⴷ ⵜⵛⵓⴷⴷⴻⴹ ⴰⴽⴰⵔⴰⵎ ⵙⴻⴳ ⵜⵎⴰⵛⵉⵏⵜⵉⴽ ⵜⴰⴷⵉⴳⴰⵏⵜ ⵙ UI ⵉ ⵜⴻⴱⵏⵉⴹ ⵢⴻⵔⵏⴰ ⴰⴷ ⵜⴻⵙⵏⴻⴱⴳⵉⴹ ⴰⵙⴻⵏⴼⴰⵔⵉⴽ ⵙ ⵜⵉⴽⵛⵉ ⵏ ⵓⵙⵎⴻⵍ ⵉ ⵜⵣⴻⵎⵔⴻⴹ ⴰⴷ ⵜⵜⴻⴱⴹⵓⴹ.

ⵉⵀⵉ ⴰⴷ ⵏⴱⴷⵓ ⵙ ⵓⵙⵏⵓⵍⴼⵓ ⵏ ⵢⵉⵡⴻⵏ ⵏ ⵓⵙⴻⵇⴷⴻⵛ ⵙⴻⴳ ⴷⴰⴳⵉ. ⴰⴼⵔⴰⵏ ⵏ ⵓⵙⴻⵇⴷⴻⵛ ⵏ ⵜⴼⴻⵍⵡⵉⵜ ⵙⵢⴻⵏ ⵏ ⵓⵙⵏⵓⵍⴼⵓ ⵏ ⵜⵖⴰⵡⵙⵉⵡⵉⵏ.

ⵉⵍⴰⵇ ⴰⴷ ⵜⵡⴰⵍⵉⴹ ⴽⵔⴰ ⴰⵎ ⵡⴰ:

Anvil

ⵜⵓⵔⴰ ⴰⴷ ⵃⴻⵙⴱⴻⵖ ⴼⴻⵍⵍⴰⴽ ⴰⴷ ⵜⴻⵙⵇⴻⴷⵛⴻⴹ ⴰⵎⴻⵙⴽⴰⵔ ⵢⴻⵔⵏⴰ ⴰⴷ ⵜⴻⴱⵏⵓⴹ ⴽⵔⴰ ⵢⴻⵛⴱⴰⵏ ⴰⵢⴻⵏ ⵉ ⴷⵉⵜⴻⴷⴷⵓⵏ:

Anvil Editor

ⴷⴻⴳ UIagi ⴰⴼⵔⴰⵔⴰⵢ, ⵏⴻⵙⵄⴰ ⵙⵉⵏ ⵏ DropDowns ⵉ ⵓⴼⵔⴰⵏ ⵏ ⵜⵓⵜⵍⴰⵢⵉⵏ ⵏ ⵓⵖⴱⴰⵍⵓ ⴷ ⵜⵓⵜⵍⴰⵢⵉⵏ ⵏ ⵜⵖⴻⵔⵖⴻⵔⵜ. ⵏⴻⵙⵄⴰ ⴷⴰⵖⴻⵏ TextBox ⵉ ⵓⵙⵙⴻⴽⵛⴻⵎ ⵏ ⵓⴹⵔⵉⵙ ⵏ ⵓⵖⴱⴰⵍⵓ ⴷ ⵢⵉⵡⴻⵏ ⵏ ⵓⴼⴻⵔⴷⵉⵙ ⵔⵉⵛⵀText ⵉ ⵓⵙⴻⴽⵛⴻⵎ ⵏ ⵓⴹⵔⵉⵙ ⵢⴻⵜⵜⵡⴰⵙⵓⵇⵍⴻⵏ. ⵜⵣⴻⵎⵔⴻⴹ ⴷⴰⵖⴻⵏ ⴰⴷ ⵜⵡⴰⵍⵉⴹ Aḍebsi ⴰⴽⴽⴻⵏ ⴰⴷ ⵜⴻⴱⴷⵓⴹ ⵛⵛⵖⴻⵍ ⵏ ⵜⵙⵓⵇⵉⵍⵜ.

ⴰⴽⴽⴻⵏ ⴰⴷ ⵜⴻⵙⵏⵉⵍⴻⵙⴹ ⴰⴽⴽⴻⴷ ⵢⵉⴼⴻⵔⴷⵉⵙⴻⵏ ⵏ ⵓⴹⵔⵉⵙ ⴰⵔⴰ ⵜⵡⴰⵍⵉⴹ ⴷⴷⴰⵡⴰ, ⴻⴼⴽⴷ ⵢⵉⵡⴻⵏ ⵏ ID ⵉ ⵢⵉⴼⴻⵔⴷⵉⵙⴻⵏ. ⵓⴽⴻⵙⵙⴰⵔ ⵜⵣⴻⵎⵔⴻⴹ ⴰⴷ ⵜⴰⴼⴻⴹ ⴰⵎⴻⴷⵢⴰ ⴰⵏⴷⴰ ⴰⵔⴰ ⵜⴻⵙⴱⴻⴷⴷⴻⴹ ⵉⴷ ⵏ ⵢⵉⵡⴻⵏ ⵏ ⵓⴼⴻⵔⴷⵉⵙ:

Anvil Editor Rename Component

ⵉⴷⵙ ⵉ ⵏⴻⵙⵙⴻⵅⴷⴰⵎ ⴷ:

<ⵜⵉⵍⵉⵙⴰ ⵏ ⵟⵟⴰⴱⵍⴰ="2">

<ⴰⵇⴻⵔⵔⵓ>

<ⵜⵔ>

<ⵡⵉⵙ>

ⴰⴼⴻⵔⴷⵉⵙ

</ⵜⵉⵙ>

<ⵡⵉⵙ>

ⵜⴰⵎⴰⴳⵉⵜ

</ⵜⵉⵙ>

</ⵜⵔ>

</ⴰⵇⴻⵔⵔⵓ>

<ⵜⴰⴼⴻⴽⴽⴰ>

<ⵜⵔ>

<ⵜⴷ ⵛⵍⴰⵙⵙ="ⴰⵍⴻⵎⵎⴰⵙ ⵏ ⵓⴹⵔⵉⵙ">ⵜⵓⵜⵍⴰⵢⵜ ⵏ ⵓⵖⴱⴰⵍⵓ</ⵜⴷ>

<ⵜⴷ ⵜⴰⵖⵓⵍⵜ="ⴰⵍⴻⵎⵎⴰⵙ ⵏ ⵓⴹⵔⵉⵙ">ⵜⵓⵜⵍⴰⵢⵜ_taɣbalut</ⵜⴷ>

</ⵜⵔ>

<ⵜⵔ>

<ⵜⴷ ⵛⵍⴰⵙⵙ="ⴰⵍⴻⵎⵎⴰⵙ ⵏ ⵓⴹⵔⵉⵙ">ⵜⵓⵜⵍⴰⵢⵜ ⵏ ⵓⵙⵎⴻⵍ</ⵜⴷ>

<ⵜⴷ ⵜⴰⵖⵓⵍⵜ="ⴰⵍⴻⵎⵎⴰⵙ ⵏ ⵓⴹⵔⵉⵙ">ⵜⵓⵜⵍⴰⵢⵜ_ⵜⴰⵎⴻⵣⵡⴰⵔⵓⵜ</ⵜⴷ>

</ⵜⵔ>

<ⵜⵔ>

<ⵜⴷ ⵛⵍⴰⵙⵙ="ⴰⵍⴻⵎⵎⴰⵙ ⵏ ⵓⴹⵔⵉⵙ">ⵜⵓⵜⵍⴰⵢⵜ ⵏ ⵓⵖⴱⴰⵍⵓ Tafelwit ⵏ ⵓⴹⵔⵉⵙ</ⵜⴷ>

<ⵜⴷ class="ⴰⴹⵔⵉⵙ-ⴰⵍⴻⵎⵎⴰⵙ">ⴰⴹⵔⵉⵙ_ⴰⵖⴱⴰⵍⵓ</ⵜⴷ>

</ⵜⵔ>

<ⵜⵔ>

<ⵜⴷ ⵛⵍⴰⵙⵙ="ⴰⴹⵔⵉⵙⴰⵍⴻⵎⵎⴰⵙ">ⴰⴹⵔⵉⵙ ⵢⴻⵜⵜⵡⴰⵙⵓⵇⵇⵍⴻⵏ ⴰⴹⵔⵉⵙ ⴰⵎⴻⵔⴽⴰⵏⵜⵉ</ⵜⴷ>

<ⵜⴷ class="ⴰⴹⵔⵉⵙ-ⴰⵍⴻⵎⵎⴰⵙ">ⴰⴹⵔⵉⵙ_ⵢⴻⵙⵙⵓⵇⵇⵍⴻⵏ</ⵜⴷ>

</ⵜⵔ>

</ⵜⴰⴼⴻⴽⴽⴰ>

</ⵜⴰⴼⴻⵍⵡⵉⵜ>

ⵜⴰⵖⵓⵍⵜ ⵏ Onclick

ⵏⴻⵔⵏⴰⴷ ⵢⵉⵡⴻⵏ ⵏ ⵓⴹⴻⴱⵙⵉ ⵢⴻⵜⵜⵡⴰⵙⵇⴻⴷⵛⴻⵏ ⵉ ⵓⵙⴱⴰⴷⵓ ⵏ ⵜⵙⵓⵇⵉⵍⵜ. ⵙⴻⴳ ⵓⵎⴻⵙⵏⵉⵍⴻⵙⵉⴽ ⵜⵜⴻⴽⵙⴻⴹ ⵖⴻⴼ ⵜⵎⴻⵥⴷⵉⵜ ⵙⵢⴻⵏ ⵙⵇⴻⴷⵛⴻⴹ ⵙ ⵡⴰⴷⴷⴰ ⴷⴻⴳ ⵜⴼⴻⵍⵡⵉⵜ ⵏ ⵜⵖⴰⵡⵙⵉⵡⵉⵏ. ⴷⴻⴳ ⵜⵍⴻⵎⵎⴰⵙⵜ, ⴰⴷ ⵜⵡⴰⵍⵉⴹ ⴰⵃⵔⵉⵛ ⵏ ⵜⴻⴷⵢⴰⵏⵜ. ⴷⴻⴳ ⵓⵎⴹⵉⵇ ⵏ ⵓⴹⵔⵉⵙ ⵢⴻⵍⵍⴰⵏ ⵣⴷⴰⵜ ⵏ “ⵛⵍⵉⵛⴽ”, ⵙⵙⴻⴽⵛⴻⵎ “ⵜⵔⴰⵏⵙⵍⴰⵜⴻ” ⵙⵢⴻⵏ ⴹⴻⴳⴳⴻⵔ ⵖⴻⴼ ⵜⴼⴻⵍⵡⵉⵜ ⵢⴻⵍⵍⴰⵏ ⵙ ⵢⵉⴷⵉⵙ ⴰⵢⴻⴼⴼⵓⵙ ⵏ ⵓⵎⴹⵉⵇⴰⴳⵉ ⵏ ⵓⴹⵔⵉⵙ.

ⴰⵢⴰ ⴰⴷ ⴽⵢⴰⵡⵉ ⵖⴻⵔ ⵜⵎⵓⵖⵍⵉ ⵏ ⵓⴹⵔⵉⵙ ⴰⵏⴷⴰ ⴰⵔⴰ ⵜⵡⴰⵍⵉⴹ ⴽⵔⴰ ⵏ ⵓⴹⵔⵉⵙ ⵏ python ⵉ ⴷⵢⴻⵜⵜⵡⴰⵙⵏⵓⵍⴼⴰⵏ ⵙ ⵡⵓⴷⴻⵎ ⴰⵡⵓⵔⵎⴰⵏ.

ⴰⴷ ⵜⴰⴼⴻⴹ ⴱⴻⵍⵍⵉ anvil ⵢⴻⵔⵏⴰⴷ ⵙ ⵡⵓⴷⴻⵎ ⴰⵡⵓⵔⵎⴰⵏ ⵢⵉⵡⴻⵜ ⵏ ⵜⵖⴰⵡⵙⴰ ⵓⵎⵉ ⵇⵇⴰⵔⴻⵏ ⴰⵙⵓⵇⴻⵍ. ⴰⴷ ⵢⴻⵜⵜⵡⴰⵙⴻⵎⵎⴰ ⵢⴰⵍ ⵜⵉⴽⴽⴻⵍⵜ ⴰⵔⴰ ⵢⴻⵜⵜⵡⴰⵇⵍⴻⵄ ⵓⵇⴻⵔⵔⵓⵢ ⵢⴻⵍⵍⴰⵏ ⴷⴻⴳ UInneɣ.

ⴰⵜⴰⵏ ⵡⴰⵎⴻⴽ ⵉⵍⴰⵇ ⴰⴷ ⵜⵉⵍⵉ ⵜⴻⵖⵍⵉⴼⵜ:

def translate(self, **event_args):
 """This method is called when the button is clicked"""
 src_lang=self.source_lang.selected_value #get the selected source language
 dest_lang=self.dest_lang.selected_value #get the selected destination language
 text=self.source_text.text   #get the text written in source language
 #call the server function
 translated_text=anvil.server.call("translation",text,src_lang,dest_lang)
 #write the translated text to the UI
 self.translated_text.content=translated_text

ⵜⴰⵖⵓⵍⵜⴰ ⵜⴻⵜⵜⴳⴻⵏ 3 ⵏ ⵍⴻⵛⵖⴰⵍ ⵉⴳⴻⵊⴷⴰⵏⴻⵏ:

  1. Awid ⵉⵙⴰⵍⵍⴻⵏ ⵙⴻⴳ UI

  2. ⴰⵣⵏⴻⴹ ⵉⵙⴰⵍⴰⵏ ⵙ ⴱⴰⵛⴽⴻⵏⴷⵏⵏⴻⵖ ⵙ ⵓⵙⴻⵇⴷⴻⵛ ⵏ ⵜⵎⴻⵥⵍⴰ ⵏ ⵓⵇⴻⴷⴷⴰⵛ “ⵜⴰⵙⵓⵇⵉⵍⵜ” (ⴰⴷ ⵜⵜⵏⴻⵙⴼⴻⵀⵎⴻⴹ ⴷⴻⴳ ⵓⵃⵔⵉⵛ ⵉ ⴷⵉⵜⴻⴷⴷⵓⵏ) .

  3. ⴰⵣⵏⴻⴹ ⴰⴹⵔⵉⵙ ⵢⴻⵜⵜⵡⴰⵙⵓⵇⵍⴻⵏ ⵖⴻⵔ UI.

ⵜⴰⵖⵓⵍⵜ ⵏ ⵓⵇⴻⴷⴷⴰⵛ

ⴰⴷ ⵏⵡⴰⵍⵉ ⵙ ⵜⵎⵓⵖⵍⵉⴰⴳⵉ ⵏ ⵜⴼⴻⵍⵡⵉⵜ:

translated_text=anvil.server.call("translation",text,src_lang,dest_lang)

ⵏⴻⵙⵙⴻⵇⴷⴰⵛ anvil.server.ⵛⴰⵍⵍ ⴰⴽⴽⴻⵏ ⴰⴷ ⵏⴻⵙⵙⵉⵡⴻⵍ ⵉ ⵜⵎⴻⵥⵍⴰ ⵏ ⵓⵇⴻⴷⴷⴰⵛ ⵓⵎⵉ ⵇⵇⴰⵔⴻⵏ ⴰⵙⵓⵇⴻⵍ ⴰⵔⴰ ⴷⵏⴻⵙⵙⴻⴱⴷⴻⴷ ⴷⴻⴳ ⵓⴹⵔⵉⵙⵏⵏⴻⵖ ⵏ ⴱⴰⵛⴽⴻⵏⴷ ⴷⴻⴳ ⵜⵎⴰⵛⵉⵏⵜ ⵜⴰⴷⵉⴳⴰⵏⵜ.

ⵜⴰⵖⵓⵍⵜⴰ ⴰⴷ ⵜⵉⵍⵉ ⴷ ⵜⵓⵇⵇⵏⴰ ⴳⴰⵔ ⵡⴻⴱ UI ⴷ ⵓⴹⵔⵉⵙ ⵏ ⴱⴰⵛⴽⴻⵏⴷ ⴰⵔⴰ ⵉⵅⴻⴷⴷⵎⴻⵏ ⴷⴻⴳ ⵓⵎⴹⴰⵏⵏⵏⴻⵖ ⵏ ⵜⵙⵓⵇⵉⵍⵜ ⵏ ⵜⵎⴰⵛⵉⵏⵉⵏ.

ⴰⴽⴽⴻⵏ ⵜⴳⴻⵔⴹ ⵜⴰⵎⴰⵡⵜ ⵏⴻⵜⵜⴰⵣⴻⵏ ⴷⴰⵖⴻⵏ ⵉⴼⴻⵔⴷⵉⵙⴻⵏ ⵏ ⵜⵎⴻⵥⵍⴰⴰⴳⵉ ⴷⴻⴳ ⵜⵎⴻⵥⵍⴰ anvil.server.ⵛⴰⵍⵍ.

ⵙⵙⴻⵇⴷⴻⵛ ⴰⵎⵓⴷⵏⵏⴻⵖ ⵏ MT

ⴰⴷ ⵏⴻⵙⵙⴻⵔⵙ ⵜⴰⵣⵡⴰⵔⴰ anvil

pip install anvil-uplink

ⵜⵓⵔⴰ ⵏⴻⴱⵏⴰⴷ ⵜⴰⵖⴻⵛⵜⵏⵏⴻⵖ ⵡⴻⴱ ⴷⴻⴳ ⵓⵎⴻⵙⵏⵉⵍⴻⵙ ⵏ anvil ⵢⴻⵔⵏⴰ ⵏⴻⵙⵄⴰ ⵉⴼⴻⵔⴷⵉⵙⴻⵏ ⵏ ⵜⵎⴻⵏⴹⴰⵡⵜ ⵏ ⵍⵍⵙⴰⵙ ⴰⴽⴽⴻⵏ ⴰⴷ ⵏⴻⵅⴷⴻⵎ ⴰⵎⵓⴷⵏⵏⴻⵖ ⵏ ⵜⵙⵓⵇⵉⵍⵜ ⵏ ⵜⵎⴰⵛⵉⵏⵉⵏ ⵢⴻⵔⵏⴰ ⴰⴷ ⵏⴻⵅⴷⴻⵎ ⵜⴰⵙⵓⵇⵉⵍⵜ.

ⴰⴹⵔⵉⵙ ⵉ ⴷⵉⵜⴻⴷⴷⵓⵏ ⴷ ⴰⵙⴻⴱⴷⴻⴷ ⵏ ⵜⵎⴻⵥⵍⴰ ⵏ ⵓⵇⴻⴷⴷⴰⵛ ⵉⵖⴻⴼ ⴷⵏⴻⵎⵎⴻⵙⵍⴰⵢ ⴷⴻⴳ ⵓⵃⵔⵉⵛ ⵉⵄⴻⴷⴷⴰⵏ.

ⴰⵜⴰⵏ ⵓⴽⴰⵔⴰⵎ ⵏ ⵜⴻⵖⵍⵉⴼⵜ:

@anvil.server.callable
def translation(text,src,dest):
 lang_code={"English":"en",
       "German":"de",
       "French":"fr",
       "Spanish":"es"}
      model=MarianMTModel.from_pretrained("./models/"+lang_code[src]+"_"+lang_code[dest])
 tok=MarianTokenizer.from_pretrained("./models/"+lang_code[src]+"_"+lang_code[dest]+"/tok")
 gen = model.generate(**tok.prepare_seq2seq_batch(src_texts=[text], return_tensors="pt"))
 words: List[str] = tok.batch_decode(gen, skip_special_tokens=True)
 return words[0]

ⵜⴰⵖⵓⵍⵜⴰ ⴰⴷ ⵜⴻⵟⵟⴻⴼ 3 ⵏ ⵢⵉⴼⴻⵔⴷⵉⵙⴻⵏ ⵢⴻⵜⵜⵡⴰⵣⴻⵏ ⵙⴻⴳ frontend, ⴰⴷ ⵜⴻⵙⵙⴻⵎⵍⵉⵍ ⵜⵓⵜⵍⴰⵢⵉⵏ ⵏ ⵓⵖⴱⴰⵍⵓ ⴷ ⵜⵓⵜⵍⴰⵢⵉⵏ ⵏ ⵜⵖⴻⵔⵖⴻⵔⵜ ⵙ ⵢⵉⴼⵓⵢⵍⴰ ⵏ ⵜⵓⵜⵍⴰⵢⵉⵏ ⵏ ⵢⴰⵍ ⵢⵉⵡⴻⵏ ⵙⵢⴻⵏ ⴰⴷ ⵜⴻⵞⵞⴰⵔ ⵉⵎⵓⴷⴻⵍ ⵢⴻⵔⵏⴰ ⴰⴷ ⵜⴻⵃⵙⴻⴱ ⵜⴰⵙⵓⵇⵉⵍⵜ ⵢⴻⵔⵏⴰ ⴰⴷ ⴷⵜⴻⵔⵔ ⴰⴳⵎⵓⴹ.

ⴰⴱⵔⵉⴷ ⵉ ⵡⴰⴽⴽⴻⵏ ⴰⴷ ⴷⵜⴻⵙⵙⴻⴽⵏⴻⴹ ⵜⴰⵖⵓⵍⵜⴰ ⵉ anvil ⴰⵎ ⵜⴰⵖⵓⵍⵜ ⵏ ⵓⵇⴻⴷⴷⴰⵛ ⴷ ⴰⵙⴻⵇⴷⴻⵛ ⵏ ⵓⵎⵛⴻⴱⴱⴻⵃ

@anvil.ⴰⵇⴻⴷⴷⴰⵛ.ⵢⴻⵣⵎⴻⵔ ⴰⴷ ⵢⴻⵜⵜⵡⴰⵙⴻⵎⵎⴰ.

ⵏⴻⵙⵄⴰ ⵢⵉⵡⴻⵏ ⵏ ⵓⵙⵡⵉⵔ ⴰⵏⴻⴳⴳⴰⵔⵓ ⴰⵔⴰ ⵏⴻⵅⴷⴻⵎ ⴰⴽⴽⴻⵏ ⴰⴷ ⵏⴻⵙⵙⴻⵎⵍⵉⵍ ⴰⴽⴰⵔⴰⵎ ⵏ ⴱⴰⵛⴽⴻⵏⴷ ⵉ ⵏⴻⵣⵎⴻⵔ ⴰⴷ ⵜⵏⴻⵅⴷⴻⵎ ⴷⴻⴳ ⵢⵉⵡⴻⵏ ⵏ ⵓⴷⵍⵉⵙ ⵏ jupyter ⵙ ⵓⵙⴻⵇⴷⴻⵛⵏⵏⴻⵖ ⵏ anvil.

ⴰⴷ ⵜⵕⵓⵃⴻⴹ ⵖⴻⵔ ⵓⵎⴻⵙⴽⴰⵔ ⵏ l’internet anvil, ⴰⴷ ⵜⵜⴻⴽⵙⴻⴹ ⵖⴻⴼ ⵜⴼⴻⵍⵡⵉⵜ ⵏ ⵜⵎⴻⵥⴷⵉⵜ, ⵙⵢⴻⵏ ⴰⴷ ⵜⵜⴻⴽⵙⴻⴹ ⵖⴻⴼ “Uplink...”.

ⵡⴰⵍⵉ ⵜⴰⵙⴻⴽⴽⵉⵔⵜ ⴷⴷⴰⵡⴰ

Anvil Editor Uplink

ⴰⴷ ⵜⵡⴰⵍⵉⴹ ⴰⴷ ⴷⵢⴻⴼⴼⴻⵖ ⵢⵉⵡⴻⵏ ⵏ ⵓⵙⵎⴻⵍ, ⵙⵢⴻⵏ ⴰⴷ ⵜⵜⴻⴽⵙⴻⴹ ⵖⴻⴼ “Sseqdec ⴰⵙⴻⵏⵇⴻⴷ ⵏ ⵓⵇⴻⴷⴷⴰⵛ ⵉ ⵜⴻⵙⴳⵉⵍⵜⴰ” ⴰⴽⴽⴻⵏ ⴰⴷ ⴷⵜⴰⴼⴻⴹ ⴰⴽⴰⵔⴰⵎ ⵏ ⵜⵓⵇⵇⵏⴰ ⵉ ⵜⴻⵙⵏⵓⵍⴼⵓⴹ.

Anvil Uplink

ⵜⴹⴻⴳⴳⵔⴻⴹ ⴰⴽⴰⵔⴰⵎ ⴷⴻⴳ ⵓⴹⵔⵉⵙ ⵏ ⵓⴽⴰⵔⴰⵎ ⵉ ⴷⵉⵜⴻⴷⴷⵓⵏ:

anvil.server.connect("code here")

ⵜⴰⵖⴻⵛⵜⴰ ⴰⴷ ⵜⴻⴱⴷⵓ ⴰⵇⴻⴷⴷⴰⵛ ⴰⵔⴰ ⵉⵛⵓⴷⴷⴻⵏ ⴰⵙⴻⴽⴽⵉⵍⵉⴽ ⵏ ⵓⴹⵔⵉⵙ ⴰⴷⵉⴳⴰⵏ ⵏⴻⵖ ⴰⴹⵔⵉⵙ ⵏ jupyter ⵙ ⵓⵙⴻⵇⴷⴻⵛ ⵏ anvil ⵙ ⵜⵎⴻⵥⵍⴰ ⵜⴰⵙⵓⵇⵉⵍⵜ ⵢⴻⵜⵜⵡⴰⵙⴽⴻⵍⵙⴻⵏ ⴷ ⵜⵎⴻⵥⵍⴰ ⵏ ⵓⵇⴻⴷⴷⴰⵛ.

ⴰⵙⵓⵔⵉⴼ ⴰⵏⴻⴳⴳⴰⵔⵓ

ⴰⵔ ⴰⵙⵙⴰ, ⵜⴻⵙⵄⵉⴹ ⴰⵇⴻⴷⴷⴰⵛⵉⴽ ⵏ ⴱⴰⵛⴽⴻⵏⴷ ⵢⴻⵜⵜⵡⴰⵅⴷⴻⵎ ⵙ ⵜⵎⴻⵥⵍⴰ ⵏ ⵓⵇⴻⴷⴷⴰⵛ ⵉ ⵢⴻⵜⵜⵃⴰⵣⴻⵏ ⴰⵎⴹⴰⵏ ⵏ ⵜⵙⵓⵇⵉⵍⵜ ⵏ ⵜⵎⴰⵛⵉⵏⵜ ⵢⴻⵔⵏⴰ ⵉⵅⴻⴷⴷⴻⵎ ⵜⴰⵙⵓⵇⵉⵍⵜ ⴷⴻⴼⴼⵉⵔ ⵎⴰ ⵜⵃⴻⵙⴱⴻⴹ ⵉⴼⴻⵔⴷⵉⵙⴻⵏ ⵢⴻⵜⵜⵡⴰⵣⴻⵏ ⵙⴻⴳ frontend. ⴰⴹⵔⵉⵙⴰ ⵢⴻⵙⵙⴻⴳⵣⴰⵢⴷ ⴰⵢⴻⵏ ⵉ ⴷⵏⴻⵙⵙⴻⴹⵔⴰ ⴰⴽⴽ ⴰⵔ ⴰⵙⵙⴰ.

Anvil Uplink

ⴰⴹⵔⵉⵙ ⴰⵏⴻⴳⴳⴰⵔⵓ ⴷ ⴰⵙⴻⵇⴷⴻⵛ ⵏ ⵓⵙⴻⵇⴷⴻⵛ ⵙ ⵓⴹⴼⴰⵔ ⵏ ⵜⵎⴻⵥⴷⵉⵜ ⵏ ⵓⵙⵙⴻⵇⴷⴻⵛ ⴷⴻⴳ ⵜⵍⴻⵎⵎⴰⵙⵜ ⵏ ⵜⴼⴻⵍⵡⵉⵜ ⵏ ⵓⵎⴻⵙⵏⵉⵍⴻⵙ ⵏ anvil.

ⴷⴻⴼⴼⵉⵔ ⵎⴰ ⵜⴻⵙⴱⴻⴷⴷⴻⴹ ⴰⵙⴻⵏⴼⴰⵔⵏⵏⵉ ⴰⴷ ⵜⵡⴰⵍⵉⴹ ⴷⴻⴳ ⵜⵍⴻⵎⵎⴰⵙⵜ ⵏ ⵓⴼⴻⵍⵍⴰ ⵏ ⵢⵉⴷⵉⵙ ⴰⵢⴻⴼⴼⵓⵙ ⵢⵉⵡⴻⵏ ⵏ ⵓⴹⴻⴱⵙⵉ “ⵙⵙⵓⴼⵖⴻⴹ ⴰⵙⴻⵏⴼⴰⵔⴰ” ⴰⵔⴰ ⴽⴷ-ⵢⴻⴼⴽⴻⵏ ⵢⵉⵡⴻⵏ ⵏ ⵓⵙⵎⴻⵍ ⵉ ⵜⵣⴻⵎⵔⴻⴹ ⴰⴷ ⵜⵜⴻⴱⴹⵓⴹ ⴰⴽⴽⴻⵏ ⴰⴷ ⵜⴽⴻⵛⵎⴻⴹ ⴰⵙⴻⵏⴼⴰⵔⵏⵏⵉ ⵢⴻⵔⵏⴰ ⴰⴷ ⵜⵅⴻⴷⵎⴻⴹ ⵜⴰⵙⵓⵇⵉⵍⵜⵉⴽ!

ⵜⴰⴳⴳⴰⵔⴰ

ⵙ ⵓⴹⴼⴰⵔ ⵏ ⵓⵎⴰⴳⵔⴰⴷⴰ ⵜⵣⴻⵎⵔⴻⴹ ⴰⴷ ⵜⴻⵙⴱⴻⴷⴷⴻⴹ ⴰⵎⴹⴰⵏ ⵏ MT ⵢⴻⵔⵏⴰ ⴰⴷ ⵜⴻⴱⵏⵓⴹ ⵜⴰⵖⴻⵛⵜ ⵡⴻⴱ ⴰⴽⴽⴻⵏ ⴰⴷ ⵜⵜⴻⵙⵇⴻⴷⵛⴻⴹ.

ⵎⴰⵣⴰⵍ ⴰⵟⴰⵙ ⴰⵔⴰ ⴷⵜⴰⴼⴻⴹ ⵖⴻⴼ ⵡⴰⵎⴻⴽ ⴰⵔⴰ ⵜⴻⵙⴱⴻⴷⴷⴻⴹ ⵙ ⵜⵖⴰⵡⵍⴰ ⴰⵎⴹⴰⵏ ⵙ ⵓⵙⴻⵇⴷⴻⵛ ⵏ anvil ⵎⴰⵛⴰ ⵜⵓⵔⴰ ⵜⴻⵙⵄⵉⴹ ⵍⵙⴰⵙ ⴰⴽⴽⴻⵏ ⴰⴷ ⵜⴻⴱⴷⵓⴹ ⵜⵉⴽⵍⵉⵉⵏⴻⴽ ⵏ ⵓⵙⴱⴻⴷⴷⵉ ⵢⴻⵔⵏⴰ ⴰⴷ ⵜⴻⵙⵏⴻⵔⵏⵉⴹ ⵜⴰⵣⵎⴻⵔⵜ ⵏ ⵜⵎⵓⵙⵏⵉⵉⵏⴻⴽ ⵏ ⵣⵉⴽ ⴷⴻⴳ Python ⴰⴽⴽⴻⵏ ⴰⴷ ⵜⵅⴻⴷⵎⴻⴹ ⴰⵟⴰⵙ ⵏ ⵡⴰⵢⴻⵏ ⵏⵏⵉⴹⴻⵏ!

ⴰⵙⴷ ⵖⴻⵔ ⵢⵉⵡⴻⵏ ⵙⴻⴳ ⵢⵉⵙⴰⵔⴰⴳⴻⵏⵏⵏⴻⵖ ⵉⵍⴻⵍⵍⵉⵢⴻⵏ

ⴱⴷⵓ ⵛⵛⵖⴻⵍⵉⴽ ⴷ ⴰⵎⵓⵙⵏⴰⵡ ⵏ ⵢⵉⵙⴻⴼⴽⴰ ⵙ ⵜⵉⵖⴰⵡⵙⵉⵡⵉⵏⵏⵏⴻⵖ ⵜⵉⵍⴻⵍⵍⵉⵢⵉⵏ, ⴰⵢ ⴷⵢⴻⵍⵍⴰⵏ ⵙ ⵍⵙⴰⵙ ⵏ ⵡⴰⵀⵉⵍ ⵏ ⵓⵙⴻⵍⵎⴻⴷ ⴰⵢ ⵉⵣⴻⵎⵔⴻⵏ ⴰⴷ ⵢⴻⵜⵜⵡⴰⵙⵏⴻⴼⵍⵉ ⵢⴻⵔⵏⴰ ⵜⵜⵡⴰⴹⴻⴼⵔⴻⵏ ⵙⵖⵓⵔ ⵢⵉⵎⴰⵣⵣⴰⵢⴻⵏ ⵏ ⵜⴻⵎⴳⵓⵔⵉ.


Career Services background pattern

ⵉⵎⴻⵥⵍⴰ ⵏ ⵜⵎⵓⵙⵏⵉ

Contact Section background image

ⴰⴷ ⵏⴻⵇⵇⵉⵎ ⴷⴻⴳ ⵓⵙⵉⵡⴰⴹ

Code Labs Academy © 2024 ⵉⵣⴻⵔⴼⴰⵏ ⴰⴽⴽ ⵜⵜⵡⴰⵃⴻⵔⵣⴻⵏ.