Laravel AI Translator: ระบบแปลด้วย AI สำหรับโปรดักต์ที่ทรงพลังยิ่งขึ้นบน Laravel (หรือ Crowdin)
(github.com/kargnas)เคยแนะนำไปก่อนหน้านี้ในโพสต์ก่อนหน้า แต่ครั้งนี้มีการอัปเดตฟีเจอร์ใหม่และรีแฟกเตอร์ จึงอยากมาแชร์ครับ
ผมเป็นผู้ก่อตั้งและผู้ดำเนินงานของ OP.GG ซึ่งเป็นบริการข้อมูลเกมระดับโลก
เรารองรับภาษามากกว่า 15 ภาษา ระหว่างทางที่ผ่านมา เราเจอปัญหาหลายอย่างจากการใช้ผู้แปลมนุษย์ เช่น ตารางงานเลื่อนออกไปหลายเดือน, ถูกเอาเปรียบจากบริษัทแปลที่แอบใช้เครื่องแปลอัตโนมัติแล้วส่งงานมา, หรือคุณภาพงานแปลที่ต่ำเกินไป จึงเป็นที่มาของโปรเจกต์นี้ที่ออกแบบขึ้นใหม่
โปรเจกต์นี้เริ่มต้นจากเป้าหมายว่า เมื่อต้องแปลมากกว่า 3 ภาษา ควรทำได้เร็วกว่าการจ้างคนแปลมาก (ภายในไม่กี่นาที) และแม้จะไม่ใช่คุณภาพสูงสุด แต่ต้องการการันตีคุณภาพอย่างน้อยในระดับปานกลางขึ้นไปด้วยการใช้เทคโนโลยี AI ถ้าการแปลโดยมนุษย์คือ 90 คะแนน และ Google Translate คือ 30 คะแนน เป้าหมายของตัวแปลนี้คือ 80 คะแนน และตามพัฒนาการของ LLM ก็ดูเหมือนว่าในอีก 1-2 ปีข้างหน้าอาจไปถึง 90 คะแนนขึ้นไปได้เช่นกัน แน่นอนว่าต้นทุนต่ำกว่าการใช้คนมาก
ฟีเจอร์หลักที่นำมาพิจารณามีดังนี้
- ใส่ String ที่เกี่ยวข้องให้ได้มากที่สุดลงในคอนเท็กซ์ตอนส่งคำขอไปยัง AI เพื่อเพิ่มความสม่ำเสมอของการแปลและการเลือกใช้คำ โดยจะใส่ทั้งสตริงของภาษาต้นทางและสตริงที่แปลแล้วของภาษาเป้าหมายลงในคอนเท็กซ์ [ฟีเจอร์ใหม่]
- หากคุณใช้ CrowdIn ซึ่งเป็นทั้งแพลตฟอร์มแปลแบบโซเชียลและแพลตฟอร์มแปลที่เชื่อมต่อกับผู้ให้บริการภายนอกได้สะดวก ก็มีฟีเจอร์แอบซ่อนสำหรับแปลโปรเจกต์ใน CrowdIn ด้วย คุณจึงใช้กับโปรเจกต์ที่ไม่เกี่ยวข้องกับ Laravel เลยก็ได้ แม้จะยังไม่ได้เขียนไว้ในเอกสาร แต่เราพัฒนาขึ้นใช้ภายใน (คำสั่ง:
ai-translator:translate-crowdin) [ฟีเจอร์ใหม่] - ตั้งค่าภาษาได้ทุกภาษาทั่วโลกที่ LLM รองรับ
- เพิ่มฟีเจอร์ภาษาของตัวเองได้ เช่น ภาษาวัฒนธรรมเกาหลีเหนือ หรือศัพท์แบบ Reddit มีตัวอย่างอยู่ใน
README.md
- เพิ่มฟีเจอร์ภาษาของตัวเองได้ เช่น ภาษาวัฒนธรรมเกาหลีเหนือ หรือศัพท์แบบ Reddit มีตัวอย่างอยู่ใน
- รองรับ Claude และ OpenAI (แต่แนะนำให้ใช้โมเดล Claude เพราะคุณภาพดีกว่า)
- รองรับ Claude 3.7 Deep Thinking [ฟีเจอร์ใหม่]
- รองรับการจัดการรูปพหูพจน์ (Plural) ของฟีเจอร์ localization ใน Laravel
- ทำให้การแปลภาษาฉลาดขึ้น
- แยกว่าเป็นประโยคหรือเป็นคำ แล้วแปลให้เหมาะสม
- ดูจาก key แล้วแปลให้ตรงกับเจตนาของนักพัฒนาให้มากที่สุด (ดังนั้นควรตั้งชื่อ key ให้ชัดเจนมาก)
- เพิ่มคอนเท็กซ์แยกตามแต่ละภาษาและแต่ละโปรเจกต์ เพื่อให้แปลโปรเจกต์ได้เป็นธรรมชาติยิ่งขึ้น (หัวใจสำคัญ)
- แทนที่จะสั่งแปลตรง ๆ การอธิบายให้ AI เข้าใจชัดเจนว่าคำบางคำในโปรเจกต์นี้หมายถึงอะไร เป็นสิ่งสำคัญมากต่อการยกระดับคุณภาพ
- ตัวอย่างเช่น เมื่อใช้คำว่า 'Champion' ในภาษาอังกฤษ ถ้าแปลเป็นเกาหลีควรแปลเป็น 'Champion' แต่ถ้าแปลเป็นภาษาจีนควรแปลเป็น 英雄 (ฮีโร่) การบอกข้อมูลแบบนี้จะทำให้แปลได้เป็นธรรมชาติมากขึ้น
หากคุณกำลังศึกษาเรื่องการเขียน Prompt ลองแวะไปดูโฟลเดอร์นี้ เพื่อดูพรอมป์ที่ผมสร้างไว้ และถ้ามีไอเดียที่อยากเพิ่มเติม ก็ขอเชิญส่ง Pull Request มาได้เลยครับ
5 ความคิดเห็น
เอกสารทางการของ Laravel ก็ทำได้ด้วยหรือเปล่าครับ?
ขอบคุณสำหรับการแนะนำโปรเจกต์ดี ๆ ครับ
ถ้ามีการ提供 docker image ให้ด้วย น่าจะช่วยให้ใช้งานได้สะดวกยิ่งขึ้นครับ
ถ้าใช้ LLM API ค่าใช้จ่ายอาจค่อนข้างสูง ดังนั้นถ้ามีฟังก์ชันคาดการณ์ค่าใช้จ่ายสำหรับค่าที่ป้อนเข้ามาด้วยก็น่าจะดีครับ
น่าสนใจดีที่มีบันเดิล
north koreanมาให้ด้วย ในฐานะผู้ใช้ OPGG ก็ขอเป็นกำลังใจให้ครับดูเหมือนว่าคุณจะพยายามอย่างมากในการรองรับหลายภาษามาตั้งแต่ช่วงแรก ๆ ขอเป็นกำลังใจให้ครับ