Splync blog má 42 jazyků
Toto je 23. článek na mém blogu pro Splync, sdílený rozpočtový tracker pro páry, přátele a rodiny. Možná se ptáte, jak publikuji každý příspěvek ve 42 jazycích, když jsem solo vývojář. Jak stojí v prohlášení na začátku každého článku, tento web je automaticky překládán do několika jazyků pomocí softwaru, který jsem vytvořil sám. Aby bylo jasno: nepíšu ručně ani jednu větu v žádném jiném jazyce než v angličtině. Proto žádám čtenáře, aby se v případě potřeby přesnosti významu odkázali na původní anglickou verzi. Přesto po mnoha kolech pokusů a omylů při zlepšování překladového procesu věřím, že celková kvalita překladů je přiměřeně dobrá. V tomto článku se podělím o to, co můj software dělá, aby byl blog Splync vícejazyčný.
Python a OpenAI API to zvládnou společně
Vždy začínám psaním každého článku v prosté angličtině, včetně metadat souvisejících se SEO. Poté můj Python skript odešle anglický text na OpenAI API spolu s promptem a malým referenčním souborem. Na serverech OpenAI přečte ChatGPT-4o žádost a vrátí přeložený článek — například arabskou verzi — ve formátu JSON. Jakmile můj MacBook obdrží tento překlad, skript okamžitě odešle další žádost, tentokrát o bengálštinu. Skript automaticky prochází všech 42 cílových jazyků. Na konci procesu má můj počítač 42 přeložených JSON souborů. Další Python skript vloží každý překlad do šablony HTML a vygeneruje 42 HTML souborů za méně než sekundu. Všechny soubory jsou nahrány na server, kde je tento blog hostován, a každá jazyková verze je umístěna do své vlastní složky. Konečně, serverový Python skript aktualizuje index článků a odkazy na „Další příspěvek“, aby navigace ve všech jazycích zůstala konzistentní. S původním anglickým článkem napsaným v prostém textu celý proces obvykle trvá 5 minut nebo méně. Když potřebuji udělat změny, aktualizuji více HTML souborů současně pomocí serverových Python skriptů.
Co je to API
Pokud nejste obeznámeni s technickými výrazy, možná se ptáte, jak můj počítač „mluví“ se serverem OpenAI. Odpovědí je něco nazývané API, Application Programming Interface. API si můžete představit jako okno mezi dvěma programy: jeden program pošle žádost a druhý pošle odpověď. Například můj Python skript pošle zprávu jako: „Prosím, přeložte tento článek do němčiny.“ OpenAI tuto zprávu prostřednictvím API přijme, připraví překlad a pošle výsledek zpět. Funguje to jako objednávka v restauraci: řeknete číšníkovi, co chcete, kuchyně to připraví a číšník to přinese zpět ke stolu. A proč vůbec potřebujete číšníka? Protože nevstupujete do kuchyně ani nemluvíte přímo s kuchařem — nevíte, jak kuchyně funguje, a ani nemusíte. Můžete říci, „Mohu si dát cheeseburger?“ číšníkovi a číšník může zavolat, „Objednávka! T21, Chihuahua!“ v úplně jiném formátu. API hraje stejnou roli. Spojuje dva různé systémy, aniž by vyžadovala, aby se vzájemně rozuměly vnitřnímu jazyku nebo pracovním postupům.
Proč potřebuji OpenAI API
Teď, když víme, co je API, zde je důvod, proč ho pro tento blog skutečně potřebuji. Prakticky řečeno, vím, jak „mluvit“ s ChatGPT osobně — ale mám 42 jazyků k zpracování. Volat číšníka 42krát by bylo únavné (program vynechává překlad angličtiny do angličtiny, ale stále převádí text do JSON). Použití OpenAI API umožňuje mému Python skriptu odesílat všechny tyto žádosti automaticky, čímž mě ušetří od opakující se práce, abych se mohl soustředit na jiné věci. Jsem sólo vývojář, takže musím využívat svůj čas co nejefektivněji. Kdykoli vidím úkol, který je opakující se a má jasná pravidla, automatizuji ho. Výsledkem je obvykle proces, který je milionkrát rychlejší a zcela bez chyb. Proto je automatizace pomocí API nezbytná — umožňuje mému skriptu zadat všech 42 „objednávek“ okamžitě a spolehlivě.
Proč 42 jazyků
Technicky bych mohl přidat mnoho dalších jazyků; trvalo by to jen pár minut navíc, zatímco dělám nádobí. Ale osobně mám rád číslo 42, „Odpověď na základní otázku života, vesmíru a všeho“ z knihy Douglase Adamse. Kromě mého přilnutí k číslu 42 může být přidávání velmi malých jazyků riskantní, protože AI překlad může být méně spolehlivý pro jazyky s omezenými tréninkovými daty.
Teplota ChatGPT 4o
Když jsem poprvé experimentoval s tímto vícejazyčným překladovým přístupem, výsledky byly slušné, ale ne dokonalé. Některé věty byly špatně přeloženy, příliš doslovné nebo jemně zavádějící v určitých jazycích. Také jsem se obával, že bych mohl neúmyslně generovat výrazy, které by mohly být nevhodné nebo necitlivé v konkrétních kulturních kontextech. A samozřejmě jsem nechtěl, aby mé překlady zněly roboticky nebo mechanicky. Jedním z klíčových faktorů za kvalitou překladu je nastavení teploty — parametr, který ovládá, jak „kreativní“ nebo „přísná“ má být AI. Vysoká teplota dělá AI více nápaditou, ale také méně předvídatelnou. Nízká teplota ji drží blízko původního významu, ale může někdy působit strnule. Trvalo to hodně pokusů a omylů, abych našel správnou rovnováhu: dostatečně nízkou, aby byla zajištěna přesnost, ale ne tak nízkou, aby text ztratil život. Po mnoha experimentech jsem cítil, že teplota = 0,8 byla nejlepší pro potřeby tohoto blogu: dostatečně přesná, aby zůstala věrná anglickému originálu, ale dostatečně flexibilní, aby zněla přirozeně v jiných jazycích.
ChatGPT 5.x nepodporuje teplotu
Novější modely, jako jsou ChatGPT 5 a 5.1, již vůbec nepodporují nastavení teploty — parametr byl odstraněn a nahrazen pojmy jako uvažování a úsilí, které ovlivňují, jak model přemýšlí, spíše než jak „kreativní“ se stává. Jinými slovy, ChatGPT 4o mi dal fyzické ovládání, kterým jsem mohl jemně ladit styl překladu, ale rodina 5.x sleduje úplně jinou filozofii. Pokud novější model neformálně požádáte, aby „přeložil to s teplotou = 0,8“, může se pokusit chovat, jako by takové nastavení stále existovalo, ale interně parametr zmizel. Model jednoduše odhaduje záměr. Jak OpenAI pokračuje v aktualizaci svých modelů, mohu někdy upravit svůj překladový proces. Prozatím zůstává ChatGPT 4o mou volbou pro vícejazyčné překlady — nejen proto, že dobře chápe kontext v mnoha jazycích, ale také proto, že jeho API ceny jsou pro sólového vývojáře jako já rozumné. Ve skutečnosti se 4o může zapsat jako jeden z nejoblíbenějších modelů v historii OpenAI.
Pracovníci OpenAI API
Jednou úžasnou věcí na OpenAI API — ve srovnání s použitím ChatGPT přímo v prohlížeči — je, že můžete použít více než jednoho „pracovníka“ ChatGPT najednou. Když posílám překladové žádosti pro 42 jazyků, neposílám je pomalu jednu po druhé. Místo toho API může zpracovat mnoho žádostí paralelně, jako bych najednou najal místnost plnou překladatelů, kteří všichni začnou pracovat najednou. Můj Python skript zpracovává pracovní postup jako malá výrobní linka: připraví anglický článek, odešle žádosti, čeká na odpovědi a zpracovává výsledky do JSON souborů. Mezitím servery OpenAI běží více modelů současně, přičemž každý překládá jiný jazyk paralelně. To je něco, co web nebo aplikace ChatGPT neumí — tyto rozhraní vám poskytují jeden model, jednu konverzaci, jeden úkol najednou. Ale s API můžete rozšířit svou pracovní zátěž tak široce, jak to váš skript umožní. Pro sólového vývojáře jako já to působí jako mít malý tým nejchytřejších a bez egu asistentů. Částečně to závisí na rychlosti internetu, ale obvykle nastavím pracovníky = 12.
Co dělám, abych multilingualizoval svůj blog, je mytí nádobí
Kdysi jsem pracoval jako myč nádobí ve studentské jídelně, když jsem studoval matematiku na Kjótské univerzitě. Zatímco plat byl asi 5 USD za hodinu, vždycky jsem měl rád opakující se manuální práci po několika hodinách — nebo někdy i dnech — v hluboké intelektuální koncentraci. Později, když jsem pracoval v továrně na česnek v Hokkaidu, bylo mým úkolem jednoduše leštit tisíce bílých česnekových cibulí, aby vypadaly jasněji na dopravníkovém pásu. Osm hodin denně — plné soustředění, stálý rytmus. Bylo to zvláštně uspokojující. Teď, když se vrátím z těchto vzpomínek, dělám intelektuální práci — píšu software, navrhuji systémy, skládám tyto články. Ale rovnováha se nezměnila. Pokud se mě zeptáte, jak se mi daří publikovat blogový článek ve 42 jazycích sám, upřímná odpověď je: dělám to mytím nádobí.