Cijela stranica na pet jezika za 12 minuta, iz naredbenog retka

Ova web stranica napisana je na engleskom jeziku. Njemačka, francuska, hrvatska, španjolska i arapska verzija, uključujući 54 stranice dokumentacije, prevedene su pomoću SwiftLing Proa s komandne linije, koristeći OpenAI i vlastiti ključ. Evo što sam pokrenuo, koliko je trajalo i što sam još uvijek radio ručno.

Postavka

SwiftLing i SwiftLing Pro su aktivni, pet jezika je dodano na zaslon Jezici, a OpenAI ključ je spremljen na zaslonu Usluge prevođenja. Odabrao sam OpenAI kao uslugu za prevođenje, a gpt-6-sol kao model. Prvo sam stranicu s početne stranice preveo pomoću DeepL-a, a zatim cijelu stranicu, ali sam utvrdio da je prijevod OpenAI-ja bolji, pa sam ga zamijenio.

Zapovijed

wp swiftling translate --all --kind=post --lang=de --again=machine --user=admin

--all uzima svaku stranicu jedne vrste, --lang je jezik (ovdje njemački), i --again=machine ponovno prevodi tekstove koje je stroj prethodno preveo, čime je zamijenjen DeepL pas. Bez --again zapovijed popunjava samo tekstove koji još nemaju prijevod. Svaka se stranica prvo otvara na poslužitelju, tako da SwiftLing vidi tekstove koje posjetitelj vidi, a zatim se njegovi tekstovi šalju usluzi.

Zapravo sam pokrenuo ovu naredbu s popisom stranica umjesto --all, jer sam namjerno izostavio dvije pravne stranice: pravni tekst ne bi smjela prevoditi mašina bez da ga netko provjeri. Pokrenuo sam ga za svih pet jezika odjednom, po jedan proces za svaki jezik, pa je ukupno vrijeme trajanja ono vrijeme najsporijeg procesa.

Brojke

Languages5 (German, French, Croatian, Spanish, Arabic)
Pages54, plus the categories
Texts5,870
Characters sent622,050
Modelgpt-6-sol
Total time12 min 33 s
Fastest language (French)9 min 47 s
Slowest language (Croatian)12 min 33 s

Nisam prevodio jezike jedan za drugim. Pokrenuo sam pet procesa odjednom, po jedan za svaki jezik, i oni su se odvijali paralelno. Dakle, ukupno vrijeme je vrijeme najsporijeg, hrvatskog. Jedan za drugim, pet bi trajalo oko 55 minuta (pet puta zbrojeno). Test jedne stranice u dva jezika poslao je 3.810 znakova i trajao 25 sekundi, a to sam iskoristio za planiranje izvršenja.

Koliko je koštalo

OpenAI naplaćuje tokene, a ne znakove. Na stranici o korištenju prikazuje ukupno 4,67 USD za taj dan: 437 zahtjeva i 353.000 ulaznih tokena. Ta brojka obuhvaća sve što sam tog dana napravio s ključem, ne samo ovu izvedbu. Uključuje moje ranije testove na skupljem modelu gpt-6-astra, pa je izvedba cijele stranice na gpt-6-sol koštala manje od 4,67 USD. Nisam ih odvojio i procjenjujem da je sama izvedba za cijelu stranicu koštala oko 3 dolara. SwiftLingov vlastiti brojač pokazao je znatno manje jer je izgubio neke od svojih zbrojeva kada su mu pet procesa istovremeno pisalo.

Ono što sam napravio ručno

  • Odabrao sam uslugu i model na zaslonu usluge prijevoda.
  • Dvije vrste teksta nisu bile riječi, pa ih je SwiftLing ostavio netaknutima ili sam mu rekao da zadrži original: adrese slika i primjer koda.
  • Arapski se prikazuje s desna na lijevo, što zahtijeva WordPressov vlastiti paket za arapski jezik.
  • Početna stranica, zaglavlje i podnožje ranije su prevedeni pomoću DeepL-a i nisu ponovno obrađeni.

Što je pošlo po zlu i što to ne znači

  • Pokretanje pet jezika istovremeno otkrilo je dvije greške u SwiftLingu: jedan redak indeksa pretraživanja je dvaput upisan, a brojač upotrebe je izgubio brojanje. Pokretanje jezika jedan za drugim ne izaziva nijedan od tih problema. To su bili bugovi u dodatku i popravio sam oba: redak indeksa se sada zamjenjuje umjesto da se ubacuje, a brojač je napisan tako da nijedan proces ne može prebrisati tuđe brojeve.
  • Ovo su strojni prijevodi. Nitko ih još nije pročitao, a SwiftLing ih označava kao takve kako bi ih netko mogao pregledati u uređivaču. Ne mogu čitati arapski, pa bi to trebao učiniti materinski govornik.
  • Pravne stranice su namjerno ostavljene na izvornom jeziku.
  • Tekstovi koje skripta generira nakon učitavanja stranice ne mogu se pronaći pomoću naredbe, jer naredba otvara stranicu bez izvođenja skripti.

Ako to želite isprobati, naredbe su u WP-CLI dokumentaciji. Ako naiđete na nešto što ne radi kako treba, javite mi na GitHubu.