AI-agenter · Lektion

Validering av Pydantic-scheman

Definiera utdata som en Pydantic BaseModel, validera JSON och fånga felaktiga svar tidigt.

Lektion 2 av 415 steg

Validering av Pydantic-scheman är en gratis lektion i AI-agenter på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för AI-agenter, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i AI-agenter innehåller totalt 4 lektioner.

Delar av den här lektionen har ännu inte översatts och visas på engelska.

Varför Pydantic?

Pydantic är det etablerade biblioteket för typsäkerhet i Python. Det:

  • Validerar dict-objekt mot typannoterade klasser
  • Konverterar eller avvisar värden vid typfel
  • Genererar automatiskt JSON Schema för OpenAI API
  • Fungerar bra tillsammans med FastAPI, LangChain och LlamaIndex

Defining a Schema

from pydantic import BaseModel, Field

class Product(BaseModel):
    name: str
    price: float = Field(gt=0, description='Positive price in USD')
    in_stock: bool
    tags: list[str] = []

Validating a Dict

data = {'name': 'Mug', 'price': 9.99, 'in_stock': True, 'tags': ['kitchen']}
product = Product.model_validate(data)
print(product.price)        # 9.99

Validating JSON

json_str = '{"name":"Mug","price":9.99,"in_stock":true}'
product = Product.model_validate_json(json_str)

Validation Errors

from pydantic import ValidationError

try:
    Product.model_validate({'name': 'Mug', 'price': -1, 'in_stock': True})
except ValidationError as e:
    print(e)
# [{'type': 'greater_than', 'loc': ('price',), 'msg': 'Input should be greater than 0', ...}]

Field-Level Validators

from pydantic import field_validator

class User(BaseModel):
    email: str

    @field_validator('email')
    @classmethod
    def must_have_at(cls, v):
        if '@' not in v:
            raise ValueError('Invalid email')
        return v.lower()

Nested Models

class Address(BaseModel):
    city: str
    zip: str

class User(BaseModel):
    name: str
    address: Address

data = {'name': 'Alice', 'address': {'city': 'Berlin', 'zip': '10115'}}
user = User.model_validate(data)
print(user.address.city)

Generating JSON Schema

schema = Product.model_json_schema()
# Pass straight to OpenAI tools or response_format

Using With OpenAI SDK

from openai import OpenAI
client = OpenAI()

response = client.beta.chat.completions.parse(
    model='gpt-4o-2024-08-06',
    messages=[{'role': 'user', 'content': 'Give me a product.'}],
    response_format=Product
)
product = response.choices[0].message.parsed

Optional Fields

from typing import Optional
class Order(BaseModel):
    id: int
    note: Optional[str] = None

Defaults

class Settings(BaseModel):
    units: str = 'celsius'
    notify: bool = True

Alias

För att mappa JSON snake_case till Python camelCase eller tvärtom:

class User(BaseModel):
    user_id: int = Field(alias='userId')

u = User.model_validate({'userId': 42})
print(u.user_id)   # 42

Diskriminererade unioner

För polymorfa typer använder ni Pydantics diskriminerade union:

from typing import Literal, Union
from pydantic import Field

class TextMessage(BaseModel):
    type: Literal['text']
    content: str

class ImageMessage(BaseModel):
    type: Literal['image']
    url: str

Message = Annotated[Union[TextMessage, ImageMessage], Field(discriminator='type')]

Valideringsmål

Varför använda Pydantic för varje verktygsresultat?

Sammanfattning

Pydantic är kontraktslagret mellan resultat från LLM:er, verktygsresultat och er kod. Använd det överallt och kombinera det med strukturerade resultat för garanterad giltighet.

Gratis att börja

Lär dig AI-agenter med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
60
Lektioner
239

Vanliga frågor

Är lektionen ”Validering av Pydantic-scheman” gratis?

Ja – hela texten till ”Validering av Pydantic-scheman” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i AI-agenter, kan Ni uppgradera till CoddyKit PRO. Kursen i AI-agenter innehåller totalt 4 lektioner.

Vad lär jag mig i ”Validering av Pydantic-scheman”?

Definiera utdata som en Pydantic BaseModel, validera JSON och fånga felaktiga svar tidigt. Ni övar på AI-agenter med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig AI-agenter?

Du behöver inga förkunskaper. Utbildningen i AI-agenter på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.

Hur lång tid tar lektionen ”Validering av Pydantic-scheman”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här AI-agenter-lektionen?

Ja. Varje AI-agenter-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. JSON-läge och verktygsanropsutdata
  2. Validering av Pydantic-scheman
  3. Reparationsloopar för felaktig utdata
  4. Instructor / Outlines för garanterad struktur
← Tillbaka till AI-agenter