AI-agenter · leksjon

Validere verktøyutdata (Pydantic)

Tolk alle verktøyutdata gjennom en Pydantic-modell – la programmet feile tydelig ved ugyldige svar.

Leksjon 4 av 414 trinn

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.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

Lister 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 v

Streng 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'   # fallback

Valider 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 v1

Generer 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.

Gratis å komme i gang

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

  1. Idempotente verktøy og bivirkninger
  2. Nye forsøk med eksponentiell backoff
  3. Tidsavbrudd og kretsbrytere
  4. Validere verktøyutdata (Pydantic)
← Tilbake til AI-agenter