Skip to content

Pydantic & Zod ile Otomatik Doğrulama

Python (Pydantic) ve TypeScript (Zod) ile schema-first development. LLM çıktılarını type-safe data class'lara dönüştürme.

Şükrü Yusuf KAYA
9 min read
Intermediate

Pydantic & Zod: Schema-First Development

Production'da LLM çıktılarını runtime'da valide etmek şart. Python'da Pydantic, TypeScript'te Zod.
from pydantic import BaseModel, Field, EmailStr, field_validator from typing import List, Literal, Optional from datetime import date class Invoice(BaseModel): invoice_no: str = Field(pattern=r"^INV-\d{6}$") customer_email: EmailStr amount: float = Field(gt=0) currency: Literal["TRY", "USD", "EUR"] due_date: date items: List["InvoiceItem"] = Field(min_length=1) @field_validator("due_date") def must_be_future(cls, v): if v < date.today(): raise ValueError("Vade geçmiş olamaz") return v class InvoiceItem(BaseModel): description: str quantity: int = Field(gt=0) unit_price: float = Field(gt=0) # Kullanım raw_json = '{"invoice_no": "INV-123456", "customer_email": "x@y.com", ...}' invoice = Invoice.model_validate_json(raw_json) # Hata varsa: ValidationError fırlar
Pratik: Schema'yı tek kaynak yap (single source of truth). Pydantic/Zod'dan JSON Schema export edip LLM'e gönder. Tek yerde değişiklik, her yerde tutarlılık.

Yorumlar & Soru-Cevap

(0)
Yorum yazmak için giriş yap.
Yorumlar yükleniyor...

Related Content