使用 ChatGPT 進行高效的國際化
本文分享了使用 ChatGPT API 高效支持產品國際化(i18n)的經驗,提供了整合 API、改善翻譯結果及優化指令的技巧,以達到更好的效果。
本文分享了使用 ChatGPT API 高效支持產品國際化(i18n)的經驗,提供了整合 API、改善翻譯結果及優化指令的技巧,以達到更好的效果。
在當今全球市場中,對產品進行國際化(i18n)是必不可少的。支持多種語言的產品可以吸引並服務全球用戶群,提升用戶體驗,增加忠誠度以及獲得市場份額。然而,支持國際化通常伴隨著高昂成本和複雜的維護:
在本文中,我們將分享 Logto 團隊使用 ChatGPT 及其 API 高效支持產品國際化的經驗,同時將成本降到最低。
在整合 ChatGPT API 之前,我們遵循傳統的翻譯流程來支持我們產品的國際化。流程如下:
以下是 zh-HK 語言的 index.ts 文件的一個例子:
要在 UI 中顯示一個短語,我們使用了一個根據當前環境檢索翻譯的函數。我們使用點符號訪問嵌套對象或鍵。
例如,如果用戶使用英文瀏覽器:
我們在這一方法中遇到了兩大挑戰:
當 ChatGPT 獲得普及時,我們發現了一個有趣的使用情境。偶然地,我們將一個 TypeScript 短語對象複製到 ChatGPT 中,發現它能夠用保留代碼結構的方法翻譯代碼片段。這一發現令我們激動不已。
例如:
回應如下:
這真是太棒了。在實際操作中,我們還有一些包含未翻譯短語的歷史文件,這些短語用 // UNTRANSLATED 標記:
ChatGPT 甚至能夠“部分” 翻譯這些代碼片段,消除了最後的障礙。然而,它仍然遠未完美。讓我們來看看我們遇到的問題。
關於 ChatGPT 的一個廣為人知的事實是它的不可預測性。有時候,結果是準確的,而其他時候,結果可能會很奇怪或不符合我們的預期。在聊天機器人情境中這可能是可以接受的,但在生成翻譯代碼片段時這會變得問題重重。
讓我們再次查看 zh-HK 的例子:
zh-HK 的 Nice to meet you. 預期翻譯是 很高興見到你。。然而,有時代碼片段被翻譯成 zh-CN:
很高兴见到你。 與 很高興見到你。 不同。
有時,“Please translate the...” 的提示也被翻譯了:
偶爾,結果包含不必要的內容:
第一行 “This is the translation:” 對我們的需求而言是不必要的。
基於上述結果,我們可以識別出 ChatGPT 和我們之間在對話中的幾個差距:
為了解決上述問題,我們改進了我們的提示:
這個新的提示被證明是有效的。我們指示 ChatGPT:
如前所述,對於現有短語,我們需要翻譯那些標有 // UNTRANSLATED 的短語。這給提示增加了另一層複雜性。例如:
我們得到的結果之一:
它還翻譯(或轉換)了短語 success 並添加了兩個 // TRANSLATED 評論,這都是意料之外的。
儘管前述提示是清晰且具體的,但它相當冗長且難以遵循,即使對人類而言也是如此。為了改善這一點,我們給模型更多的思考時間。我們提供了一個逐步的提示:
結果顯著改善。然而,有時 ChatGPT 會顯示 "思考過程",因為我們明確提供了步驟。
儘管沒有直接的用戶界面,我們可以通過為每條信息分配不同的“角色”來向 ChatGPT 發送一個互動和動態的對話。角色可以是以下之一:
通過使用角色,我們可以創造與 ChatGPT 更具吸引力的對話。每條信息在引導對話中扮演特定的角色。
在此,我們可以使用 "system" 角色來引導 ChatGPT 如何完成我們的任務:
用 "user" 角色來要求 ChatGPT 翻譯代碼片段:
用 "assistant" 角色來表示 "標準回答":
最後,將上述三條信息與我們要翻譯的代碼片段結合起來,並向 Chat Completion API 發送單個請求。以下是一個示例:
我們將 languageCode 替換為目標代碼,將 code 替換為要翻譯的代碼片段,並看到了我們期望的準確結果。非常好!
雖然結果是正確且穩定的,但使用 ChatGPT API 的過程仍不太方便。我們必須手動將代碼片段複製並粘貼到請求中,還需要替換 languageCode 和 code 變量。考慮到需要翻譯超過 10 種語言和 100 個代碼片段,這並不是理想的體驗。
為了解決這一問題,我們決定將 ChatGPT API 整合到我們的命令行介面(CLI)中。我們在 CLI 中添加了兩個命令:
logto translate sync:此命令收集包含 // UNTRANSLATED 註釋的所有語言的代碼片段,翻譯它們並用翻譯版本替換原始代碼片段。logto translate create [languageCode]:此命令創建具有指定 [languageCode] 的新語言,並將所有代碼片段從默認語言(英語)翻譯到新語言。儘管翻譯可能不完美,但這仍是一項巨大的改進。我們現在可以專注於驗證和改善翻譯結果,而不是花時間在實際的翻譯過程上。
將 ChatGPT API 整合到我們的產品國際化工作流程中可以成為強大的工具,但需要精心策劃和明確的指示才能獲得最佳結果。
如果你正在開發 AI 應用程序,用戶認證是必不可少的。Logto 提供一種簡單而安全的方法來認證你的用戶,並在所有應用程序中提供統一的用戶身份系統,還支持 ChatGPT 插件的即需使用。欲了解更多信息,請查看我們的博客文章: