ترجمة JSON ذات السياق الطويل باستخدام ChatGPT
تعلم كيفية استخدام أحدث نموذج ChatGPT ووضع JSON لترجمة كائن JSON بسياق طويل وبث النتيجة مرة أخرى إلى JSON.
تعلم كيفية استخدام أحدث نموذج ChatGPT ووضع JSON لترجمة ملف JSON بسياق طويل وبث النتيجة مرة أخرى إلى JSON.
مقدمة
لقد مرت فترة منذ آخر منشور لنا الكفاءة في التدويل باستخدام ChatGPT، حيث أظهرنا كيفية استخدام ChatGPT لترجمة كائن JSON. ومع تطور النموذج، تحسنت قدرات الترجمة بشكل كبير من خلال نافذة سياق أطول وزيادة في عدد رموز الخروج القصوى وميزات جديدة مثل وضع JSON الذي يجعل تجربة المطور أفضل.
زيادة الحد الأقصى لرموز الخروج
لنلقي نظرة سريعة على مقارنة بين آخر إصدارين من النموذج:
النموذج | الوصف | نافذة السياق | الحد الأقصى لرموز الخروج | بيانات التدريب |
---|---|---|---|---|
gpt-4o-2024-05-13 | gpt-4o يشير حاليًا إلى هذا الإصدار. | 128,000 رمز | 4,096 رمز | حتى أكتوبر 2023 |
gpt-4o-2024-08-06 | أحدث لقطة تدعم المخرجات المهيكلة | 128,000 رمز | 16,384 رمز | حتى أكتوبر 2023 |
التغيير الأكثر أهمية هو زيادة الحد الأقصى لرموز الخروج من 4,096 إلى 16,384، مما يناسب سيناريو الترجمة بشكل مثالي لأن الناتج من الترجمة عادة ما يكون عن نفس الطول أو أكثر من المدخلات. في الوقت نفسه، انخفض السعر مقارنة بالنموذج السابق ذي الـ 32K رموز (كان مكلفًا).
وضع JSON
كما يشير الاسم، يعد وضع JSON مفيدًا جدًا عندما تريد التأكد من أن الناتج هو كائن JSON صالح. بالنسبة للنموذج الجديد، يمكنك حتى تحديد مخطط لكائن JSON الناتج باستخدام المخرجات المهيكلة.
البدء
التهيئة
سنستخدم Node.js SDK الإصدار 4.56.0 من OpenAI في هذا المنشور للتوضيح. لا تتردد في استخدام أي طريقة أو لغة تفضلها.
أولاً، نحتاج إلى تهيئة عميل OpenAI:
أوصي بشدة باستخدام وضع البث المباشر للترجمة الطويلة الأمد، حيث أنه أكثر كفاءة ولا تحتاج إلى الانتظار لفترة طويلة للحصول على النتيجة (على سبيل المثال، دقيقة واحدة لكل طلب). سيبدو الكود كالتالي:
لنكتب بعض المطالبات
يمكننا استخدام دور system
لإرشاد النموذج لأداء مهمته:
تذكر استبدال "es" برمز اللغة المستهدفة الخاصة بك. وفقًا لتجربتنا، هناك عدة تعليمات نحتاج إلى إخبار النموذج بها للحصول على ناتج أفضل وتقليل التدخل البشري:
قد تتساءل لماذا نحتاج إلى التعليمات الأخيرة. هذه هي التفسير من OpenAI:
عند استخدام وضع JSON، يجب عليك دائمًا توجيه النموذج لإنتاج JSON من خلال رسالة ما في المحادثة، على سبيل المثال عبر رسالة النظام الخاصة بك. إذا لم تقم بتضمين تعليمات صريحة لإنشاء JSON، قد يقوم النموذج بإنشاء تدفق لا نهائي من الفراغ، وقد يستمر الطلب حتى يصل إلى حد الرموز.
مع التعليمات أعلاه، يمكننا وضع كائن JSON المراد ترجمته في الرسالة التالية مع دور user
. دعنا نكتب ما لدينا حتى الآن:
التعامل مع الناتج
نظرًا لأننا نستخدم وضع البث المباشر، نحتاج إلى التعامل مع الناتج بالطريقة البثية. هنا مثال: