دعم الفعالية الدولية مع ChatGPT
يشارك هذا المقال تجربة استخدام واجهة برمجة التطبيقات ChatGPT لدعم الفعالية الدولية (i18n) للمنتجات بشكل فعال، وتقديم نصائح حول تكامل الواجهة، وتحسين نتائج الترجمة، وتحسين التوجيهات للحصول على نتائج أفضل.
يشارك هذا المقال تجربة استخدام واجهة برمجة التطبيقات ChatGPT لدعم الفعالية الدولية (i18n) للمنتجات بشكل فعال، وتقديم نصائح حول تكامل الواجهة، وتحسين نتائج الترجمة، وتحسين التوجيهات للحصول على نتائج أفضل.
في سوق اليوم العالمي، من الضروري دعم الفعالية الدولية (i18n) للمنتجات. من خلال دعم لغات متعددة، يمكن للمنتجات جذب قاعدة مستخدمين عالمية، وتحسين تجربة المستخدم، وزيادة الوفاء، وزيادة الحصة السوقية. ومع ذلك، فإن دعم الفعالية الدولية غالبًا ما يأتي مع تكاليف عالية وصيانة معقدة:
في هذا المقال، سنشارك تجربة فريق Logto في دعم الفعالية الدولية لمنتجاتنا بشكل فعال باستخدام ChatGPT وواجهة برمجتها مع تقليل التكاليف.
قبل تكامل واجهة برمجة التطبيقات ChatGPT، اتبعنا عملية ترجمة تقليدية لدعم الفعالية الدولية لمنتجاتنا. كانت العملية كالتالي:
إليك مثال على ملف index.ts للغة zh-HK:
لعرض عبارة في واجهة المستخدم، استخدمنا وظيفة تسترجع الترجمة بناءً على البيئة الحالية. قمنا بالوصول إلى الكائنات أو المفاتيح المتداخلة باستخدام تدوين النقطة.
على سبيل المثال، إذا كان المستخدم يستخدم متصفحًا باللغة الإنجليزية:
واجهنا تحديين رئيسيين مع هذا النهج:
بينما اكتسب ChatGPT شهرة، اكتشفنا حالة استخدام مثيرة للاهتمام. بطريقة عرضية، نسخنا كائن عبارة TypeScript إلى ChatGPT ووجدنا أنه يمكنه ترجمة مقتطف الكود مع الحفاظ على بنية الكود. كان هذا الاكتشاف مثيرًا لنا.
على سبيل المثال:
والنتيجة:
كان هذا رائعًا حقًا. في حالات العالم الحقيقي، كان لدينا أيضًا ملفات تاريخية تضمنت بعض العبارات غير المترجمة المميزة بـ // UNTRANSLATED:
كان ChatGPT قادرًا حتى على ترجمة "جزئية" لمقتطف الكود، مما ألغى العقبة الأخيرة. ومع ذلك، كان بعيدًا عن الكمال. دعونا نرى القضايا التي واجهناها.
حقيقة معروفة عن ChatGPT هي طبيعته غير المتوقعة. أحيانًا تكون النتائج دقيقة، وأحيانًا يمكن أن تكون غريبة أو لا تتوافق مع ما قصدناه. بينما يكون هذا مقبولًا في سياق روبوت الدردشة، يصبح مشكلة عند إنشاء مقتطفات كود الترجمة.
لنعد إلى مثال zh-HK:
الترجمة المتوقعة لـ Nice to meet you. في zh-HK هي 很高興見到你。. ومع ذلك، هناك حالات يتم فيها ترجمة المقتطف إلى zh-CN:
很高兴见到你。 مختلفة عن 很高興見到你。.
أحيانًا، يتم ترجمة العبارة "Please translate the..." أيضًا:
أحيانًا، تحتوي النتائج على محتوى غير ضروري:
السطر الأول "This is the translation:" غير ضروري لأغراضنا.
استنادًا إلى النتائج أعلاه، يمكننا تحديد عدة فجوات بين ChatGPT وبيننا في المحادثة:
لمعالجة المشاكل المذكورة أعلاه، قمنا بتحسين توجيهنا:
ثبتت هذه التوجيه الجديدة فعاليتها. قمنا بإرشاد ChatGPT إلى:
كما ذكرنا سابقًا، بالنسبة للعبارات الموجودة، كنا بحاجة إلى ترجمة تلك المميزة بـ // UNTRANSLATED. أدخل هذا طبقة جديدة من التعقيد إلى التوجيه. على سبيل المثال:
إحدى النتائج التي حصلنا عليها:
قام أيضًا بترجمة (أو تحويل) العبارة success وأضاف تعليقين // TRANSLATED، وكان كلاهما غير متوقع.
على الرغم من أن التوجيه السابق كان واضحًا ومحددًا، إلا أنه كان طويلاً إلى حد ما وصعب المتابعة، حتى بالنسبة للبشر. لتحسين ذلك، أعطينا للنموذج مزيدًا من الوقت للتفكير. قدمنا توجيهًا خطوة بخطوة:
تحسنت النتائج بشكل كبير. ومع ذلك، أحيانًا يقوم ChatGPT بعرض "عملية التفكير" نظرًا لأننا قدمنا الخطوات بشكل واضح.
على الرغم من عدم وجود واجهة مستخدم مباشرة، يمكننا إرسال محادثة تفاعلية وديناميكية إلى ChatGPT بتخصيص "الأدوار" المختلفة لكل رسالة. يمكن أن يكون الدور أحد الأمور التالية:
من خلال استخدام الأدوار، يمكننا إنشاء محادثة أكثر تفاعلية مع ChatGPT. كل رسالة تلعب دورًا محددًا في توجيه المحادثة.
هنا، يمكننا استخدام دور "system" لتوجيه ChatGPT حول كيفية إنجاز مهمتنا:
استخدام دور "user" لطلب ChatGPT لترجمة مقتطف الكود:
استخدام دور "assistant" للإشارة إلى "الجواب القياسي":
أخيرًا، اجمع بين الرسائل الثلاثة أعلاه مع مقتطف الكود الذي نريد ترجمته، وأرسل طلبًا واحدًا إلى واجهة إتمام المحادثات للـ Chat. إليك مثال:
استبدلنا languageCode بالرمز المستهدف وcode بمقتطف الكود للترجمة، ورأينا النتيجة التي توقعناها تمامًا. أحسنت!
بينما كانت النتائج صحيحة ومستقرة، كانت عملية استخدام واجهة برمجة التطبيقات ChatGPT لا تزال غير مريحة كثيرًا. كان علينا نسخ مقتطف الكود يدويًا، لصقه في الطلب، واستبدال المتغيرين languageCode وcode. نظرًا للحاجة إلى ترجمة أكثر من 10 لغات و100 مقتطف كود، لم تكن هذه التجربة مثالية.
لمعالجة ذلك، قررنا دمج واجهة برمجة التطبيقات ChatGPT في واجهة الأوامر (CLI) الخاصة بنا. أضفنا أمرين إلى واجهة الأوامر الخاصة بنا:
logto translate sync: يقوم هذا الأمر بجمع مقاطع الكود عبر جميع اللغات التي تحتوي على تعليقات // UNTRANSLATED، ويترجمها، ويستبدل مقاطع الكود الأصلية بالإصدارات المترجمة.logto translate create [languageCode]: يقوم هذا الأمر بإنشاء لغة جديدة باستخدام [languageCode] المحدد ويترجم جميع مقاطع الكود من اللغة الافتراضية (الإنجليزية) إلى اللغة الجديدة.على الرغم من أن الترجمة قد لا تكون مثالية، إلا أنها لا تزال تحسنًا كبيرًا. كان بإمكاننا الآن التركيز على التحقق من نتائج الترجمة وتحسينها بدلاً من قضاء الوقت في عملية الترجمة الفعلية.
يمكن أن يكون تكامل واجهة برمجة التطبيقات ChatGPT في سير عملنا لدعم الفعالية الدولية للمنتجات أداة قوية، ولكنه يتطلب تخطيطًا دقيقًا وتعليمات واضحة للحصول على أفضل النتائج.
إذا كنت تقوم بتطوير تطبيقات تعتمد على الذكاء الاصطناعي، فإن التحقق من الهوية للمستخدمين أمر ضروري. يقدم Logto طريقة بسيطة وآمنة للتحقق من هوية مستخدميك ويوفر نظام هوية موحد للمستخدمين عبر جميع تطبيقاتك، كما يوفر دعمًا جاهزًا لمكونات ChatGPT الإضافية. للحصول على مزيد من المعلومات، تحقق من منشورنا على المدونة:
تطبيق التحقق من هوية المستخدمين في مكونات ChatGPT باستخدام Logto