Mereka Bentuk Skema JSON
Bentuk output tepat mengikut keperluan anda
Mereka Bentuk Skema JSON ialah pelajaran Claude Architect percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Claude Architect, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Claude Architect merangkumi sejumlah 4 pelajaran.
Mengapa Keluaran Berbentuk Skema
Apabila anda memerlukan jawapan Claude dalam struktur yang tepat, jangan huraikan teks bebas dan berharap semuanya betul. Gabungkan tool_use dengan Skema JSON: Claude mengisi input_schema alat dan API menjamin JSON yang sah dengan medan yang diperlukan tersedia.
Ini menghapuskan dua kategori kegagalan utama: ralat sintaks (koma yang hilang, tanda petikan yang tidak diekskap) dan medan yang hilang. Skema ialah kontrak — reka bentuk dengan baik dan kod hiliran tidak perlu lagi mengendalikan bentuk data yang cacat.
Alat Itu Ialah Skema
"Alat" keluaran berstruktur tidak semestinya memanggil apa-apa. Ia hanyalah bekas bernama yang input_schema-nya menerangkan bentuk yang anda mahukan. Anda mentakrifkannya, kemudian membaca perkara yang Claude masukkan dalam panggilan alat.
Berikan alat itu nama dan perihalan yang jelas — kedua-duanya masih mempengaruhi pemilihan — tetapi kerja sebenar terletak pada properties skema dan senarai required.
extract_invoice = {
"name": "extract_invoice",
"description": "Record the structured fields parsed from an invoice document.",
"input_schema": {
"type": "object",
"properties": {
"invoice_number": {"type": "string"},
"total": {"type": "number"},
},
"required": ["invoice_number", "total"],
},
}Paksa Struktur dengan tool_choice
Jika anda mahukan keluaran berstruktur yang terjamin, jangan serahkannya kepada nasib. Tetapkan tool_choice untuk memaksa panggilan alat:
"auto"— model memilih teks atau alat"any"— model MUST memanggil sesuatu alat (menjamin keluaran berstruktur){"type":"tool","name":"X"}— paksa satu alat tertentu
Untuk pengekstrakan dengan satu skema, memaksa alat yang tepat mengikut nama ialah cara paling kemas untuk mendapatkan bentuk data yang deterministik.
resp = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=1024,
tools=[extract_invoice],
tool_choice={"type": "tool", "name": "extract_invoice"},
messages=[{"role": "user", "content": invoice_text}],
)Required Bermaksud Sentiasa Ada
Peraturan skema yang paling penting: tandakan medan sebagai required ONLY jika medan itu sentiasa ada dalam sumber. Jangan sekali-kali mewajibkan medan yang mungkin tiada.
Mengapa? Medan yang diperlukan memaksa model mengeluarkan suatu nilai. Jika data itu tiada, Claude akan mereka-reka nilai untuk memenuhi kontrak. Medan pilihan yang tiada adalah jujur; medan yang diperlukan tetapi hilang menggalakkan halusinasi.
Medan Pilihan, Dilakukan dengan Betul
Untuk medan yang mungkin muncul atau tidak — baris diskaun, kenalan kedua, tarikh akhir — keluarkan medan tersebut daripada required. Huraikannya dengan jelas supaya Claude hanya mengisinya apabila data itu benar-benar wujud.
Perihalan yang baik memberitahu model format input dan peraturan ketiadaan, supaya model meninggalkan medan itu dan bukannya mereka-reka nilainya.
"properties": {
"invoice_number": {"type": "string"},
"total": {"type": "number"},
"due_date": {
"type": "string",
"description": "ISO 8601 date (YYYY-MM-DD). Omit entirely if no due date is stated."
},
},
"required": ["invoice_number", "total"]Enumerasi Mengehadkan Keluaran
Apabila sesuatu medan mempunyai kosa kata tetap — status, kategori, keutamaan — gunakan enum. Ini menukarkan teks bebas yang tidak seragam ("paid", "PAID", "settled") kepada satu nilai kanonik yang boleh digunakan oleh kod anda untuk membuat pilihan.
Enumerasi juga mengurangkan halusinasi: model mesti memilih daripada set yang disenaraikan dan bukannya mereka-reka label.
"status": {
"type": "string",
"enum": ["draft", "sent", "paid", "overdue", "void"],
"description": "Current invoice status."
}Mereka Bentuk Enumerasi untuk Kebolehkembangan
Enumerasi yang kaku akan rosak apabila realiti menghasilkan kes baharu. Corak yang digunakan oleh arkitek: tambah nilai "other" pada enumerasi DAN medan butiran teks bebas untuk merekodkan perkara sebenar bagi "other".
"category": {
"type": "string",
"enum": ["hardware", "software", "services", "other"]
},
"category_detail": {
"type": "string",
"description": "If category is 'other', describe it here. Omit otherwise."
}Perihalanlah yang Mengajar
Perihalan medan ialah gesaan mini. Kekunci yang kabur menghasilkan keluaran yang kabur. Nyatakan format, berikan contoh, dan terangkan pengendalian kes pinggir terus dalam skema.
Ini ialah padanan keluaran berstruktur bagi kriteria yang jelas mengatasi arahan yang kabur: "tarikh ISO 8601, abaikan jika tiada" sentiasa lebih baik daripada due_date: string semata-mata.
"line_items": {
"type": "array",
"description": "One object per billed line. Empty array if none.",
"items": {
"type": "object",
"properties": {
"sku": {"type": "string", "description": "e.g. 'ABC-1024'"},
"qty": {"type": "integer"},
"unit_price": {"type": "number"}
},
"required": ["qty", "unit_price"]
}
}Bina Pengesahan Kendiri
Skema yang baik membantu anda mengesan ralat. Untuk mengesahkan pengiraan aritmetik, ekstrak nilai dikira DAN dinyatakan, kemudian bandingkan kedua-duanya dalam kod.
Contohnya, ambil stated_total (yang dicetak pada dokumen) bersama-sama item baris yang boleh anda jumlahkan sendiri. Ketidakpadanan menandakan ralat pengekstrakan atau dokumen sebelum ralat itu merebak ke sistem hiliran.
"stated_total": {
"type": "number",
"description": "The grand total exactly as printed on the invoice."
}
# In code:
# calc = sum(li['qty'] * li['unit_price'] for li in items)
# if abs(calc - data['stated_total']) > 0.01: flag_discrepancy()Sahkan, Kemudian Cuba Semula dengan Maklum Balas
Skema menjamin bentuk JSON, bukan ketepatan perniagaan. Tambahkan pengesahan bergaya Pydantic. Apabila pengesahan gagal kerana ralat format / struktur / aritmetik, cuba semula — tetapi beritahu model perkara yang telah silap.
Hantar dokumen asal, keluaran yang salah, dan ralat pengesahan yang tepat. Itulah percubaan semula dengan maklum balas. Nota: percubaan semula TIDAK membantu apabila maklumat itu sekadar tiada dalam sumber — sebanyak mana pun anda bertanya semula, data yang hilang tidak akan muncul.
messages = [
{"role": "user", "content": original_doc},
{"role": "assistant", "content": wrong_output},
{"role": "user", "content":
f"Validation failed: {error}. Re-emit corrected JSON."},
]
# Retry fixes format/arithmetic bugs, not missing facts.Rakam Asal Usul dalam Skema
Untuk pengekstrakan yang perlu anda pertahankan kemudian, reka bentuk medan yang mengekalkan asal usul: dari mana datangnya setiap dakwaan. Kekalkan pemetaan dakwaan kepada sumber — nama sumber, petikan, halaman atau tarikh.
Ini menukarkan pengekstrakan kotak hitam kepada pengekstrakan yang boleh diaudit, dan membolehkan anda menganotasi nilai yang bercanggah (selalunya perbezaan tarikh) dan bukannya memilih satu nilai secara senyap.
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {"type": "string"},
"source_quote": {"type": "string",
"description": "Verbatim text supporting this value."},
"source_page": {"type": "integer"}
},
"required": ["value", "source_quote"]
}
}Semakan Pantas: Medan Pilihan
Anda sedang mengekstrak pesanan pembelian. Sesetengah pesanan menyenaraikan discount_code, tetapi kebanyakannya tidak. Bagaimanakah skema patut mengendalikan discount_code?
Imbas Kembali: Membentuk Keluaran
Perkara utama untuk mereka bentuk Skema JSON:
- tool_use + Skema JSON menghapuskan ralat sintaks dan menguatkuasakan medan yang diperlukan.
- Paksa bentuk dengan
tool_choice:"any"untuk sebarang alat,{"type":"tool","name":"X"}untuk alat tertentu. - Tandakan
requiredONLY untuk medan yang sentiasa ada — mewajibkan medan yang tiada menyebabkan rekaan. - Gunakan enumerasi untuk kosa kata tetap; tambah
"other"+ medan butiran untuk kebolehkembangan. - Perihalan mengajar format, contoh dan kes pinggir.
- Ekstrak nilai dikira DAN dinyatakan untuk pengesahan kendiri; sahkan, kemudian cuba semula dengan maklum balas untuk ralat format (bukan untuk maklumat yang tiada).
- Rakam asal usul untuk pengekstrakan yang boleh diaudit dan dipertahankan.
Pelajari Python dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 26
- Pelajaran
- 104
Soalan Lazim
Adakah pelajaran “Mereka Bentuk Skema JSON” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Claude Architect, termasuk “Mereka Bentuk Skema JSON”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Claude Architect merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Mereka Bentuk Skema JSON”?
Bentuk output tepat mengikut keperluan anda Anda berlatih Claude Architect menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Claude Architect?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Claude Architect di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.
Berapa lamakah pelajaran “Mereka Bentuk Skema JSON” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Claude Architect ini?
Ya. Setiap pelajaran Claude Architect menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- tool_use untuk Struktur Terjamin
- Mereka Bentuk Skema JSON
- Medan Diperlukan berbanding Pilihan/Boleh Nol
- Enum dengan 'other' untuk Kebolehkembangan