Retejo kiu parolas dekojn da lingvoj, sen tradukistoj
Aŭtomata traduko el la itala. · legu la originalon
Kiel ni konstruis la tradukosistemon kiu funkcias sub ĉi tiuj paĝoj: AI kiam bezonate, kaŝmemoro ĉiam, nula perceptata atendo.
La problemo de tradicia i18n
Dum jaroj, la internaciigo de retejo estis eta odiseo de labrovoj: dosieroj .po, homaj tradukistoj, forgesitaj ŝlosiloj, prokrastigitaj deplojoj ĉar "ankoraŭ mankas la germana". Aldoni lingvon kostis tempon kaj monon; aldoni dek estis neatendebla por ajna eta entrepreno.
Kun la lastgeneraciaj LLM-oj, la kvalito de aŭtomata tradukado atingis punkton en kiu — por entreprena retejo, ne por literaturo — ĝi sufiĉas. La demando ne plu estas "ĉu ni povas traduki ĝin aŭtomate", sed "kiel ni integras ĝin sen rompi la uzantaran sperton".
La arkitekturo, en mallonga
La retejo estas servata statike en la itala. Kiam uzanto elektas alian lingvon, enludas eta motoro sur tri MongoDB-kolektoj:
i18n_base: la teksto fonta en la elektita lingvo (hodiaŭ itala), ĉiu kun la deklaro de sia lingvo, priskribo de kie kaj kial ĝi aperas en la retejo (esenca por la kvalito de la traduko), tono kaj limigo de karakteroj. Ĉi tiu priskribo fariĝas parto de la peto al la LLM, kiu tiel scias ĉu ĝi tradukas butonon aŭ alineon.i18n_human: la tradukoj zorge faritaj per mano, kiam por iu paĝo ni volas redaktorian kvaliton anstataŭ la eliron de la LLM. Ili havas prioritaton super la aŭtomata kaŝmemoro kaj "markiĝas" aŭtomate kiam la fonta teksto ŝanĝiĝas.i18n_cache: la tradukoj jam generitaj, indeksiĝintaj por (kampo, lingvo). Ĉiu eniro konservas la horstamplon de la baza teksto je la momento de la generacio.articoli_i18n: sama logiko aplikata al la pli longaj enhavoj, kiel ĉi tiu artikolo.
Je la unua aliro en nova lingvo, la sistemo petas al la LLM nur la fakte mankantajn kampojn, konservas la respondon en la kaŝmemoro kaj liveras ĝin al la navigilo. Je la sekvaj vizitoj, la sama lingvo alvenas instante, sen pluaj vokiĝoj de AI.
La invalido kiu funkcias
Kaŝmemoro estas ordigita mensogo: ĝi diras "mia vero estas ĉi tiu" ĝis iu pruvas, ke ĝi estas falsa. La mekanismo por malkredigi ĉi tie estas simpla: ĉiu kaŝmemorita traduko memoras la horstemplon de la baza teksto, kiu ĝin generis. Kiam vi modifas la italan tekston kaj plialigas ĝian updated_at, ĉiuj tradukoj de tiu kampo en ĉiuj lingvoj aŭtomate fariĝas malnovaj kaj estas regeneritaj laŭbezone. Neniu manuala kaskado, neniu kaŝmemoro por malplenigi.
La uzanto kiu ne atendas
La plej interesa parto ne estas la traduko — estas kiel ĝi estas montrata. Ĉe ŝanĝo de lingvo, la navigilo havas antaŭ si italan paĝon kun malgrandaj rotaciuloj apud ĉiu teksta bloko por ĝisdatigi. La tentigo estas fari unuopan vokon, kiu tradukas ĉion kune: simple, klare, kaj kondamnas la uzanton atendi ĝis la LLM finos ĉion antaŭ ol vidi ajnan ŝanĝon.
Ni iris en la kontraŭan direkton. La tekstoj estas grupigitaj laŭ sekcio (navbara, korpo, piedo) kaj disigitaj en mikro-batch-ojn de tri kampoj ĉiu. La vokoj startas sinsekve: unue la malmultaj kampoj de la navbara, kiuj aperas en kelkaj sekundoj — la uzanto vidas, ke io okazas kaj komencas legi. Dum li legas, alvenas la unua parto de la korpo, poste la dua, fine la piedo.
La nokt laboro
Kaŝmemoro havas nur unu veran malamikon: la unua vizito. La unua germana uzanto pagas la prezon de ĉiuj estontaj tradukoj, kaj lia sperto estas tiu, kiu restas en lia kapo. Por forigi (aŭ preskaŭ) la problemon, tasko en la fono vekiĝas ĉiun minuton, elektas la plej atenditan lingvon inter tiuj ankoraŭ nekompletaj, prenas netradukitan tekston kaj lasas ĝin pasi tra la LLM. En la sekva minuto, la venonta. En kelkaj tagoj la plej disvastigitaj lingvoj jam estas varmaj.
La nokta tasko ankaŭ faras duan metion: aŭtomate revizias dubindajn tradukojn, retentante ilin kun malsama AI-modelo. Kiam la kunordigo inter lingvoj estas grava, meza traduko ne restas tia.
Se vi estas la unua germano de la tago kaj alvenas dum la sistemo ankoraŭ finas la kaŝmemoron, vi tamen havas progresivan ŝarĝon por teni vin okupita. Se vi estas la dua, vi eĉ ne rimarkos.
Kion oni alportas hejmen
Multlingva retejo sen tradukistoj, sen dosieroj por administri, sen deplojo por aldoni lingvon. La uzanto tajpas kodon — ja, ca, eu, kion li volas — kaj la paĝo tradukiĝas. La dua fojo estas tujega. La tria, plej verŝajne, ni jam alvenis tien, tradukita je la ĝusta momento de tasko kiu neniam dormas.
Ĉi tiu sama paĝo, se vi legas ĝin en la germana, en la hispana, en la korea, neniam estis skribita de tradukisto. Ĝi estis tradukita unufoje, de LLM, kaj de tiam ĝi estas servata de la kaŝmemoro. La sola afero skribita mane estas kion vi legas nun se ĝi estas en la itala.
Interesita pri porti ĉi tiun arkitekturon al via retejo? Parolunu pri ĝi.
Kontaktu nin
Vi havas observon? Skribu al ni
La mesaĝo venas nur al ni. Se via komento estas interesa, ni povus publikigi ĝin ĉe la fino de la artikolo, sed nur post taksado.
Dum vi skribas, via retumilo solvas etan malgrandan kalkulan problemon: tio estas nia maniero forteni aŭtomatajn mesaĝojn sen uzi servon de tria persono kaj sen peti vin rekoni semaforojn. Vi ne ricevas demandon, kaj neniu dato forlasas ĉi tiun retejon.