TDM

Hoe vertaal je een heel boek met OpenAI API en ChatGPT

Dit artikel is bedoeld voor geeks.

Ik heb me altijd afgevraagd waarom het oneerlijk is dat we geen toegang hebben tot alle boeken ter wereld, alleen omdat een klein deel ervan vertaald is in een van de talen die ik beheers. Ik ontdekte DeepL en Google Translate, waar je gewoon een bestand (docx of pdf) kunt uploaden voor een directe vertaling.

Echter, het Vietnamees wordt niet erg goed ondersteund op deze twee platforms en ik ben al lang op zoek naar een alternatief voor deze twee tools.

Een paar dagen geleden realiseerde ik me dat de vertaling van GPT4 extreem nauwkeurig was in vergelijking met GPT3.5, DeepL en Google Translate.

Ik probeerde een pdf-bestand te uploaden en in één klik de vertaling te krijgen, maar ChatGPT weigert te grote bestanden en wil maar één of twee pagina’s vertalen. Ik vroeg JB of hij een programma voor me kon coderen om mijn Chinese boeken te vertalen, maar hij antwoordde dat dat helemaal geen prioriteit was. Ik wilde via een betaalde site gaan (met behulp van de OpenAI API, maar hij wilde me 200$ rekenen voor de vertaling van het boek). Dus nam ik mijn toetsenbord, mijn computer, en codeerde ik het zelf.

Uiteindelijk heb ik “mezelf” gecodeerd, geholpen door ChatGPT. Ik schreef prompts om de functies te beschrijven die ik wil. In het kort:

  1. Een kleine webinterface om het basisbestand (.txt) te uploaden en in een gedefinieerde lijst de brontaal en doeltaal te selecteren. Ik koos voor .txt omdat ik me momenteel nog niet in staat voel om een exacte kopie van het te vertalen boek met afbeeldingen (pdf, epub etc.) te beheren. Een tekstbestand is heel eenvoudig, heel goed.
  2. De te vertalen tekst moet in meerdere paragrafen worden verdeeld. Maximaal xxx tekens. Het opsplitsen in kleine paragrafen maakt het mogelijk om de limieten van oproepen en tokens per minuut te omzeilen. Deze gegevens (xxx tekens) moet ik nog testen om optimale waarden te vinden, zodat het snel gaat, zodat ik minder betaal, terwijl ik de verwerkingslimieten respecteer.
  3. De paragrafen worden in batchmodus verzonden om sneller te gaan
  4. De vertaling wordt opgeslagen in een .txt-bestand, dat wordt bijgewerkt zodra er een nieuwe vertaling binnenkomt. Zo, als het programma ooit crasht, krijgen we toch het al vertaalde deel terug en weten we via een tweede .txt-bestand waar de vertaling is gestopt.

ChatGPT heeft me dus verschillende stukken code gegenereerd, die ik heb verbeterd door kritiek te leveren of door mijn verzoek te verduidelijken. Uiteindelijk had ik een .html-bestand en een .php-bestand

Aangezien ik een paar dagen geleden Windows opnieuw moest installeren, heb ik geen enkele software meer op mijn computer. Nadat ik de twee codes had verkregen, moest ik:

  1. Sublime Text installeren (om te coderen)
  2. Wampserver installeren
  3. PHP installeren
  4. Composer installeren
  5. Guzzle HTTP Client installeren
  6. CURL en de afhankelijkheden installeren, het cacert.pem-bestand verkrijgen

Dit werd allemaal begeleid door ChatGPT, want bij elk foutbericht weet je dat je iets moet installeren.

Daarna ging ik naar OpenAI om een API-sleutelte genereren. Het is super super simpel, echt, ik had 100 keer meer moeite met de Google en Bing API, dit is zelfs te makkelijk.
Ik moest 10$ (plus 2$ belasting) betalen om toegang tot de API te krijgen. 5$ is genoeg, maar goed, ik weet dat ik veel te vertalen heb…


Resultaat

Een paar uur later, hier is het resultaat: De interface (html-bestand) om mijn .txt-bestand te uploaden

De gegenereerde vertaling op de interface. Maar ik heb ook een lokaal vertaald .txt-bestand.

Je kunt zien dat alles lokaal is omdat het een script is dat voor mij is gemaakt, ik zal het niet online zetten.

De tarieven

In het begin testte ik met het model gpt-3.5-turbo om minder te betalen en ondanks alle tests heb ik maar 1 dollarcent betaald. Aan de andere kant, de mini-tests met het model gpt-4 kosten veel duurder, je ziet de centen voorbij vliegen. Maar de vertaling is echt beter, het is een plezier om te lezen.

Naar mijn schatting kostte het me ongeveer $2 om 4000 Chinese woorden te vertalen, oftewel 28 pagina’s met het model gpt-4. Dat komt doordat ik in het begin te veel segmenteerde. En de prompt verbruikt ook tokens. Hoe meer ik segmenteer, hoe vaker ik de prompt herhaal en dat kost geld.

Vervolgens zag ik dat gpt-4-1106-preview dezelfde kwaliteit van vertaling bood, en 3 keer goedkoper was. Het enige nadeel op het moment van mijn test was de belachelijke limiet van de antwoorden (iets meer dan 4000 tokens), dus moest ik mijn tekst dienovereenkomstig segmenteren. Opmerking: deze limiet is sindsdien sterk verhoogd.

Nadat ik mijn tekst beter had gesegmenteerd (500 Chinese karakters per request en 4040 tokens totaal per request) en was overgeschakeld naar gpt-4-1106-preview (3 keer goedkoper) betaal ik ongeveer 12$ per boek (134.000 Chinese karakters gemiddeld per boek, elk Chinees karakter wordt vervolgens gemiddeld vertaald naar 4 Latijnse karakters).

Dat blijft OK, wetende dat DeepL $8 zou hebben gefactureerd voor een vertaling naar het Frans, en Google Translation $0. Maar het is een boek dat me na aan het hart ligt en ik heb de vertaling van Google niet goed begrepen, dus ik ben bereid iets meer te betalen om toegang te krijgen tot kennis.

Ik heb even nodig gehad om de url van de OpenAI API en de modellen te vinden, omdat ChatGPT me niet de juiste gaf. Ik zet ze hier voor jullie neer:

$url = 'https://api.openai.com/v1/chat/completions'; // URL for OpenAI API
$data = [
    'model' => 'gpt-4-1106-preview', // Specifying the model
    'messages' => $messages,
    'max_tokens' => 4040 // Adjust based on your needs
];

De code voor het verzenden in batch werkte niet zo goed, ik zal later kijken hoe ik dat kan verbeteren. Zonder batchverzending is de vertaling helaas nogal traag: 1 minuut per pagina, dus 133 woorden per minuut.

gpt-4-1106-preview is goedkoper dan gpt-4, maar op het moment dat ik het gebruikte, waren de limieten snel bereikt. Ik kan niet meer dan één boek per dag vertalen (opmerking: de limieten zijn sindsdien verhoogd). Zo heb ik een week nodig gehad om alle 6 boeken te vertalen. De modellen veranderen voortdurend, aarzel niet om tests te doen, verhoog de tokens per request, vergelijk de prijzen en kies het model dat het beste bij jouw behoeften past.

Ik ben oorspronkelijk geen ontwikkelaar, maar ik begrijp html, php en Javascript. Het feit dat ChatGPT me kant-en-klare codefragmenten op een presenteerblaadje serveert en ik ze alleen maar hoef te corrigeren, heeft me veel tijd bespaard. De codevoorbeelden op OpenAI zijn vooral in Python en ik codeer in php, het zou me veel tijd hebben gekost om deze voorbeelden van Python naar Php te vertalen zonder ChatGPT. Kortom, ik raad je ten zeerste aan om ChatGPT te gebruiken voor je kleine scripts, of dat nu met de OpenAI API is of niet.

Sindsdien gebruik ik Claude Code, meer info hier, en hier

Reacties uitgeschakeld voor Hoe vertaal je een heel boek met OpenAI API en ChatGPT