Tehokas kansainvälistäminen ChatGPT:llä
Tässä artikkelissa jaetaan kokemuksia ChatGPT API:n käytöstä tuotteiden tehokkaaseen kansainvälistämiseen (i18n), tarjoten vinkkejä API:n integrointiin, käännösten parantamiseen ja ohjeiden optimointiin paremman lopputuloksen aikaansaamiseksi.
Nykyisessä globaalissa markkinassa on välttämätöntä kansainvälistää (i18n) tuotteet. Tukemalla useita kieliä tuotteet voivat houkutella ja palvella maailmanlaajuista käyttäjäkuntaa, parantaa käyttäjäkokemusta, lisätä uskollisuutta ja saavuttaa markkinaosuutta. Kansainvälistämisen tukeminen tulee kuitenkin usein korkeiden kustannusten ja monimutkaisen ylläpidon myötä:
- Kielituen pystyttäminen vaatii ammattitiimejä ja sopivien kumppaneiden valitsemista, mikä vie aikaa ja vaivaa.
- Perinteiset käännösprosessit ovat hitaita ja vaativat manuaalista puuttumista, mikä tekee vaikeaksi pysyä mukana tuoteversioiden kehityksessä.
Tässä artikkelissa jaamme Logto-tiimin kokemuksen tuotteidemme kansainvälistämisen tehokkaasta tukemisesta käyttämällä ChatGPT:tä ja sen API:a samalla, kun minimoimme kustannuksia.
Miten lähestyimme kansainvälistämistä
Ennen ChatGPT API:n integrointia seurasimme perinteistä käännösprosessia tukeaksemme tuotteidemme kansainvälistämistä. Prosessi eteni seuraavasti:
- Jokaiselle kielelle loimme käännöskansion, joka sisälsi useita TypeScript-tiedostoja. Jokainen tiedosto sisälsi TypeScript-objektin avain-arvo -pareilla, jotka edustivat fraseologisia avaimia ja niiden käännöksiä.
- Lisääksämme uuden fraasin, lisäsimme manuaalisesti uuden avain-arvo -parin käännöstiedostoon jokaiselle kielelle.
- Kunkin kielen juurihakemistoon loimme index.ts-tiedoston, joka vie kaikki kyseisen kielen käännöstiedostot.
Tässä esimerkki index.ts-tiedostosta zh-HK-kielelle:
Näyttääksemme fraasin käyttöliittymässä käytimme toimintoa, joka palautti käännöksen nykyisen ympäristön perusteella. Käytimme sisäkkäisten objektien tai avainten käyttöä pisteoperaattorin avulla.
Esimerkiksi, jos käyttäjä käytti englantilaista selainta:
Kohtasimme haasteet
Kohtasimme kaksi suurta haastetta tällä lähestymistavalla:
- Kielten ja fraasien määrän kasvaessa käännöstiedostojen ylläpito muuttui haastavaksi. Uusien fraasien lisääminen jokaiselle kielelle manuaalisesti oli aikaa vievää ja altista virheille.
- Käännösprosessi ei ollut luotettava. Ilman omistautunutta käännöstiimiä luotimme suurimmassa osassa käännöksiä yhteisön käyttäjiin. He tekivät hienoa työtä, mutta väistämättä käännökset tulivat ajan myötä epätäydellisiksi ja epäjohdonmukaisiksi.
ChatGPT:n esittely
Kun ChatGPT sai suosiota, löysimme mielenkiintoisen käyttötarkoituksen. Vahingossa kopioimme TypeScript-fraasiobjektin ChatGPT:hen ja huomasimme, että se pystyi kääntämään koodinpätkän säilyttäen koodin rakenteen. Tämä löytö innosti meitä.
Esimerkiksi:
Ja tulos:
Tämä oli todella huomionarvoista. Todellisissa tapauksissa meillä oli my ös historiallisia tiedostoja, jotka sisälsivät joitakin kääntämättömiä fraaseja, jotka oli merkitty // UNTRANSLATED
:
ChatGPT pystyi jopa "osittain" kääntämään koodinpätkän, eliminoiden viimeisen esteemme. Kuitenkaan se ei ollut täydellinen. Käydään läpi kohtaamamme ongelmat.
Prompt-suunnittelu
Satunnaisuuden vastausongelma
Yksi tunnettu fakta ChatGPT:stä on sen ennustamaton luonne. Joskus tulokset ovat tarkkoja, kun taas toiset kerrat ne voivat olla outoja tai eivät sitä, mitä tarkoitimme. Vaikka tämä on hyväksyttävää chatbot-kontekstissa, se tulee ongelmalliseksi, kun generoi käännöskoodinpätkiä.
Katsotaanpa uudelleen zh-HK
esimerkkiä:
Odotettu käännös Nice to meet you.
zh-HK
:ssa on 很高興見到你。
. Kuitenkin on tapauksia, missä pätkä käännetään zh-CN
:
很高兴见到你。
on erilainen kuin 很高興見到你。
.
Joskus kehotetta "Please translate the..." käännetään myös:
Satunnaisesti tulokset sisältävät tarpeetonta sisältöä:
Ensimmäinen rivi "This is the translation:" on tarpeeton tarpeillemme.
Perustuen yllä oleviin tuloksiin, voimme tunnistaa useita aukkoja, jotka ovat meidän ja ChatGPT:n välisessä keskustelussa:
- Joskus vain kieli päätellään (zh) ilman alueellisia eroja (zh-HK).
- Se epäonnistuu tunnistamaan tarkasti, mikä sisältö täytyy kääntää.
- Vastausformaatti ei vastaa odotuksiamme.
Kirjoita selkeästi ja erityisasiallisesti kehotteet
Käsitelläksemme yllä mainittuja ongelmia, paransimme kehoteemme:
Tämä uusi kehote osoittautui tehokkaaksi. Annoimme ChatGPT:lle ohjeet:
- Päättele alueellinen kieli annettuun kielikoodiin perustuen.
- Käännä koodinpätkä, joka on rajattu kolminkertaisilla heittomerkeillä.
- Varmista, että tulos säilyttää alkuperäisen muodon ilman ylimääräistä sisältöä.
Anna mallille aikaa ajatella
Kuten aiemmin mainittiin, olemassa oleville fraaseille meidän piti kääntää ne, jotka oli merkitty // UNTRANSLATED
. Tämä lisäsi monimutkaisuutta kehotteeseen. Esimerkiksi:
Yksi saamistamme tuloksista:
Se käänsi (tai muunsi) myös fraasin success
ja lisäsi kaksi // TRANSLATED
-kommenttia, jotka molemmat olivat odottamattomia.
Vaikka edellinen kehote oli selkeä ja erityinen, se oli melko pitkä ja haastava seurattavaksi jopa ihmisille. Parantaaksesi tätä, annoimme mallille enemmän aikaa ajatella. Annoimme askel askeleelta -kohtaisen kehotteen:
Tulokset parantuivat merkittävästi. Joskus ChatGPT kuitenkin näytti "ajatusprosessin" koska annoimme nimenomaisesti vaiheet.
Roolit keskusteluissa
Vaikka ei ole suoraa käyttöliittymää, voimme lähettää interaktiivisen ja dynaamisen keskustelun ChatGPT:lle asettamalla eri "roolit" jokaiselle viestille. Rooli voi olla yksi seuraavista:
- "system": Vastaa keskustelun virtauksesta ja käyttäytymisestä varmistaakseen jatkuvuuden ja tavoitekeskeisyyden.
- "assistant": Edustaa ChatGPT-mallia itseään, tarjoten vastauksia ja reaktioita.
- "user": Edustaa käyttäjää, joka kyselee ja on vuorovaikutuksessa mallin kanssa.
Käyttämällä rooleja voimme luoda sitouttavamman keskustelun ChatGPT:n kanssa. Jokainen viesti näyttelee tiettyä roolia ohjaten keskustelua.
Tässä voimme käyttää "system" roolia ohjataksemme ChatGPT:tä, kuinka suoriutua tehtävästämme:
Käytä "user" roolia pyytääksesi ChatGPT:tä kääntämään koodinpätkän:
Käytä "assistant" roolia merkittämään "stadnard-vastaus":
Lopuksi yhdistä kolme viestiä yllä koodinpätkällä, jonka haluamme kääntää, ja lähetä yksi pyyntö Chat Completion API:lle. Tässä esimerkki:
Korvasimme languageCode
kohdekoodilla ja code
koodinpätkällä, jota käännämme, ja saimme juuri odottamamme tuloksen. Bravo!
Integrointi CLI:mme kanssa
Vaikka tulokset olivat oikeat ja vakaat, ChatGPT API:n käyttöprosessi ei ollut kovin kätevä. Meidän piti manuaalisesti kopioida koodinpätkä, liittää se pyyntöön ja korvata languageCode
ja code
muuttujat. Ottaen huomioon tarpeen kääntää yli 10 kieltä ja 100 koodinpätkää, tämä ei ollut ihanteellinen kokemus.
Tämän ratkaisemiseksi päätimme integroida ChatGPT API:n komentoriviliittymäämme (CLI). Lisäsimme kaksi komentoa CLI:hemme:
logto translate sync
: Tämä komento kerää koodinpätkiä kaikilta kieliltä, jotka sisältävät// UNTRANSLATED
kommentteja, kääntää ne ja korvaa alkuperäiset koodinpätkät käännetyillä versioilla.logto translate create [languageCode]
: Tämä komento luo uuden kielen määritetyllä[languageCode]
ja kääntää kaikki koodinpalat oletuskielestä (englanti) uuteen kieleen.
Vaikka käännös saattaa olla epätäydellinen, se on edelleen suuri parannus. Nyt voimme keskittyä käännösten tulosten validointiin ja parantamiseen sen sijaan, että käyttäisimme aikaa varsinaiseen käännösprosessiin.
Johtopäätökset
ChatGPT API:n integroiminen osana kansainvälisen tuotekehityksen työnkulkua voi olla voimakas työkalu, mutta se vaatii huolellista suunnittelua ja selkeät ohjeet parhaan tuloksen saamiseksi.
Jos kehität tekoälysovelluksia, käyttäjän tunnistautuminen on olennaista. Logto tarjoaa yksinkertaisen ja turvallisen tavan todentaa käyttäjäsi ja tarjoaa yhtenäisen käyttäjäidentiteettijärjestelmän kaikille sovelluksillesi, ja tarjoaa myös käyttövalmiin tuen ChatGPT-lisäosille. Lisätietoja saat blogikirjoituksestamme:
Implementoi ChatGPT-lisäosien käyttäjätodennus Logto:n avulla