التوليد المقيد والكتابة الحرة يختلفان في مقدار الحرية المتاح لشكل الجواب. يمكن لنمط مخرجات منظمة أن يلتزم مخطط JSON، بينما تترك الكتابة الحرة مساحة أكبر للسرد. وتظل مراجعة معنى القيم ضرورية حتى إذا كان الشكل صالحاً. [1]
الخلاصة السريعة
اختر المخرجات المقيدة عندما يحتاج برنامج حقولاً محددة، واختر النص الحر عندما يحتاج القارئ شرحاً. في الحالتين افحص المحتوى؛ مطابقة المخطط لا تثبت الوقائع داخله.
- المخرجات المنظمة تضبط شكل الاستجابة وفق مخطط تدعمه الأداة؛ وقد لا تدعم كل خصائص المخططات. [1]
- المخطط يصف الحقول وأنواعها، والحقول لا تصبح إلزامية في JSON Schema لمجرد تعريفها. [2]
- في مثال نشاط، يمكن لاسم مكان خاطئ أن يكون نصاً صالحاً للمخطط؛ راجع القيم مع أصلها.
- اختر الشكل بحسب المستفيد، وتعامل مع الحقل المفقود والخطأ في المعنى قبل تمرير البيانات. طلب JSON نصياً وحده لا يعادل تفعيل نمط مقيد موثق.
متى نفيد من تقييد الشكل؟
تصف وثائق Gemini المخرجات المنظمة بوصفها وسيلة لتنسيق الجواب، وتوضح أن دعم JSON Schema جزئي. لذلك نراجع ما تقبله الأداة المستخدمة، ولا ننقل مخططاً معقداً إليها بافتراض دعم كل قواعده. [1]
تخيل تطبيقاً افتراضياً يرتب أنشطة مركز. يحتاج البرنامج حقول «اسم النشاط» و«مكانه» و«تاريخه»، أما قارئ النشرة فقد يحتاج فقرة لطيفة تشرح النشاط. عبارة سردية طويلة قد تكون مناسبة للنشرة وأصعب على برنامج يتوقع حقولاً؛ هذا فرق في وظيفة الشكل، وليس حكماً على جودة النص ذاته.
ماذا يصف مخطط الحقول؟
يبين JSON Schema خصائص الكائن وأنواعها، وتحدد قائمة required الحقول اللازمة. تعريف الحقل ضمن properties وحده لا يلزم وجوده. وقد يسمح المخطط بقيمة null إذا صمم لذلك. [2]
في مثالنا، حدد هل المكان نص مطلوب، وهل التاريخ قد يكون غير معروف. لا تملأ التاريخ بقيمة شكلية لمجرد اجتياز الفحص. ويمكن كتابة وصف للحقل يبين أنه تاريخ النشاط نفسه، لا تاريخ إنشاء البطاقة. هذه قرارات نحتاجها قبل التوليد كي يعرف المراجع معنى اكتمال النتيجة.
هل قبول الشكل يعني أن القيمة صحيحة؟
تؤكد وثائق المخرجات المنظمة ضرورة فحص القيم والتعامل مع جواب يطابق المخطط لكنه غير صحيح في المعنى. [1]
لنفترض أن بطاقة مصنوعة للمثال تقول «النشاط في قاعة السهل»، بينما حقل المكان الناتج يحمل «قاعة النور». القيمتان نصان؛ وقد يمر الاسم الخاطئ بفحص النوع. كذلك إذا طلب المخطط عدداً صحيحاً، فالعدد 12 لا يثبت أن هناك اثني عشر مقعداً. يلزم في هذه الأمثلة مقارنة القيم بالبطاقة أو بالسجل الذي يفترض أنها استخرجت منه.
كيف نختار بين الحقول والفقرة؟
اسأل من سيستعمل الجواب أولاً. إذا كان برنامجاً، اكتب الحقول اللازمة ومعانيها وطريقة التعامل مع النقص، ثم افحص الشكل والقيم قبل الانتقال إلى خطوة أخرى. إذا كان قارئاً، اطلب فقرة تناسب حاجته، مع الحفاظ على المعلومات التي ثبتت في المصدر. ويمكن كتابة الفقرة بعد مراجعة الحقول.
في تطبيق الأنشطة المصنوع، لا تمرر مكاناً مشكوكاً فيه إلى قائمة المواعيد لأنه يطابق النوع النصي. اجعل الحالة واضحة واطلب مراجعتها. ولم ننفذ هذا المثال على واجهة برمجية، ولا ندعي أن طلب «أعد JSON» في نص المحادثة يعادل تشغيل نمط تقيد موثق؛ راجع قدرة الأداة وطريقة تفعيلها قبل الاعتماد عليها.
المصادر ومتابعة القراءة
- Google: Structured outputs — schema support and best practices (يفتح في نافذة جديدة)ai.google.dev
- JSON Schema: object and required properties (يفتح في نافذة جديدة)json-schema.org
أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.
