Validere verktøyutdata (Pydantic)
Tolk alle verktøyutdata gjennom en Pydantic-modell – la programmet feile tydelig ved ugyldige svar.
Validere verktøyutdata (Pydantic) er en gratis leksjon i AI-agenter på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i AI-agenter, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i AI-agenter inneholder totalt 4 leksjoner.
Deler av denne leksjonen er ennå ikke oversatt og vises på engelsk.
Stol på, men verifiser
Verktøyutdata kommer fra verden utenfor — API-er, nettsider og modeller. Et feilformatert eller uventet svar kan krasje agenten eller, enda verre, i det stille føre dårlige data inn i LLM-en.
Valider alle verktøyutdata mot et skjema.
Pydantic-modeller
Definer forventede strukturer:
from pydantic import BaseModel, HttpUrl
class SearchResult(BaseModel):
title: str
url: HttpUrl
snippet: str
score: float = 0.0Validate 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 resultsLister med modellvalidering
Valider hele svaret:
from pydantic import BaseModel
class SearchResponse(BaseModel):
results: list[SearchResult]
response = SearchResponse.model_validate(raw)Feltvalidatorer
Egendefinerte kontroller inne i felt:
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 vStreng kontra ettergivende
Som standard tvinger Pydantic typer til riktig format (string -> int når det er mulig). For strenge kontroller:
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' # fallbackValider strukturert LLM-utdata
Tving modellen til å returnere JSON som passer til et Pydantic-skjema — se leksjonen om Structured Outputs. Valider på nytt ved grensen som et ekstra forsvarslag.
Valider verktøyargumenter
Valider model's tool_call.arguments før kjøring:
class SearchArgs(BaseModel):
query: str
k: int = 5
args = SearchArgs.model_validate_json(tool_call.function.arguments)
results = search(args.query, args.k)Valideringsfeil som verktøyresultater
Hvis valideringen mislykkes, returner feilen til modellen, slik at den kan prøve på nytt med korrigerte argumenter:
try:
args = SearchArgs.model_validate_json(...)
except ValidationError as e:
return {'error': f'Invalid arguments: {e}'}Versjonering av skjemaer
Når utskjemaet til et verktøy endres, må det versjoneres:
class SearchResultV2(BaseModel):
title: str
url: HttpUrl
relevance: float # was 'score' in v1Generer JSON-skjema fra Pydantic
For definisjoner av verktøyskjemаer kan skjemaet utledes fra Pydantic-klassen:
schema = SearchArgs.model_json_schema()
# Use directly as the 'parameters' for an OpenAI tool definition.Målet med validering
Hvorfor bruke Pydantic på alle verktøyutdata?
Oppsummering
Pydantic ved hver grense: verktøyargumenter inn, verktøyutdata ut og strukturerte LLM-utdata. Tydelige feil er bedre enn skjult korrumpering.
Lær deg AI-agenter med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 60
- Leksjoner
- 239
Ofte stilte spørsmål
Er leksjonen «Validere verktøyutdata (Pydantic)» gratis?
Ja – hele teksten i «Validere verktøyutdata (Pydantic)» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av AI-agenter-kurset, kan du oppgradere til CoddyKit PRO. Kurset i AI-agenter inneholder totalt 4 leksjoner.
Hva lærer jeg i «Validere verktøyutdata (Pydantic)»?
Tolk alle verktøyutdata gjennom en Pydantic-modell – la programmet feile tydelig ved ugyldige svar. Du øver på AI-agenter med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med AI-agenter?
Ingen tidligere erfaring er nødvendig. AI-agenter på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.
Hvor lang tid tar leksjonen «Validere verktøyutdata (Pydantic)»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne AI-agenter-leksjonen?
Ja. Alle AI-agenter-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Idempotente verktøy og bivirkninger
- Nye forsøk med eksponentiell backoff
- Tidsavbrudd og kretsbrytere
- Validere verktøyutdata (Pydantic)