مخطط JSON في التلقينات
تقييد بنية المخرجات.
مخطط JSON في التلقينات درس مجاني في AI Prompt Engineering على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في AI Prompt Engineering، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة AI Prompt Engineering 4 دروس في المجموع.
المخطط بوصفه عقد المخرجات
يصف JSON Schema بصورة تصريحية شكل المخرجات الصالحة: الأنواع، والمفاتيح المطلوبة، وقيود القيم، والتداخل. وعند تمريره إلى واجهة API للمخرجات المهيكلة يصبح عقدًا ملزمًا؛ وعند تضمينه في مطالبة يصبح توجيهًا قويًا.
يُعد إتقان تأليف المخططات المهارة الأساسية في التوليد المهيكل.
علامة strict تغيّر كل شيء
في الوضع strict، يشترط موفرو الخدمة إدراج كل خاصية في required وأن تكون additionalProperties هي false. ويُعبَّر عن الحقول الاختيارية باتحاد مع null، لا بحذفها.
{
'type': 'object',
'properties': {
'name': {'type': 'string'},
'nickname': {'type': ['string', 'null']}
},
'required': ['name', 'nickname'],
'additionalProperties': False
}تقييد القيم المفردة
انقل التحقق إلى المخطط بدلًا من المعالجة اللاحقة:
enumللاختيارات الثابتة.minimum/maximumللنطاقات الرقمية.patternللسلاسل النصية التي يتحقق منها Regex.formatلتلميحات مثلdate-timeأوemail.
{
'rating': {'type': 'integer', 'minimum': 1, 'maximum': 5},
'sku': {'type': 'string', 'pattern': '^[A-Z]{3}-[0-9]{4}$'},
'created': {'type': 'string', 'format': 'date-time'}
}المصفوفات وTuples
استخدم items للمصفوفات المتجانسة، وأضف minItems/maxItems للحد من طولها. أما Tuples الموضعية، فمرّر مصفوفة من المخططات باستخدام prefixItems.
{
'tags': {
'type': 'array',
'items': {'type': 'string'},
'minItems': 1,
'maxItems': 5
}
}الاتحادات المميّزة باستخدام oneOf
نمذج النتائج متعددة الأشكال باستخدام oneOf مع حقل تمييز. يختار النموذج فرعًا واحدًا بالضبط، ويبدّل مفكك التسلسل سلوكه بناءً على الوسم.
{
'oneOf': [
{'type': 'object', 'properties': {
'kind': {'const': 'email'},
'address': {'type': 'string', 'format': 'email'}},
'required': ['kind', 'address']},
{'type': 'object', 'properties': {
'kind': {'const': 'phone'},
'number': {'type': 'string'}},
'required': ['kind', 'number']}
]
}توليد المخططات من الأنواع
تُعد كتابة المخططات يدويًا عرضة للأخطاء. اشتقها من نماذج محددة الأنواع كي لا يتباعد المخطط عن كودك أبدًا.
from pydantic import BaseModel
class Invoice(BaseModel):
total: float
currency: str
paid: bool
schema = Invoice.model_json_schema()
# pass schema directly to response_formatالأوصاف مطالبات أيضًا
يقرأ النموذج كل description في المخطط. فاستخدمها لتوجيه الدلالات، لا لتوثيق الحقول فحسب.
فعلى سبيل المثال، يحسّن وصف مثل 'رمز دولة ISO-3166 alpha-2 بأحرف كبيرة' دقة الحقل تحسنًا ملحوظًا. تعامل مع الأوصاف بوصفها مطالبات مصغرة مضمنة في العقد.
{
'country': {
'type': 'string',
'description': 'ISO-3166 alpha-2 code, uppercase, e.g. US, TR, DE'
}
}تضمين المخطط في المطالبة
عندما يفتقر موفر الخدمة إلى دعم أصلي، ضمّن المخطط في المطالبة واطلب الالتزام به. واربط ذلك بمثال واحد داخل السياق وتعليمة صريحة: JSON فقط، دون نثر.
SYSTEM = (
'You output ONLY JSON matching this schema. No markdown, no commentary.\n'
'Schema:\n' + json.dumps(schema) + '\n'
'If a value is unknown, use null.'
)تجنب تضخم المخطط
تربك المخططات المفرطة في العمق أو كثيرة التفرعات النموذج وتزيد تكلفة الرموز. الإرشادات:
- أبقِ التداخل سطحيًا؛ وبسّط البنية حيثما أمكن.
- فضّل التعدادات على السلاسل النصية الحرة.
- قسّم مخططًا ضخمًا إلى عدة استدعاءات مركزة.
- يضع بعض موفري الخدمة حدًا لعمق التداخل وإجمالي عدد الخصائص؛ فتحقق من الحدود.
المراجع وإعادة الاستخدام
استخدم $defs و$ref لإعادة استخدام المخططات الفرعية (مثل Address المستخدم في الفوترة والشحن). لاحظ أن بعض الأوضاع الصارمة تقيّد عمق التكرار، لذا تحقق من الدعم قبل الاعتماد على مراجع ذاتية.
{
'$defs': {
'Address': {'type': 'object', 'properties': {
'city': {'type': 'string'}}, 'required': ['city'],
'additionalProperties': False}
},
'type': 'object',
'properties': {
'billing': {'$ref': '#/$defs/Address'},
'shipping': {'$ref': '#/$defs/Address'}
},
'required': ['billing', 'shipping'],
'additionalProperties': False
}التحقق من صحة المخطط نفسه
فئة خفية من الأخطاء: المخطط نفسه مشوّه، لا المخرجات. دقّق المخططات وتحقق من صحتها في CI مقابل مخطط JSON الوصفي، ومرّر كائنًا نموذجيًا ذهابًا وإيابًا عبر أداة التحقق قبل الشحن.
import jsonschema
jsonschema.Draft202012Validator.check_schema(schema)
# also: validate a known-good sample
jsonschema.validate(sample_obj, schema)تحقق سريع
في وضع strict للمخطط JSON Schema لدى موفر الخدمة، كيف يُعبَّر عن حقل اختياري على نحو صحيح؟
مراجعة
أصبحت قادرًا الآن على تأليف مخططات دقيقة:
- يفرض الوضع strict أن تكون جميع الخصائص مطلوبة وأن تكون additionalProperties هي false.
- قيّد القيم المفردة باستخدام enum والنطاق وpattern وformat.
- نمذج تعدد الأشكال باستخدام مميّزات oneOf.
- ولّد المخططات من نماذج محددة الأنواع، وتعامل مع الأوصاف بوصفها مطالبات مصغرة.
- تحقق من صحة المخطط نفسه في CI.
التالي: تطبيق المخططات على استدعاء الأدوات والدوال.
تعلم AI Prompt Engineering مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 53
- الدروس
- 199
الأسئلة الشائعة
هل درس «مخطط JSON في التلقينات» مجاني؟
نعم — نص درس «مخطط JSON في التلقينات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة AI Prompt Engineering، انتقل إلى CoddyKit PRO. تتضمن دورة AI Prompt Engineering 4 دروس في المجموع.
ماذا ستتعلم في «مخطط JSON في التلقينات»؟
تقييد بنية المخرجات. تتمرن على AI Prompt Engineering مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ AI Prompt Engineering؟
لا تُشترط خبرة سابقة. AI Prompt Engineering على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «مخطط JSON في التلقينات»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس AI Prompt Engineering هذا؟
نعم. كل درس في AI Prompt Engineering يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- لماذا نستخدم المخرجات المهيكلة
- مخطط JSON في التلقينات
- مخططات الأدوات والدوال
- حلقات الإصلاح والتحقق