Chunk Translator: Auch lange Texte in kleine Stücke teilen und von einem LLM übersetzen lassen
(translate.winterjung.dev)Ich wollte einen langen Blogbeitrag ohne ausgelassene Sätze übersetzen und habe deshalb ein kleines HTML-Tool gebaut, das den Text absatzweise aufteilt, übersetzt und anschließend wieder zusammensetzen kann.
- Wenn man ein LLM wie ChatGPT bittet, einen ganzen Text auf einmal zu übersetzen, lässt es oft einzelne Sätze aus oder fasst eigenmächtig zusammen – auf einmal klappt das nicht immer gut.
- Man könnte den Prompt weiter optimieren, aber ich wollte lieber schon mit einfachem Kopieren, Einfügen und einem Klick auf den Übersetzen-Button brauchbare Ergebnisse bekommen. Deshalb kann der lange Text in Chunks zerlegt und parallel von kleineren Modellen übersetzt werden.
- Optional kann beim Senden der Anfragen an ein kleineres Modell zusätzlich eine einmal von einem leistungsfähigeren Modell erstellte Zusammenfassung mitgeschickt werden, damit die Übersetzung kontextbewusster ausfällt.
- Wenn es bei der Chunk-Übersetzung noch etwas zu verbessern gibt, kann man zusätzliche Anweisungen ergänzen und einzelne Chunks erneut übersetzen lassen.
- Da das Tool ohne separaten Server als statische einzelne HTML-Seite läuft, sind die individuellen Provider- und API-Key-Einstellungen der Nutzer erforderlich. Wie im Network Inspector oder im Quellcode zu sehen ist, werden sensible Informationen außer an LLM-API-Provider wie OpenAI oder OpenRouter nirgendwohin übertragen. Analytics-Tools sind ebenfalls nicht eingebunden.
- Ich hätte es gern so angeboten, dass man es zumindest testweise auch ohne API-Key ausprobieren kann, aber ich überlege noch, wie sich das umsetzen ließe.
Der Code liegt im GitHub-Repo, ihr könnt ihn also herunterladen und selbst nutzen (index.html einfach im Browser öffnen und es funktioniert genauso). Beiträge, Issues, Fragen und Feedback sind alle willkommen.
3 Kommentare
Genau das habe ich gebraucht, danke. Bei Untertiteln gab es wegen dieses Problems etwas wie
gui-subtrans, das Zeile für Zeile Anfragen stellt. Für Fließtext fiel mir aber kein passender Dienst ein (die von OpenAI bereitgestellte Übersetzungsseite ist praktisch fast kaputt =m= ...), deshalb war das ziemlich unerquicklich. Das klingt gut..Ich habe für den persönlichen Gebrauch eine App in SwiftUI erstellt, die die Apple Translator API verwendet (sie läuft lokal) und intern Zeilen aufteilt, um Übersetzungsanfragen zu stellen. Ich hatte überlegt, ob es nicht in Ordnung wäre, auch im Browser eine Demo auf diesem Weg anzubieten, falls sich die API dort ebenfalls aufrufen lässt. Da es sich aber um eine Geräte-API handelt, ist das vermutlich nicht möglich ...
Es gibt zwar auch eine Webseite, aber es scheint auch für Dokumentübersetzungen oder andere Zwecke nützlich zu sein. :)