• chatgpt
  • internacjonalizacja
  • produktywność

Efektywna internacjonalizacja z ChatGPT

Ten artykuł dzieli się doświadczeniem z wykorzystania API ChatGPT do efektywnego wsparcia internacjonalizacji (i18n) produktów, dostarczając wskazówki dotyczące integracji z API, poprawy wyników tłumaczenia i optymalizacji instrukcji dla lepszych rezultatów.

Gao
Gao
Founder
Yijun
Yijun
Developer

Na dzisiejszym światowym rynku kluczowe jest internacjonalizowanie (i18n) produktów. Obsługa wielu języków pozwala przyciągnąć i obsługiwać globalną bazę użytkowników, zwiększyć doświadczenie użytkownika, lojalność i zdobyć udział w rynku. Jednak wsparcie dla internacjonalizacji często wiąże się z wysokimi kosztami i skomplikowaną konserwacją:

  • Ustawienie obsługi języka wymaga profesjonalnych zespołów i wybór odpowiednich partnerów, co wymaga czasu i wysiłku.
  • Tradycyjne procesy tłumaczenia są powolne i wymagają ręcznej interwencji, co utrudnia adążanie za iteracjami produktu.

W tym artykule podzielimy się doświadczeniem zespołu Logto w efektywnym wsparciu internacjonalizacji aszych produktów za pomocą ChatGPT i jego API, minimalizując koszty.

Jak podchodziliśmy do internacjonalizacji

Przed zintegrowaniem API ChatGPT, stosowaliśmy tradycyjny proces tłumaczenia do obsługi internacjonalizacji aszych produktów. Proces ten wyglądał astępująco:

  1. Dla każdego języka tworzyliśmy folder tłumaczeń zawierający kilka plików TypeScript. Każdy plik składał się z obiektu TypeScript z parami klucz-wartość reprezentującymi klucze fraz i ich tłumaczenia.
  2. Aby dodać ową frazę, ręcznie dodawaliśmy ową parę klucz-wartość do pliku tłumaczenia dla każdego języka.
  3. W katalogu głównym każdego języka tworzyliśmy plik index.ts, który eksportował wszystkie pliki tłumaczeń w tym języku.

Oto przykład pliku index.ts dla języka zh-HK:

Aby wyświetlić frazę w interfejsie użytkownika, używaliśmy funkcji, która pobierała tłumaczenie a podstawie bieżącego środowiska. Dostęp do zagnieżdżonych obiektów lub kluczy uzyskiwaliśmy za pomocą otacji kropkowej.

Na przykład, jeśli użytkownik korzystał z przeglądarki w języku angielskim:

Napotkane wyzwania

Napotkaliśmy dwa główne wyzwania z tym podejściem:

  1. Wraz ze wzrostem liczby języków i fraz, utrzymanie plików tłumaczeń stawało się problematyczne. Dodawanie owych fraz do każdego języka ręcznie było czasochłonne i podatne a błędy.
  2. Proces tłumaczenia był iewiarygodny. Bez dedykowanego zespołu tłumaczeń polegaliśmy a użytkownikach społeczności do większości tłumaczeń. Robili świetną robotę, ale ieuchronnie tłumaczenia stawały się iekompletne i iekonsekwentne z czasem.

Wprowadzenie ChatGPT

Gdy ChatGPT zdobywał popularność, odkryliśmy ciekawe zastosowanie. Przypadkiem skopiowaliśmy obiekt frazy TypeScript do ChatGPT i okazało się, że może tłumaczyć fragment kodu, zachowując strukturę kodu. Odkrycie to as ucieszyło.

Na przykład:

I wynik:

To było aprawdę iezwykłe. W przypadkach rzeczywistych mieliśmy również historyczne pliki, które zawierały iektóre ieprzetłumaczone frazy oznaczone // UNTRANSLATED:

ChatGPT był awet w stanie "częściowo" przetłumaczyć fragment kodu, eliminując ostatnią przeszkodę. Jednak ie było to jeszcze doskonałe. Przyjrzyjmy się problemom, a które atrafiliśmy.

Inżynieria promptów

Problem losowego odpowiedzi

Jednym z dobrze znanych faktów o ChatGPT jest jego ieprzewidywalna atura. Czasami wyniki są dokładne, a innym razem mogą być dziwne lub ie takie, jak zamierzaliśmy. Podczas gdy jest to akceptowalne w kontekście czatbota, staje się problematyczne podczas generowania fragmentów kodu do tłumaczenia.

Wróćmy do przykładu zh-HK:

Oczekiwane tłumaczenie Nice to meet you. a zh-HK to 很高興見到你。. Jednak istnieją przypadki, w których fragment jest tłumaczony a zh-CN:

很高兴见到你。 różni się od 很高興見到你。.

Czasami, polecenie "Please translate the..." jest również tłumaczone:

Czasami wyniki zawierają iepotrzebną treść:

Pierwsza linia "To jest tłumaczenie:" jest iepotrzebna dla aszych potrzeb.

Na podstawie powyższych wyników możemy zidentyfikować kilka różnic między ChatGPT a ami w rozmowie:

  • Czasami rozpoznawany jest tylko język (zh), bez uwzględnienia różnic regionalnych (zh-HK).
  • Nie jest w stanie dokładnie zidentyfikować, które treści muszą być tłumaczone.
  • Format odpowiedzi ie spełnia aszych oczekiwań.

Napisz jasne i konkretne wskazówki

Aby rozwiązać powyższe problemy, udoskonaliliśmy asze propmty:

Ten owy prompt okazał się skuteczny. Instruowaliśmy ChatGPT do:

  • Odniesienie regionalnego języka a podstawie dostarczonego kodu języka.
  • Tłumaczenie fragmentu kodu ograniczonego potrójnymi cudzysłowami.
  • Zapewnienie, że wynik utrzymuje oryginalny format bez dodatkowej treści.

Daj modelowi czas

a myślenie

Jak wcześniej wspomniano, dla istniejących fraz musieliśmy przetłumaczyć te oznaczone // UNTRANSLATED. Wprowadziło to kolejną warstwę złożoności do prompta. Na przykład:

Jeden z wyników, które otrzymaliśmy:

Tłumacząc (lub przekształcając) frazę success i dodali dwa komentarze / / TRANSLATED, które obie były ieoczekiwane.

Mimo, że poprzednia wskazówka była jasna i konkretna, była dość długa i trudna do zrozumienia, awet dla ludzi. Aby to poprawić, daliśmy modelowi więcej czasu a myślenie. Zapewniliśmy krok po kroku wskazówka:

Wyniki znacznie się poprawiły. Jednak czasami ChatGPT wyświetlał "proces myślenia", ponieważ wyraźnie dostarczyliśmy kroków.

Role w rozmowach

Mimo że ie ma bezpośredniego interfejsu użytkownika, możemy wysłać interaktywną i dynamiczną rozmowę do ChatGPT, przypisując różne "role" do każdej wiadomości. Rola może być jedna z astępujących:

  • "system": Odpowiedzialny za kierowanie przepływem i zachowaniem rozmowy, aby zapewnić ciągłość i orientację a cel.
  • "assistant": Reprezentuje model ChatGPT, dostarczając odpowiedzi i odpowiedzi.
  • "user": Reprezentuje użytkownika zadającego pytania i interakcję z modelem.

Za pomocą ról możemy stworzyć bardziej zaangażowaną rozmowę z ChatGPT. Każda wiadomość gra określoną rolę w prowadzeniu rozmowy.

Tutaj możemy użyć roli "system", aby prowadzić ChatGPT, jak wykonać asze zadanie:

Użyj roli "user", aby poprosić ChatGPT o przetłumaczenie fragmentu kodu:

Użyj roli "assistant", aby wskazać "standand answer":

Na koniec połącz trzy wiadomości powyżej z fragmentem kodu, który chcemy przetłumaczyć, i wyślij pojedyncze żądanie do Chat Completion API. Oto przykład:

Zamieniliśmy languageCode a docelowy kod, a code a fragment kodu do tłumaczenia, i zobaczyliśmy dokładnie taki wynik, jakiego oczekiwaliśmy. Bravo!

Integracja z

aszą CLI

Choć wyniki były poprawne i stałe, proces korzystania z API ChatGPT był adal iezbyt wygodny. Musieliśmy ręcznie kopiować fragment kodu, wkleić go do żądania i zamienić zmienne languageCode i code. Biorąc pod uwagę potrzebę przetłumaczenia ponad 10 języków i 100 fragmentów kodu, to ie był idealny doświadczenie.

Aby to rozwiązać, postanowiliśmy zintegrować API ChatGPT z aszym interfejsem wiersza poleceń (CLI). Dodaliśmy dwa polecenia do aszego CLI:

  • logto translate sync: To polecenie zbiera fragmenty kodu we wszystkich językach, które zawierają komentarze // UNTRANSLATED, tłumaczy je i zastępuje oryginalne fragmenty kodu przetłumaczonymi wersjami.
  • logto translate create [languageCode]: To polecenie tworzy owy język o określonym [languageCode] i przekłada wszystkie fragmenty kodu z domyślnego języka (angielskiego) a owy język.

Choć tłumaczenie może ie być idealne, to jest to ogromna poprawa. Mogliśmy teraz skupić się a sprawdzaniu i poprawianiu wyników tłumaczenia, zamiast tracić czas a sam proces tłumaczenia.

Wniosek

Integracja API ChatGPT do aszego przepływu pracy dla internacjonalizacji produktów może być potężnym arzędziem, ale wymaga starannego planowania i jasnych instrukcji, aby uzyskać ajlepsze wyniki.

Jeśli tworzysz aplikacje AI, uwierzytelnianie użytkowników jest iezbędne. Logto zapewnia prosty i bezpieczny sposób a uwierzytelnianie użytkowników i oferuje zjednoczony system tożsamości użytkowników we wszystkich twoich aplikacjach, a także oferuje wsparcie out-of-the-box dla wtyczek ChatGPT. Więcej informacji znajdziesz w aszym wpisie a blogu:

Implementacja uwierzytelniania użytkowników wtyczek ChatGPT z Logto