Dette nettstedet er automatisk oversatt til flere språk ved hjelp av programvare utviklet av Kohei Koyanagi. Se originalen på engelsk for best nøyaktighet.

Hvordan denne bloggen er oversatt til 42 språk

Splync-bloggen har 42 språk

Dette er den 23. artikkelen på min blogg for Splync, en delt budsjettsporing for par, venner og familier. Du lurer kanskje på hvordan jeg publiserer hvert innlegg på 42 språk selv om jeg er en soloingeniør. Som ansvarsfraskrivelsen øverst i hver artikkel sier, er dette nettstedet automatisk oversatt til flere språk ved hjelp av programvare jeg har laget selv. For å være klar: Jeg skriver ikke manuelt en eneste setning på noe annet språk enn engelsk. På grunn av dette ber jeg vennligst leserne om å referere til den originale engelske versjonen når nøyaktighet virkelig betyr noe. Likevel, etter mange runder med prøving og feiling for å forbedre oversettelsesprosessen, mener jeg at den generelle oversettelseskvaliteten er rimelig god. I denne artikkelen vil jeg dele hva programvaren min gjør for å gjøre Splync-bloggen flerspråklig.

Python og OpenAI API gjør det sammen

Jeg starter alltid med å skrive hver artikkel på enkel engelsk, inkludert metadata relatert til SEO. Deretter sender Python-skriptet mitt den engelske teksten til OpenAI API, sammen med en prompt og en liten referansefil. På OpenAIs servere leser ChatGPT-4o forespørselen og returnerer den oversatte artikkelen — for eksempel den arabiske versjonen — i JSON-format. Når MacBook-en min mottar den oversettelsen, sender skriptet umiddelbart en ny forespørsel, denne gangen etter bengalsk. Skriptet går automatisk gjennom alle de 42 målspråkene. Ved slutten av prosessen har datamaskinen min 42 oversatte JSON-filer. Et annet Python-skript integrerer deretter hver oversettelse i en HTML-mal og genererer 42 HTML-filer på under et sekund. Alle filene lastes opp til serveren der denne bloggen er vert, og hver språkversjon plasseres i sin egen katalog. Til slutt oppdaterer et server-side Python-skript artikkelindeksen og "Neste innlegg"-lenkene slik at navigasjonen på hvert språk forblir konsistent. Med den originale engelske artikkelen skrevet i ren tekst, tar hele prosessen vanligvis 5 minutter eller mindre. Når jeg trenger å gjøre endringer, oppdaterer jeg flere HTML-filer samtidig ved hjelp av server-side Python-skript.

Hva er API

Hvis du ikke er kjent med tekniske termer, lurer du kanskje på hvordan datamaskinen min "snakker" med OpenAI-serveren i utgangspunktet. Svaret er noe som kalles en API, Application Programming Interface. Du kan tenke på en API som et meldingsvindu mellom to programmer: ett program sender en forespørsel, og det andre sender tilbake et svar. For eksempel sender Python-skriptet mitt en melding som, "Vennligst oversett denne artikkelen til tysk." OpenAI mottar den meldingen gjennom API-en, forbereder oversettelsen og sender resultatet tilbake. Det fungerer akkurat som å legge inn en bestilling på en restaurant: du forteller servitøren hva du vil ha, kjøkkenet forbereder det, og servitøren bringer det tilbake til bordet ditt. Og hvorfor trenger du en servitør i utgangspunktet? Fordi du ikke går inn på kjøkkenet eller snakker direkte med kokken — du vet ikke hvordan kjøkkenet fungerer, og du trenger det ikke. Du kan si, "Kan jeg få en cheeseburger?" til servitøren, og servitøren kan rope, "Bestilling klar! T21, Chihuahua!" i et helt annet format. En API spiller samme rolle. Det kobler sammen to ulike systemer uten at de trenger å forstå hverandres interne språk eller arbeidsflyt.

Hvorfor trenger jeg OpenAI API

Nå som vi har sett hva en API er, her er hvorfor jeg faktisk stoler på det for denne bloggen. Praktisk talt vet jeg hvordan jeg "snakker" med ChatGPT selv — men jeg har 42 språk å behandle. Å ringe en servitør 42 ganger ville vært kjedelig (programmet hopper over å oversette engelsk til engelsk, men konverterer fortsatt teksten til JSON). Ved å bruke OpenAI API gjør Python-skriptet mitt det mulig å sende alle disse forespørslene automatisk, slik at jeg sparer meg fra repeterende arbeid og kan fokusere på andre ting. Jeg er en solo utvikler, så jeg må bruke tiden min så effektivt som mulig. Når jeg ser en oppgave som er repeterende og har klare regler, automatiserer jeg den. Resultatet er vanligvis en prosess som er en million ganger raskere og helt feilfri. Det er derfor automatisering gjennom API er avgjørende — det lar skriptet mitt legge alle 42 "bestillinger" øyeblikkelig og pålitelig.

Hvorfor 42 språk

Teknisk sett kunne jeg lagt til mange flere språk; det ville bare tatt noen få minutter ekstra å kjøre mens jeg vasker opp. Men jeg liker personlig tallet 42, "Svaret på det ultimate spørsmålet om livet, universet og alt" fra Douglas Adams' bok. Utover min tilknytning til tallet 42, kan det være risikabelt å legge til svært små språk, fordi AI-oversettelse kan bli mindre pålitelig for språk med begrenset treningsdata.

Temperatur for ChatGPT 4o

Da jeg først eksperimenterte med denne flerspråklige oversettelsesmetoden, var resultatene greie, men ikke perfekte. Noen setninger ble feiltolket, for bokstavelige eller svakt misvisende på visse språk. Jeg var også bekymret for å generere uttrykk som uforvarende kunne være upassende eller ufølsomme i spesifikke kulturelle sammenhenger. Og selvfølgelig ønsket jeg ikke at oversettelsene mine skulle høres robotiske eller mekaniske ut. En av nøkkelfaktorene bak oversettelseskvaliteten er temperaturinnstillingen — en parameter som styrer hvor "kreativ" eller "strengt" AI-en skal være. En høy temperatur gjør AI-en mer fantasifull, men også mer uforutsigbar. En lav temperatur holder den nær den originale meningen, men kan noen ganger føles stiv. Det tok mye prøving og feiling for å finne riktig balanse: lav nok til å sikre nøyaktighet, men ikke så lav at teksten ble livløs. Etter mange eksperimenter følte jeg at temperatur = 0,8 var den beste passformen for behovene til denne bloggen: nøyaktig nok til å være tro mot den engelske originalen, men fleksibel nok til å høres naturlig ut på andre språk.

ChatGPT 5.x støtter ikke temperatur

Nyere modeller som ChatGPT 5 og 5.1 støtter ikke temperaturinnstillinger i det hele tatt — parameteren har blitt fjernet og erstattet av konsepter som resonnering og innsats, som påvirker hvordan modellen tenker snarere enn hvor "kreativ" den blir. Med andre ord, ChatGPT 4o ga meg en fysisk bryter jeg kunne vri på for å finjustere oversettelsesstilen, men 5.x-familien følger en helt annen filosofi. Hvis du tilfeldig ber den nyeste modellen om å "oversette dette med temperatur = 0,8," kan den forsøke å oppføre seg som om en slik innstilling fortsatt eksisterer, men internt er parameteren borte. Modellen simpelthen tilnærmer seg intensjonen. Etter hvert som OpenAI fortsetter å oppdatere modellene sine, kan det hende jeg justerer oversettelsesprosessen min en dag. Foreløpig forblir ChatGPT 4o mitt valg for flerspråklige oversettelser — ikke bare fordi den forstår kontekst godt på tvers av mange språk, men også fordi API-prisene er rimelige for en solo utvikler som meg. Faktisk kan 4o bli kjent som en av de mest elskede modellene i OpenAIs historie.

Arbeidere i OpenAI API

En fantastisk ting med OpenAI API — sammenlignet med å bruke ChatGPT direkte i en nettleser — er at du kan bruke mer enn én ChatGPT "arbeider" samtidig. Når jeg sender oversettelsesforespørsler for 42 språk, sender jeg dem ikke en etter en i en treg kø. I stedet kan API-en behandle mange forespørsler parallelt, som om jeg plutselig hadde ansatt et rom fullt av oversettere som alle begynner å jobbe samtidig. Python-skriptet mitt håndterer arbeidsflyten som en liten produksjonslinje: det forbereder den engelske artikkelen, sender ut forespørslene, venter på svarene og prosesserer resultatene til JSON-filer. I mellomtiden kjører OpenAI-serverne flere modellinstanser samtidig, hver som oversetter et annet språk parallelt. Dette er noe ChatGPT-nettstedet eller appen ikke kan gjøre — de gir deg én modell, én samtale, én oppgave av gangen. Men med API-en kan du skalere arbeidsmengden så bredt som skriptet ditt tillater. For en solo utvikler som meg føles det som å ha et lite team av de smarteste og mest ego-løse assistentene. Det avhenger delvis av internett-hastigheten, men jeg pleier å sette arbeidere = 12.

Hvordan jeg flerspråkliggjør bloggen min er å vaske opp

Jeg pleide å jobbe som oppvaskhjelp i studentkantina da jeg studerte matematikk ved Kyoto University. Selv om betalingen var rundt 5 USD per time, har jeg alltid likt repeterende manuelt arbeid etter å ha brukt flere timer — eller noen ganger flere dager — i dyp intellektuell konsentrasjon. Senere, da jeg jobbet på en hvitløksfabrikk i Hokkaido, var jobben min ganske enkelt å polere tusenvis av hvite hvitløksfedd slik at de så lysere ut på transportbåndet. Åtte timer per dag — full fokus, jevn rytme. Det var merkelig tilfredsstillende. Nå, tilbake fra de minnene, driver jeg for tiden med intellektuelt arbeid — skriver programvare, designer systemer, komponerer disse artiklene. Men balansen har ikke endret seg. Hvis du spør meg hvordan jeg klarer å publisere en bloggartikkel på 42 språk alene, er det ærlige svaret: Jeg gjør det ved å vaske opp.