AI Agents · درس

التحقق من مخرجات الأدوات (Pydantic)

حلّل كل مخرج أداة من خلال نموذج Pydantic، وأظهر الخطأ بوضوح عند تلقي استجابة مشوهة.

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

التحقق من مخرجات الأدوات (Pydantic) درس مجاني في AI Agents على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في AI Agents، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة AI Agents 4 دروس في المجموع.

بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.

ثِق ولكن تحقّق

تأتي مخرجات الأدوات من العالم الخارجي — من واجهات API وصفحات الويب والنماذج. وقد تؤدي استجابة مشوّهة أو غير متوقعة إلى تعطيل وكيلك، أو ما هو أسوأ، إلى تمرير بيانات غير صحيحة بصمت إلى LLM.

تحقّق من كل مخرج أداة مقابل مخطط.

نماذج Pydantic

حدّد الأشكال المتوقعة:

from pydantic import BaseModel, HttpUrl

class SearchResult(BaseModel):
    title: str
    url: HttpUrl
    snippet: str
    score: float = 0.0

Validate at the Boundary

from pydantic import ValidationError

def search(query):
    raw = requests.post('https://api.tavily.com/search', json={'query': query}).json()
    results = []
    for r in raw.get('results', []):
        try:
            results.append(SearchResult.model_validate(r))
        except ValidationError as e:
            log.warning('Bad search result skipped: %s', e)
    return results

قوائم مع التحقق باستخدام نموذج

تحقّق من الاستجابة بأكملها:

from pydantic import BaseModel
class SearchResponse(BaseModel):
    results: list[SearchResult]

response = SearchResponse.model_validate(raw)

أدوات التحقق من الحقول

فحوصات مخصّصة داخل الحقول:

from pydantic import field_validator

class SearchResult(BaseModel):
    score: float

    @field_validator('score')
    @classmethod
    def score_in_range(cls, v):
        if not 0 <= v <= 1:
            raise ValueError('score out of [0,1]')
        return v

الصارم مقابل المتساهل

يحوّل Pydantic الأنواع تلقائيًا افتراضيًا (من string إلى int عند الإمكان). ولإجراء فحوصات صارمة:

from pydantic import StrictInt

class User(BaseModel):
    age: StrictInt   # rejects '25' (string)

Default Values for Missing Fields

class Tool(BaseModel):
    name: str
    description: str = 'No description provided'   # fallback

التحقق من المخرجات المنظّمة لـ LLM

أجبر النموذج على إرجاع JSON متوافق مع مخطط Pydantic — راجع درس المخرجات المنظّمة. ثم تحقّق مرة أخرى عند الحد الفاصل كطبقة دفاع إضافية.

التحقق من وسائط الأداة

تحقّق من tool_call.arguments الخاص بالنموذج قبل التنفيذ:

class SearchArgs(BaseModel):
    query: str
    k: int = 5

args = SearchArgs.model_validate_json(tool_call.function.arguments)
results = search(args.query, args.k)

أخطاء التحقق بوصفها نتائج أدوات

إذا فشل التحقق، فأرجع الخطأ إلى النموذج حتى يتمكن من إعادة المحاولة باستخدام وسائط مصححة:

try:
    args = SearchArgs.model_validate_json(...)
except ValidationError as e:
    return {'error': f'Invalid arguments: {e}'}

إصدار المخططات

عندما يتغير مخطط مخرجات أداة، أنشئ إصدارًا له:

class SearchResultV2(BaseModel):
    title: str
    url: HttpUrl
    relevance: float       # was 'score' in v1

إنشاء JSON Schema من Pydantic

لتعريفات مخططات الأدوات، اشتقّ المخطط من فئة Pydantic لديك:

schema = SearchArgs.model_json_schema()
# Use directly as the 'parameters' for an OpenAI tool definition.

هدف التحقق

لماذا نستخدم Pydantic مع كل مخرج أداة؟

مراجعة

استخدم Pydantic عند كل حد فاصل: وسائط الأدوات الداخلة، ومخرجات الأدوات الخارجة، والمخرجات المنظّمة لـ LLM. فالإخفاقات الواضحة أفضل من تلف البيانات الصامت.

البدء مجانًا

تعلم AI Agents مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
60
الدروس
239

الأسئلة الشائعة

هل درس «التحقق من مخرجات الأدوات (Pydantic)» مجاني؟

نعم — نص درس «التحقق من مخرجات الأدوات (Pydantic)» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة AI Agents، انتقل إلى CoddyKit PRO. تتضمن دورة AI Agents 4 دروس في المجموع.

ماذا ستتعلم في «التحقق من مخرجات الأدوات (Pydantic)»؟

حلّل كل مخرج أداة من خلال نموذج Pydantic، وأظهر الخطأ بوضوح عند تلقي استجابة مشوهة. تتمرن على AI Agents مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ AI Agents؟

لا تُشترط خبرة سابقة. AI Agents على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «التحقق من مخرجات الأدوات (Pydantic)»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس AI Agents هذا؟

نعم. كل درس في AI Agents يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

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

  1. الأدوات غير المتكررة والآثار الجانبية
  2. إعادة المحاولة مع التراجع الأسي
  3. المهلات وقواطع الدائرة
  4. التحقق من مخرجات الأدوات (Pydantic)
← العودة إلى AI Agents