Ta strona jest automatycznie tłumaczona na wiele języków za pomocą oprogramowania stworzonego przez Kohei Koyanagi. Dla najwyższej dokładności zajrzyj do oryginału w angielskim .

Jak przetłumaczyć ten blog na 42 języki

Splync Blog ma 42 języki

To już 23. artykuł na moim blogu dla Splync, wspólnego śledzenia budżetu dla par, przyjaciół i rodzin. Możesz się zastanawiać, jak publikuję każdy wpis w 42 językach, mimo że jestem samotnym inżynierem. Jak wspomina informacja na początku każdego artykułu, ta strona jest automatycznie tłumaczona na wiele języków za pomocą oprogramowania, które sam stworzyłem. Aby było jasne: nie piszę ręcznie ani jednego zdania w jakimkolwiek języku innym niż angielski. Dlatego proszę czytelników o odniesienie się do oryginalnej wersji angielskiej, gdy dokładność znaczenia ma znaczenie. Mimo to, po wielu próbach i poprawkach w procesie tłumaczenia, uważam, że ogólna jakość tłumaczeń jest całkiem dobra. W tym artykule podzielę się, jak moje oprogramowanie sprawia, że blog Splync jest wielojęzyczny.

Python i OpenAI API współpracują

Zawsze zaczynam od napisania artykułu po angielsku, w tym metadanych związanych z SEO. Następnie mój skrypt w Pythonie wysyła tekst do OpenAI API, wraz z promptem i małym plikiem referencyjnym. Na serwerach OpenAI ChatGPT-4o przetwarza żądanie i zwraca przetłumaczony artykuł — na przykład w wersji arabskiej — w formacie JSON. Gdy mój MacBook otrzymuje to tłumaczenie, skrypt natychmiast wysyła kolejne żądanie, tym razem prosząc o wersję w bengalskim. Skrypt automatycznie przechodzi przez wszystkie 42 docelowe języki. Na końcu procesu mój komputer ma 42 przetłumaczone pliki JSON. Kolejny skrypt w Pythonie osadza każde tłumaczenie w szablonie HTML i generuje 42 pliki HTML w mniej niż sekundę. Wszystkie pliki są przesyłane na serwer, na którym hostowany jest ten blog, a każda wersja językowa znajduje się w swoim folderze. Na koniec, skrypt serwerowy w Pythonie aktualizuje indeks artykułów oraz linki „Następny post”, aby nawigacja w każdym języku była spójna. Cały proces, z oryginalnym angielskim artykułem zapisanym w zwykłym tekście, zazwyczaj zajmuje 5 minut lub mniej. Kiedy muszę wprowadzić zmiany, aktualizuję wiele plików HTML jednocześnie, używając skryptów serwerowych w Pythonie.

Co to jest API

Jeśli nie znasz technicznych terminów, możesz się zastanawiać, jak mój komputer „rozmawia” z serwerem OpenAI. Odpowiedzią jest coś, co nazywa się API, czyli interfejs programowania aplikacji. Możesz myśleć o API jak o oknie komunikacyjnym między dwoma programami: jeden program wysyła żądanie, a drugi zwraca odpowiedź. Na przykład mój skrypt w Pythonie wysyła wiadomość typu „Proszę przetłumaczyć ten artykuł na niemiecki”. OpenAI odbiera tę wiadomość przez API, przygotowuje tłumaczenie i zwraca wynik. Działa to jak składanie zamówienia w restauracji: mówisz kelnerowi, co chcesz, kuchnia to przygotowuje, a kelner przynosi z powrotem do twojego stolika. I dlaczego potrzebujesz kelnera? Bo nie wchodzisz do kuchni ani nie rozmawiasz bezpośrednio z szefem kuchni — nie wiesz, jak działa kuchnia i nie musisz. Możesz powiedzieć „Poproszę cheeseburgera” kelnerowi, a kelner może krzyknąć „Zamówienie gotowe! T21, Chihuahua!” w zupełnie innym formacie. API pełni tę samą rolę. Łączy dwa różne systemy, nie wymagając od nich zrozumienia swojego wewnętrznego języka czy przepływu pracy.

Dlaczego potrzebuję OpenAI API

Skoro już wiemy, czym jest API, oto dlaczego faktycznie na nim polegam dla tego bloga. Praktycznie mówiąc, wiem, jak samodzielnie „rozmawiać” z ChatGPT — ale mam do przetworzenia 42 języki. Wzywanie kelnera 42 razy byłoby nużące (program pomija tłumaczenie angielskiego na angielski, ale nadal konwertuje tekst na JSON). Używanie OpenAI API pozwala mojemu skryptowi w Pythonie automatycznie wysyłać wszystkie te żądania, oszczędzając mnie przed powtarzalną pracą, dzięki czemu mogę skupić się na innych rzeczach. Jestem samotnym deweloperem, więc muszę jak najefektywniej korzystać z mojego czasu. Kiedy widzę zadanie, które jest powtarzalne i ma jasne zasady, automatyzuję je. Rezultatem jest zazwyczaj proces, który jest milion razy szybszy i całkowicie wolny od błędów. Dlatego automatyzacja przez API jest niezbędna — pozwala mojemu skryptowi złożyć wszystkie 42 „zamówienia” natychmiast i niezawodnie.

Dlaczego 42 języki

Technicznie rzecz biorąc, mógłbym dodać wiele więcej języków; zajęłoby to tylko kilka minut więcej, podczas gdy zmywam naczynia. Ale osobiście lubię liczbę 42, „Odpowiedź na ostateczne pytanie o Życie, Wszechświat i Wszystko” z książki Douglasa Adamsa. Poza moim przywiązaniem do liczby 42, dodawanie bardzo marginalnych języków może być ryzykowne, ponieważ tłumaczenie AI może być mniej wiarygodne dla języków z ograniczonymi danymi treningowymi.

Temperatura ChatGPT 4o

Kiedy po raz pierwszy eksperymentowałem z tym wielojęzycznym podejściem do tłumaczenia, wyniki były przyzwoite, ale nie doskonałe. Niektóre zdania były źle przetłumaczone, zbyt dosłowne lub subtelnie wprowadzające w błąd w niektórych językach. Martwiłem się również o nieumyślne generowanie wyrażeń, które mogą być nieodpowiednie lub nieczułe w określonych kontekstach kulturowych. I oczywiście nie chciałem, aby moje tłumaczenia brzmiały jak robotyczne lub mechaniczne. Jednym z kluczowych czynników wpływających na jakość tłumaczeń jest ustawienie temperatury — parametr, który kontroluje, jak „kreatywne” czy „ścisłe” powinno być AI. Wysoka temperatura sprawia, że AI jest bardziej pomysłowe, ale także bardziej nieprzewidywalne. Niska temperatura sprawia, że AI trzyma się blisko oryginalnego znaczenia, ale czasami może wydawać się sztywny. Znalezienie odpowiedniej równowagi wymagało wielu prób i błędów: wystarczająco nisko, aby zapewnić dokładność, ale nie tak nisko, aby tekst stał się bez życia. Po wielu eksperymentach uznałem, że temperatura = 0,8 najlepiej odpowiada potrzebom tego bloga: wystarczająco dokładna, aby pozostać wiernym angielskiemu oryginałowi, ale na tyle elastyczna, aby zabrzmieć naturalnie w innych językach.

ChatGPT 5.x nie obsługuje temperatury

Nowsze modele, takie jak ChatGPT 5 i 5.1, w ogóle nie obsługują ustawień temperatury — parametr został usunięty i zastąpiony przez takie koncepcje jak rozumowanie i wysiłek, które wpływają na to, jak model myśli, a nie jak staje się „kreatywny”. Innymi słowy, ChatGPT 4o dawał mi fizyczne pokrętło do dostosowania stylu tłumaczenia, ale rodzina 5.x kieruje się zupełnie inną filozofią. Jeśli przypadkowo poprosisz najnowszy model o „przetłumaczenie tego z temperaturą = 0,8”, może próbować zachowywać się tak, jakby takie ustawienie wciąż istniało, ale wewnętrznie parametr jest usunięty. Model po prostu aproksymuje zamiar. W miarę jak OpenAI kontynuuje aktualizację swoich modeli, mogę kiedyś dostosować swoją linię tłumaczeniową. Na razie ChatGPT 4o pozostaje moim wyborem do tłumaczeń wielojęzycznych — nie tylko dlatego, że dobrze rozumie kontekst w wielu językach, ale także dlatego, że jego ceny API są rozsądne dla samotnego dewelopera jak ja. W rzeczywistości 4o może stać się jednym z najbardziej ukochanych modeli w historii OpenAI.

Pracownicy OpenAI API

Jedną z niesamowitych rzeczy w OpenAI API — w porównaniu z bezpośrednim używaniem ChatGPT w przeglądarce — jest to, że możesz używać więcej niż jednego „pracownika” ChatGPT jednocześnie. Kiedy wysyłam żądania tłumaczeń dla 42 języków, nie robię tego jeden po drugim w wolnej kolejce. Zamiast tego API może przetwarzać wiele żądań równolegle, jakby nagle zatrudniło pokój pełen tłumaczy, którzy wszyscy zaczynają pracować jednocześnie. Mój skrypt w Pythonie obsługuje przepływ pracy jak mała linia produkcyjna: przygotowuje artykuł po angielsku, wysyła żądania, czeka na odpowiedzi i przetwarza wyniki na pliki JSON. W międzyczasie serwery OpenAI jednocześnie uruchamiają wiele instancji modeli, z których każdy tłumaczy inny język równolegle. To coś, czego strona internetowa lub aplikacja ChatGPT nie mogą zrobić — te interfejsy dają jedną rozmowę, jedno zadanie na raz. Ale z API możesz skalować swoje obciążenie tak szeroko, jak pozwala na to twój skrypt. Dla samotnego dewelopera takiego jak ja, to jak posiadanie małego zespołu najmądrzejszych i bezproblemowych asystentów. To częściowo zależy od szybkości internetu, ale zazwyczaj ustawiam workers = 12.

Jak wielojęzyczność bloga to zmywanie naczyń

Pracowałem jako zmywacz naczyń w stołówce studenckiej, gdy studiowałem matematykę na Uniwersytecie w Kioto. Choć stawka wynosiła około 5 USD za godzinę, zawsze lubiłem powtarzalną pracę manualną po spędzeniu kilku godzin — czasem kilku dni — w głębokim skupieniu intelektualnym. Później, gdy pracowałem w fabryce czosnku w Hokkaido, moim zadaniem było po prostu polerowanie tysięcy białych główek czosnku, aby wyglądały jaśniej na taśmie produkcyjnej. Osiem godzin dziennie — pełne skupienie, równy rytm. Było to dziwnie satysfakcjonujące. Teraz, wracając do tych wspomnień, obecnie wykonuję pracę intelektualną — piszę oprogramowanie, projektuję systemy, komponuję te artykuły. Ale równowaga się nie zmieniła. Jeśli zapytasz mnie, jak udaje mi się opublikować artykuł na blogu w 42 językach samodzielnie, szczerze mówiąc, robię to, zmywając naczynia.