Walidacja schematów Pydantic
Zdefiniuj dane wyjściowe jako Pydantic BaseModel, zweryfikuj JSON i wcześnie wykrywaj nieprawidłowe odpowiedzi.
Walidacja schematów Pydantic to bezpłatna lekcja AI Agents na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AI Agents, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Agents zawiera 4 lekcji w sumie.
Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.
Dlaczego Pydantic?
Pydantic to de facto standardowa biblioteka zapewniająca bezpieczeństwo typów w Pythonie. Biblioteka ta:
- Weryfikuje słowniki względem klas z adnotacjami typów
- Konwertuje wartości w przypadku niezgodności albo je odrzuca
- Automatycznie generuje JSON Schema na potrzeby OpenAI API
- Dobrze współpracuje z FastAPI, LangChain i 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.99Validating 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_formatUsing 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.parsedOptional Fields
from typing import Optional
class Order(BaseModel):
id: int
note: Optional[str] = NoneDefaults
class Settings(BaseModel):
units: str = 'celsius'
notify: bool = TrueAliasy
Do mapowania JSON w formacie snake_case na camelCase w Pythonie lub odwrotnie:
class User(BaseModel):
user_id: int = Field(alias='userId')
u = User.model_validate({'userId': 42})
print(u.user_id) # 42Unie rozróżniane
W przypadku typów polimorficznych należy użyć unii rozróżnianej Pydantic:
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')]Cel walidacji
Dlaczego należy używać Pydantic dla każdego wyniku działania narzędzia?
Podsumowanie
Pydantic to warstwa kontraktu między wynikami LLM, wynikami narzędzi a kodem. Należy używać go wszędzie i łączyć z danymi strukturalnymi, aby zagwarantować poprawność.
Często zadawane pytania
Czy lekcja „Walidacja schematów Pydantic” jest bezpłatna?
Tak — pełny tekst „Walidacja schematów Pydantic” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AI Agents, przejdź na CoddyKit PRO. Kurs AI Agents zawiera 4 lekcji w sumie.
Co nauczysz się w „Walidacja schematów Pydantic”?
Zdefiniuj dane wyjściowe jako Pydantic BaseModel, zweryfikuj JSON i wcześnie wykrywaj nieprawidłowe odpowiedzi. Ćwiczysz AI Agents z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć AI Agents?
Nie wymagamy żadnego doświadczenia. AI Agents w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Walidacja schematów Pydantic”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji AI Agents?
Tak. Każda lekcja AI Agents zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Tryb JSON i wyniki wywołań narzędzi
- Walidacja schematów Pydantic
- Pętle naprawcze dla nieprawidłowych danych wyjściowych
- Instructor / Outlines dla gwarantowanej struktury