Auto-oversettelser med OpenAI i Optimizely CMS

Før man innfører nye funksjoner i et produkt er det vanlig å kjøre en betatest for å luke ut eventuelle feil og sjekke om funksjonene er verdt å satse på. Optimizely har noen pakker under navnerommet Episerver.Labs som kan sees på som en slik betatest. Noen produkter blir etter hvert tatt inn i kjerneproduktet, mens andre avgår med døden i stillhet.

Noen få unntak får et langt og godt liv som Episerver.Labs-pakker, og her er Episerver.Labs.LanguageManager et godt eksempel. Denne pakken har gjort det enklere for redaktøre å jobbe med nettsider med flere språk – helt siden 2015.

I 2019 skrev min kollega Henning et blogginnlegg om hvordan denne pakken kan brukes til å oversette hele sider fra et språk til et annet, ved hjelp av Azure Cognitive Services. Siden den gang er LanguageManager oppgradert til å støtte den siste versjonen av Optimizely CMS, nemlig CMS 12, men ellers fungerer den akkurat som før.

De siste månedene har det skjedd mye rundt AI og store språkmodeller. Jeg begynte å lure på om man kan la LanguageManager bruke andre tjenester enn Azure Cognitive Services til å gjøre oversettelsen? Kanskje vi kan bruke GPT-4?

Jeg fant ingen dokumentasjon som fortalte hvordan LanguageManager kunne utvides, men det hindret meg ikke fra å forsøke. En kjapp titt med dekompilatoren DotPeek, avslørte et interessant interface IMachineTranslatorProvider.

Fra et nyoppdaget interface til ny addon på Optimizely sin NuGet-feed tok det bare et par timer.

Ny addon for LanguageManager-addon

Gulla.Episerver.Labs.LanguageManager.OpenAi er det klingende navnet på min nye addon, og den legger til en ny IMachineTranslatorProvider som lar deg bruke OpenAI til å auto-oversette innhold med LanguageManager.

Etter først å ha installert NuGet-pakken, og lagt til din egen API-nøkkel i konfigurasjonen,  kan du velge OpenAI Translator Provider fra Optimizely admin mode.

Deretter fungerer oversettelser som tidligere, men nå er det OpenAI som gjør jobben når du auto-oversetter innholdet ditt til nye språk.

Hvis du vil bruke en annen modell, justere på temperaturen (kreativ eller forutsigbar og kjedelig) eller gi oversetteren bestemte føringer som tone of voice, eller beskjed om å bruke bestemte ord og begreper – kan du gjøre alt det med konfigurasjon.

Hvis det jeg har laget ikke er perfekt match for deg, bruk det gjerne  som utgangspunkt til å lage din egen Translator Provider!


Lykke til!