مدقق مخرجات JSON من LLM
الصق JSON Schema ورد نموذج لغوي لترى كل خطأ تحقق مع مسار JSON والسطر. تُصلَح أولًا كتل الشيفرة والفواصل الزائدة وعلامات الاقتباس المفردة أو المزخرفة والتعليقات وقيم True/None في بايثون. يجري التحقق في متصفحك باستخدام Ajv 8.20.0 (draft-07 و2019-09 و2020-12).
طريقة الاستخدام
- الصق JSON Schema على اليسار. يُفكّ غلاف response_format من OpenAI الذي يحتوي name وschema تلقائيًا.
- الصق مخرجات النموذج على اليمين كما وصلت، حتى لو أحاطت بها كتلة شيفرة أو نص.
- اقرأ النتيجة. يعرض كل خطأ سطره وعموده (انقر للانتقال إليه) ومسار JSON والمشكلة. إذا احتاجت المخرجات إلى تنظيف أولًا تُسرد الإصلاحات ويصبح JSON النظيف جاهزًا للنسخ.
طريقة الحساب
تُقرأ المخرجات أولًا كما هي. إذا فشلت القراءة تزيل الأداة أكثر المشكلات التي تنتجها النماذج ثم تعيد المحاولة: كتلة شيفرة Markdown، والنص قبل JSON أو بعده، وعلامة BOM، وعلامات الاقتباس المزخرفة، والسلاسل بعلامات اقتباس مفردة، والتعليقات // و/* */، والفواصل الزائدة، وقيم True وFalse وNone في بايثون. لا يُغيَّر النص داخل السلاسل أبدًا.
يُتحقق من المخطط باستخدام Ajv 8.20.0، وهو مدقق JSON Schema واسع الاستخدام، ولا يُحمَّل إلا عند لصق شيء. تُستخدم المسودتان 2020-12 و2019-09 إذا ذكرهما الحقل $schema، وإلا draft-07. تُعرض جميع الأخطاء لا الأول فقط.
لا يُتحقق من الكلمة المفتاحية format (مثل email وdate-time)، ولا تُجلب روابط $ref البعيدة.
لا يُحفظ أي شيء تلصقه ولا يُرسل ولا يُكتب في عنوان الصفحة.
أكثر أخطاء النماذج اللغوية شيوعًا
| المشكلة | مثال | إصلاح تلقائي |
|---|---|---|
| كتلة شيفرة | ```json { ... } ``` | نعم |
| نص حول JSON | Sure! Here it is: { ... } | نعم |
| فاصلة زائدة | {"a": 1,} | نعم |
| علامات اقتباس مفردة أو مزخرفة | {'a': 'b'} | نعم |
| حقل إلزامي مفقود | {"title": "x"} | لا، يُبلَّغ عنه |
| نوع خاطئ | "rating": "5" | لا، يُبلَّغ عنه |
| حقل زائد | "author": "x" مع additionalProperties false | لا، يُبلَّغ عنه |
الحصول على مخرجات صحيحة من البداية
- استخدم وضع المخرجات المنظَّمة لدى المزوّد متى أمكن. يقيّد json_schema الصارم في OpenAI وstructured outputs في Anthropic النموذج بالمخطط.
- تشترط الأوضاع الصارمة إدراج كل الخصائص في required وجعل additionalProperties بقيمة false. تأكد من أن مخططك يلتزم بذلك.
- إذا كنت تقرأ مخرجات نموذج دون وضع صارم، فأبقِ خطوة تنظيف كهذه وتحقق قبل أن تثق بالبيانات.
أسئلة شائعة
لماذا لا يُقرأ JSON رغم أنه يبدو سليمًا؟
الأسباب المعتادة فاصلة بعد العنصر الأخير، أو كتلة شيفرة حول JSON، أو علامات اقتباس مزخرفة منسوخة من نافذة دردشة. تصلح الأداة ذلك وتبيّن ما غيّرته.
ما مسودات JSON Schema المدعومة؟
draft-07 افتراضيًا، إضافة إلى 2019-09 و2020-12 عندما يذكرهما الحقل $schema.
هل تُرفع بياناتي؟
لا. تجري القراءة والتحقق في متصفحك، ولا يُحفظ النص ولا يوضع في الرابط.
هل يمكنني لصق كائن response_format من OpenAI؟
نعم. يُفكّ الكائن الذي يحتوي name وschema، أو json_schema.schema، ويُستخدم المخطط الداخلي.