Memvalidasi Keluaran Alat (Pydantic)
Uraikan setiap keluaran alat melalui model Pydantic—tampilkan galat secara tegas jika responsnya tidak sesuai format.
Memvalidasi Keluaran Alat (Pydantic) adalah pelajaran AI Agents gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar AI Agents, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AI Agents mencakup 4 pelajaran total.
Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.
Percayai, tetapi Verifikasi
Output alat berasal dari dunia luar — API, halaman web, dan model. Respons yang cacat atau tidak terduga dapat membuat agen Anda berhenti karena error atau, lebih buruk lagi, secara diam-diam memasukkan data yang salah ke dalam LLM.
Validasi setiap output alat terhadap sebuah skema.
Model Pydantic
Tentukan bentuk yang diharapkan:
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 resultsDaftar dengan Validasi Model
Validasi seluruh respons:
from pydantic import BaseModel
class SearchResponse(BaseModel):
results: list[SearchResult]
response = SearchResponse.model_validate(raw)Validator Bidang
Pemeriksaan khusus di dalam bidang:
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 vKetat vs Longgar
Secara default, Pydantic mengonversi tipe (string -> int jika memungkinkan). Untuk pemeriksaan ketat:
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' # fallbackValidasi Output Terstruktur LLM
Paksa model mengembalikan JSON yang sesuai dengan skema Pydantic — lihat pelajaran Output Terstruktur. Validasi lagi pada batas sebagai pertahanan berlapis.
Validasi Argumen Alat
Validasi tool_call.arguments milik model sebelum mengeksekusinya:
class SearchArgs(BaseModel):
query: str
k: int = 5
args = SearchArgs.model_validate_json(tool_call.function.arguments)
results = search(args.query, args.k)Error Validasi sebagai Hasil Alat
Jika validasi gagal, kembalikan error kepada model agar model dapat melakukan percobaan ulang dengan argumen yang telah diperbaiki:
try:
args = SearchArgs.model_validate_json(...)
except ValidationError as e:
return {'error': f'Invalid arguments: {e}'}Pemberian Versi Skema
Ketika skema output alat berubah, berikan versinya:
class SearchResultV2(BaseModel):
title: str
url: HttpUrl
relevance: float # was 'score' in v1Buat Skema JSON dari Pydantic
Untuk definisi skema alat, turunkan dari kelas Pydantic Anda:
schema = SearchArgs.model_json_schema()
# Use directly as the 'parameters' for an OpenAI tool definition.Tujuan Validasi
Mengapa menggunakan Pydantic pada setiap output alat?
Ringkasan
Pydantic pada setiap batas: argumen alat yang masuk, output alat yang keluar, dan output terstruktur LLM. Kegagalan yang terlihat jelas lebih baik daripada kerusakan data yang diam-diam.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Memvalidasi Keluaran Alat (Pydantic)” gratis?
Ya — teks lengkap “Memvalidasi Keluaran Alat (Pydantic)” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AI Agents, upgrade ke CoddyKit PRO. Kursus AI Agents mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Memvalidasi Keluaran Alat (Pydantic)”?
Uraikan setiap keluaran alat melalui model Pydantic—tampilkan galat secara tegas jika responsnya tidak sesuai format. Kamu berlatih AI Agents dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai AI Agents?
Tidak diperlukan pengalaman sebelumnya. AI Agents di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Memvalidasi Keluaran Alat (Pydantic)” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran AI Agents ini?
Ya. Setiap pelajaran AI Agents menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Alat Idempoten dan Efek Samping
- Percobaan Ulang dengan Jeda Eksponensial
- Batas Waktu dan Pemutus Sirkuit
- Memvalidasi Keluaran Alat (Pydantic)