การทำให้เป็นสากลที่มีประสิทธิภาพด้วย ChatGPT
บทความนี้แบ่งปันประสบการณ์ในการใช้ ChatGPT API เพื่อสนับสนุนการทำให้ผลิตภัณฑ์เป็นสากล (i18n) อย่างมีประสิทธิภาพ โดยให้คำแนะนำเกี่ยวกับการรวม API การปรับปรุงผลการแปล และการเพิ่มประสิทธิภาพคำแนะนำเพื่อให้ได้ผลลัพธ์ที่ดีขึ้น
ในตลาดโลกทุกวันนี้ เป็นสิ่งสำคัญที่จะทำให้ผลิตภัณฑ์เป็นสากล (i18n) การรองรับหลายภาษา ผลิตภัณฑ์สามารถดึงดูดและให้บริการฐานผู้ใช้ทั่วโลก เพิ่มประสบการณ์ของผู้ใช้ เพิ่มความภักดี และเพิ่มส่วนแบ่งการตลาด อย่างไรก็ตาม การสนับสนุนการทำให้เป็นสากลมักมาพร้อมกับต้นทุนที่สูงและการบำรุงรักษาที่ซับซ้อน:
- การตั้งค่าการสนับสนุนภาษาต้องใช้ทีมงาน มืออาชีพและการเลือกพันธมิตรที่เหมาะสม ซึ่งต้องใช้เวลาและความพยายาม
- กระบวนการแปลแบบดั้งเดิมช้าและต้องการการแทรกแซงจากมนุษย์ ทำให้ยากต่อการติดตามการทำซ้ำของผลิตภัณฑ์
ในบทความนี้ เราจะแบ่งปันประสบการณ์ของทีม Logto ในการสนับสนุนการทำให้เป็นสากลสำหรับผลิตภัณฑ์ของเราอย่างมีประสิทธิภาพโดยใช้ ChatGPT และ API ในขณะที่ลดต้นทุน
วิธีที่เราจัดการกับการทำให้เป็นสากล
ก่อนที่จะรวม ChatGPT API เราใช้กระบวนการแปลแบบดั้งเดิมเพื่อสนับสนุนการทำให้ผลิตภัณฑ์ของเราเป็นสากล กระบวนการมีดังนี้:
- สำหรับแต่ละภาษา เราได้สร้างโฟลเดอร์การแปลที่ประกอบด้วยไฟล์ TypeScript หลายไฟล์ ไฟล์แต่ละไฟล์ประกอบด้วยวัตถุ TypeScript ที่มีคู่คีย์-ค่า ซึ่งแสดงคีย์วลีและการแปลของพวกมัน
- ในการเพิ่มวลีใหม่ เราได้เพิ่มคู่คีย์-ค่าใหม่ลงในไฟล์การแปลสำหรับแต่ละภาษาด้วยตนเอง
- ในไดเรกทอรีรูทของแต่ละภาษา เราได้สร้างไฟล์ index.ts ที่ส่งออกไฟล์การแปลทั้งหมดในภาษานั้น
นี่คือตัวอย่างของไฟล์ index.ts สำหรับภาษาจีนฮ่องกง:
ในการแสดงวลีใน UI เราใช้ฟังก์ชันที่ดึงการแปลตามสภาพแวดล้อมปัจจุบัน เราเข้าถึงวัตถุหรือคีย์ที่ซ้อนกันโดยใช้สัญกรณ์จุด
ตัวอย่างเช่น ถ้าผู้ใช้ใช้เบราว์เซอร์ภาษาอังกฤษ:
ความท้าทายที่พบ
เราเผชิญกับความท้าทายหลักสองประการในแนวทางนี้:
- เมื่อจำนวนภาษาและวลีเพิ่มขึ้น การบำรุงรักษาไฟล์การแปลจึงกลายเป็นเรื่องท้าทาย การเพิ่มวลีใหม่ให้แต่ละภาษาด้วยตนเองเป็นเรื่องที่ใช้เวลานานและจุดเสี่ยงต่อข้อผิดพลาด
- กระบวนการแปลไม่น่าเชื่อถือ โดยไม่มีทีมแปลที่อุทิศให้ เราพึ่งพาผู้ใช้จากชุมชนในการแปลส่วนใหญ่ พวกเขาทำงานได้ยอดเยี่ยม แต่การแปลก็ยังไม่ครบถ้วนและไม่สอดคล้องกันตามเวลา
แนะนำ ChatGPT
ในขณะที่ ChatGPT ได้รับความนิยม เราพบกรณีการใช้งานที่น่าสนใจ บังเอิญเราได้คัดลอกวัตถุวลี TypeScript ไปยัง ChatGPT และพบว่ามันสามารถแปลโค้ดสแนปช็อตได้ โดยรักษาโครงสร้างโค้ดไว้ การค้นพบนี้ทำให้เราตื่นเต้น
ตัวอย่างเช่น:
และผลลัพธ์:
เป็นสิ่งที่น่าทึ่งมาก ในกรณีโลกจริง เ รายังมีไฟล์ประวัติที่มีบางวลีที่ไม่ได้แปลถูกทำเครื่องหมายด้วย // UNTRANSLATED
:
ChatGPT สามารถ "แปลบางส่วน" ของโค้ดสแนปช็อตได้ด้วยการกำจัดอุปสรรคสุดท้าย อย่างไรก็ตาม มันยังไกลจากความสมบูรณ์แบบ มาดูปัญหาที่เราได้พบกัน
การสร้างคำแนะนำ
ปัญหาตอบสนองแบบสุ่ม
ข้อเท็จจริงที่เป็นที่รู้กันดีเกี่ยวกับ ChatGPT คือธรรมชาติที่ไม่สามารถทำนายได้ บางครั้งผลลัพธ์จะถูกต้อง ในขณะเดียวกันก็อาจเป็นเรื่องแปลกหรือไม่ตรงตามที่เราต้องการ แม้ว่านี่จะยอมรับได้ในบริบทของแชทบอท แต่มันกลายเป็นปัญหาเมื ่อสร้างโค้ดสแนปช็อตการแปล
ลองย้อนดูตัวอย่าง zh-HK
กัน:
การแปลที่คาดหวังอสำหรับ Nice to meet you.
ใน zh-HK
คือ 很高興見到你。
อย่างไรก็ตามมีบางกรณีที่สแนปช็อตถูกแปลเป็น zh-CN
:
很高兴见到你。
แตกต่างจาก 很高興見到你。
.
บางครั้ง คำแนะนำ "Please translate the..." ก็ถูกแปลด้วย:
บางครั้งผลลัพธ์มีเนื้อหาที่ไม่จำเป็น:
บรรทัดแรก "This is the translation:" ไม่จำเป็นสำหรับความต้องการของเรา
จากผลลัพธ์ด้านบน เราสามารถระบุกหลายช่องว่างระหว่าง ChatGPT และเราในการสนทนา:
- บางครั้งแค่ภาษาถูกอนุมาน (zh) โดยไม่พิจารณาความแตกต่างระดับภูมิภาค (zh-HK)
- มันล้มเหลวในการระบุอย่างแม่นยำซึ่งเนื้อหาต้องแปล
- รูปแบบการตอบสนองไม่ตรงตามที่เราคาดหวัง