AI Agents · درس

Instructor وOutlines لضمان البنية

يقيّد Instructor (Python) وOutlines عملية فك الترميز، بحيث لا يستطيع النموذج حرفيًا إنتاج JSON غير صالح.

الدرس 4 من 414 خطوة

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 ما يلي:

  1. تنشئ مخطط JSON من نموذج Pydantic الخاص بكم
  2. تضيفه كأداة إلى استدعاء OpenAI
  3. تفرض استدعاء تلك الأداة
  4. تحلل الوسائط وتُرجع مثيلًا من Pydantic
  5. تعيد المحاولة مع الإصلاح عند حدوث أخطاء في التحقق

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 automatically

Streaming 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'

دمج النهجين

لتحقيق أعلى موثوقية:

  1. استخدموا Instructor مع النماذج المُدارة أو المغلقة (OpenAI وAnthropic)
  2. استخدموا Outlines مع النماذج المستضافة ذاتيًا
  3. تُشارك نماذج Pydantic بين النهجين

مقارنة التكلفة

  • Strict Outputs (المتاحة أصليًا في OpenAI) — مشمولة في السعر
  • Instructor — تكلفة إضافية بسيطة بسبب إعادة المحاولة عند التحقق
  • Outlines — انخفاض طفيف في معدل المعالجة بسبب الحجب، ولكن من دون استدعاءات إضافية

متى نستخدم كل خيار؟

حالة الاستخدامالأداة
OpenAI/AnthropicInstructor + 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 يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. وضع JSON ومخرجات استدعاء الأدوات
  2. التحقق من مخطط Pydantic
  3. حلقات إصلاح المخرجات المشوهة
  4. Instructor وOutlines لضمان البنية
← العودة إلى AI Agents