Instructor وOutlines لضمان البنية
يقيّد Instructor (Python) وOutlines عملية فك الترميز، بحيث لا يستطيع النموذج حرفيًا إنتاج JSON غير صالح.
Instructor وOutlines لضمان البنية درس مجاني في AI Agents على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في AI Agents، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة AI Agents 4 دروس في المجموع.
بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.
مكتبتان رئيسيتان
هناك نهجان رائدان لضمان المخرجات المهيكلة:
- Instructor (Jason Liu) — غلاف Pydantic حول OpenAI وAnthropic والعديد من المزودين
- Outlines (.txt) — فك ترميز مقيّد لنماذج OSS
Instructor Basics
# pip install instructor openai
import instructor
from openai import OpenAI
from pydantic import BaseModel
client = instructor.from_openai(OpenAI())
class User(BaseModel):
name: str
age: int
user = client.chat.completions.create(
model='gpt-4o-mini',
response_model=User,
messages=[{'role': 'user', 'content': 'Alice, 30'}]
)
print(user.name, user.age)سحر Instructor
في الخلفية، تنفذ Instructor ما يلي:
- تنشئ مخطط JSON من نموذج Pydantic الخاص بكم
- تضيفه كأداة إلى استدعاء OpenAI
- تفرض استدعاء تلك الأداة
- تحلل الوسائط وتُرجع مثيلًا من Pydantic
- تعيد المحاولة مع الإصلاح عند حدوث أخطاء في التحقق
Instructor with Validation
from pydantic import field_validator
class User(BaseModel):
name: str
age: int
@field_validator('age')
@classmethod
def positive(cls, v):
if v <= 0:
raise ValueError('Age must be positive')
return v
# Instructor catches ValidationError and retries automaticallyStreaming Instructor
for partial in client.chat.completions.create_partial(
model='gpt-4o-mini',
response_model=User,
messages=[{'role': 'user', 'content': 'Alice, 30'}]
):
print(partial)
# Streams partial Pydantic instances as fields fill in.Instructor with Anthropic
from anthropic import Anthropic
client = instructor.from_anthropic(Anthropic())
user = client.messages.create(
model='claude-sonnet-4-5',
max_tokens=1024,
response_model=User,
messages=[{'role': 'user', 'content': 'Alice, 30'}]
)Outlines لنماذج OSS
تستخدم Outlines فك الترميز المقيّد بالقواعد النحوية. وهي تعمل مع HuggingFace وvLLM وllama.cpp:
# pip install outlines
import outlines
model = outlines.models.transformers('mistralai/Mistral-7B-Instruct-v0.2')
generator = outlines.generate.json(model, User)
user = generator('Alice, 30')لماذا فك الترميز المقيّد؟
تحدد Outlines الرموز المسموح بها في كل خطوة وفقًا للمخطط، وتحجب الرموز غير المسموح بها. لذلك لا يستطيع النموذج حرفيًا إصدار JSON غير صالح.
التعبير النمطي والاختيار في Outlines
يمكنكم تقييد الناتج بتعبير نمطي أو قائمة من الخيارات:
import outlines.text.generate as g
yes_no = g.choice(model, ['yes', 'no'])
result = yes_no('Are bananas fruits?') # 'yes'دمج النهجين
لتحقيق أعلى موثوقية:
- استخدموا Instructor مع النماذج المُدارة أو المغلقة (OpenAI وAnthropic)
- استخدموا Outlines مع النماذج المستضافة ذاتيًا
- تُشارك نماذج Pydantic بين النهجين
مقارنة التكلفة
- Strict Outputs (المتاحة أصليًا في OpenAI) — مشمولة في السعر
- Instructor — تكلفة إضافية بسيطة بسبب إعادة المحاولة عند التحقق
- Outlines — انخفاض طفيف في معدل المعالجة بسبب الحجب، ولكن من دون استدعاءات إضافية
متى نستخدم كل خيار؟
| حالة الاستخدام | الأداة |
|---|---|
| OpenAI/Anthropic | Instructor + Pydantic |
| OSS مستضافة ذاتيًا | Outlines |
| حساسة لزمن الاستجابة | OpenAI Structured Outputs (أصليًا) |
نهج Outlines
كيف تضمن Outlines المخرجات المهيكلة؟
مراجعة
استخدموا Structured Outputs الأصلية أو Instructor مع OpenAI وAnthropic. واستخدموا Outlines مع OSS. تربط نماذج Pydantic كل هذه المكونات معًا.
تعلم AI Agents مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 60
- الدروس
- 239
الأسئلة الشائعة
هل درس «Instructor وOutlines لضمان البنية» مجاني؟
نعم — نص درس «Instructor وOutlines لضمان البنية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة AI Agents، انتقل إلى CoddyKit PRO. تتضمن دورة AI Agents 4 دروس في المجموع.
ماذا ستتعلم في «Instructor وOutlines لضمان البنية»؟
يقيّد Instructor (Python) وOutlines عملية فك الترميز، بحيث لا يستطيع النموذج حرفيًا إنتاج JSON غير صالح. تتمرن على AI Agents مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ AI Agents؟
لا تُشترط خبرة سابقة. AI Agents على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «Instructor وOutlines لضمان البنية»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس AI Agents هذا؟
نعم. كل درس في AI Agents يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- وضع JSON ومخرجات استدعاء الأدوات
- التحقق من مخطط Pydantic
- حلقات إصلاح المخرجات المشوهة
- Instructor وOutlines لضمان البنية