0Pricing
AI Agents · Leçon

Valider les sorties des outils (Pydantic)

Analysez chaque sortie d’outil avec un modèle Pydantic et signalez immédiatement toute réponse malformée.

Valider les sorties des outils (Pydantic) est une leçon AI Agents gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage AI Agents, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours AI Agents comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

Faire confiance, mais vérifier

Les résultats des outils proviennent du monde extérieur : API, pages web et modèles. Une réponse mal formée ou inattendue peut faire planter votre agent ou, pire encore, injecter silencieusement de mauvaises données dans le LLM.

Validez chaque résultat d’outil par rapport à un schéma.

Modèles Pydantic

Définissez les structures attendues :

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

Listes avec validation de modèle

Validez l’intégralité de la réponse :

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

response = SearchResponse.model_validate(raw)

Validateurs de champs

Vérifications personnalisées dans les champs :

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

Strict ou tolérant

Par défaut, Pydantic convertit les types (chaîne -> entier lorsque c’est possible). Pour des vérifications strictes :

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

Valider la sortie structurée du LLM

Forcez le modèle à renvoyer un JSON conforme à un schéma Pydantic — consultez la leçon sur les sorties structurées. Validez à nouveau à la frontière, comme mesure de défense en profondeur.

Valider les arguments de l’outil

Validez tool_call.arguments du modèle avant l’exécution :

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

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

Erreurs de validation comme résultats d’outil

Si la validation échoue, renvoyez l’erreur au modèle afin qu’il puisse effectuer une nouvelle tentative avec des arguments corrigés :

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

Gestion des versions de schéma

Lorsque le schéma de sortie d’un outil change, attribuez-lui une nouvelle version :

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

Générer un schéma JSON à partir de Pydantic

Pour les définitions de schéma d’outil, dérivez-les de votre classe Pydantic :

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

Objectif de la validation

Pourquoi utiliser Pydantic pour chaque résultat d’outil ?

Récapitulatif

Pydantic à chaque frontière : arguments d’outil entrants, résultats d’outil sortants et sorties structurées du LLM. Les échecs explicites valent mieux qu’une corruption silencieuse.

Questions Fréquemment Posées

La leçon « Valider les sorties des outils (Pydantic) » est-elle gratuite ?

Oui — le texte complet de « Valider les sorties des outils (Pydantic) » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours AI Agents, passe à CoddyKit PRO. Le cours AI Agents comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Valider les sorties des outils (Pydantic) » ?

Analysez chaque sortie d’outil avec un modèle Pydantic et signalez immédiatement toute réponse malformée. Tu pratiques AI Agents avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer AI Agents ?

Aucune expérience préalable n'est requise. AI Agents sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Valider les sorties des outils (Pydantic) » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon AI Agents ?

Oui. Chaque leçon AI Agents inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Outils idempotents et effets de bord
  2. Nouvelles tentatives avec temporisation exponentielle
  3. Délais d’expiration et disjoncteurs
  4. Valider les sorties des outils (Pydantic)
← Retour à AI Agents