Skema JSON dalam Arahan
Mengehadkan bentuk hasil.
Skema JSON dalam Arahan ialah pelajaran Kejuruteraan Arahan AI 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 Kejuruteraan Arahan AI, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Kejuruteraan Arahan AI merangkumi sejumlah 4 pelajaran.
Skema sebagai Kontrak Keluaran
Skema JSON menerangkan secara deklaratif bentuk keluaran yang sah: jenis, kunci wajib, kekangan nilai dan struktur bersarang. Apabila dihantar kepada API keluaran berstruktur, skema menjadi kontrak tegas; apabila dimasukkan dalam arahan, skema menjadi panduan kukuh.
Menguasai penulisan skema ialah kemahiran teras penjanaan berstruktur.
Bendera Ketat Mengubah Segalanya
Dalam mod ketat, penyedia memerlukan setiap sifat disenaraikan dalam required dan additionalProperties ialah false. Medan pilihan dinyatakan sebagai kesatuan dengan null, bukannya melalui pengguguran.
{
'type': 'object',
'properties': {
'name': {'type': 'string'},
'nickname': {'type': ['string', 'null']}
},
'required': ['name', 'nickname'],
'additionalProperties': False
}Mengehadkan Nilai Skalar
Masukkan pengesahan ke dalam skema dan bukannya pascapemprosesan:
enumuntuk pilihan tetap.minimum/maximumuntuk julat berangka.patternuntuk rentetan yang disahkan menggunakan ungkapan nalar.formatsebagai petunjuk sepertidate-timeatauemail.
{
'rating': {'type': 'integer', 'minimum': 1, 'maximum': 5},
'sku': {'type': 'string', 'pattern': '^[A-Z]{3}-[0-9]{4}$'},
'created': {'type': 'string', 'format': 'date-time'}
}Tatasusunan dan Tupel
Gunakan items untuk tatasusunan seragam dan tambahkan minItems/maxItems untuk mengehadkan panjangnya. Bagi tupel berposisi, bekalkan tatasusunan skema melalui prefixItems.
{
'tags': {
'type': 'array',
'items': {'type': 'string'},
'minItems': 1,
'maxItems': 5
}
}Kesatuan Berpembeza dengan oneOf
Modelkan hasil polimorfik dengan oneOf serta medan pembeza. Model memilih tepat satu cabang dan penyahsirikan anda bertukar berdasarkan tanda tersebut.
{
'oneOf': [
{'type': 'object', 'properties': {
'kind': {'const': 'email'},
'address': {'type': 'string', 'format': 'email'}},
'required': ['kind', 'address']},
{'type': 'object', 'properties': {
'kind': {'const': 'phone'},
'number': {'type': 'string'}},
'required': ['kind', 'number']}
]
}Jana Skema daripada Jenis
Menulis skema secara manual mudah terdedah kepada ralat. Terbitkan skema daripada model berjenis supaya skema dan kod anda tidak pernah menyimpang.
from pydantic import BaseModel
class Invoice(BaseModel):
total: float
currency: str
paid: bool
schema = Invoice.model_json_schema()
# pass schema directly to response_formatHuraian Juga Merupakan Arahan
Setiap description dalam skema dibaca oleh model. Gunakannya untuk membimbing makna, bukan sekadar mendokumentasikan medan.
Contohnya, huraian seperti kod negara ISO-3166 alpha-2, huruf besar meningkatkan ketepatan medan dengan ketara. Anggap huraian sebagai arahan mikro yang dibenamkan dalam kontrak.
{
'country': {
'type': 'string',
'description': 'ISO-3166 alpha-2 code, uppercase, e.g. US, TR, DE'
}
}Membenamkan Skema dalam Arahan
Apabila penyedia tidak mempunyai sokongan asli, benamkan skema dalam arahan dan tuntut pematuhan. Gandingkannya dengan satu contoh dalam konteks serta arahan jelas JSON sahaja, tanpa prosa.
SYSTEM = (
'You output ONLY JSON matching this schema. No markdown, no commentary.\n'
'Schema:\n' + json.dumps(schema) + '\n'
'If a value is unknown, use null.'
)Mengelakkan Skema Berlebihan
Skema yang terlalu dalam atau bercabang mengelirukan model dan menaikkan kos token. Panduan:
- Kekalkan struktur bersarang cetek; ratakan jika boleh.
- Utamakan enumerasi berbanding rentetan bebas.
- Pecahkan skema besar kepada beberapa panggilan yang berfokus.
- Sesetengah penyedia mengehadkan kedalaman sarang dan jumlah sifat; semak hadnya.
Rujukan dan Guna Semula
Gunakan $defs dan $ref untuk menggunakan semula subskema (contohnya, Address yang digunakan dalam pengebilan dan penghantaran). Ambil perhatian bahawa sesetengah mod ketat mengehadkan kedalaman rekursi, jadi sahkan sokongan sebelum bergantung pada rujukan yang merujuk diri sendiri.
{
'$defs': {
'Address': {'type': 'object', 'properties': {
'city': {'type': 'string'}}, 'required': ['city'],
'additionalProperties': False}
},
'type': 'object',
'properties': {
'billing': {'$ref': '#/$defs/Address'},
'shipping': {'$ref': '#/$defs/Address'}
},
'required': ['billing', 'shipping'],
'additionalProperties': False
}Sahkan Skema Itu Sendiri
Satu kelas pepijat yang halus: skema itu cacat, bukannya keluaran. Jalankan pemeriksaan gaya dan sahkan skema dalam CI terhadap metas kema Skema JSON, kemudian lalukan objek contoh pergi-balik melalui pengesah anda sebelum pelancaran.
import jsonschema
jsonschema.Draft202012Validator.check_schema(schema)
# also: validate a known-good sample
jsonschema.validate(sample_obj, schema)Semakan Pantas
Dalam mod Skema JSON ketat penyedia, bagaimanakah medan pilihan dinyatakan dengan betul?
Rumusan
Anda kini boleh menghasilkan skema yang tepat:
- mod ketat memerlukan semua medan wajib serta additionalProperties palsu.
- Hadkan skalar dengan enumerasi, julat, corak dan format.
- Modelkan polimorfisme dengan pembeza oneOf.
- Jana skema daripada model berjenis; anggap huraian sebagai arahan mikro.
- Sahkan skema itu sendiri dalam CI.
Seterusnya: menggunakan skema pada panggilan alat dan fungsi.
Pelajari Kejuruteraan Arahan AI 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
- 53
- Pelajaran
- 199
Soalan Lazim
Adakah pelajaran “Skema JSON dalam Arahan” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Kejuruteraan Arahan AI, termasuk “Skema JSON dalam Arahan”, 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 Kejuruteraan Arahan AI merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Skema JSON dalam Arahan”?
Mengehadkan bentuk hasil. Anda berlatih Kejuruteraan Arahan AI 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 Kejuruteraan Arahan AI?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Kejuruteraan Arahan AI 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 “Skema JSON dalam Arahan” 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 Kejuruteraan Arahan AI ini?
Ya. Setiap pelajaran Kejuruteraan Arahan AI 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
- Mengapa Hasil Berstruktur
- Skema JSON dalam Arahan
- Skema Alat dan Fungsi
- Gelung Pembaikan dan Pengesahan