Mengapa Keluaran Terstruktur
Hasil yang andal dan dapat dibaca mesin.
Mengapa Keluaran Terstruktur adalah pelajaran AI Prompt Engineering gratis di CoddyKit. Ini adalah pelajaran 1 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 Prompt Engineering, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AI Prompt Engineering mencakup 4 pelajaran total.
Masalah Teks Bebas
Output LLM dalam bahasa alami ambigu untuk diurai. Model dapat menjawab The price is $42 pada suatu waktu dan It costs forty-two dollars pada waktu berikutnya. Kode hilir yang mengharapkan angka akan gagal.
Output terstruktur berarti membatasi model agar menghasilkan data dalam bentuk yang dapat dibaca mesin (JSON, objek bertipe), sehingga penguraian bersifat deterministik, bukan heuristik.
Penguraian Adalah Biaya Tersembunyi
Tim sering menghabiskan lebih banyak upaya rekayasa untuk pemrosesan pascateks yang rapuh daripada untuk penyusunan perintah. Ekstraksi regex, pencocokan string samar, dan pengulangan saat penguraian gagal merupakan gejala output yang tidak terstruktur.
- Regex gagal ketika susunan kata berubah.
- Pencocokan samar menimbulkan kesalahan diam-diam.
- Setiap bidang baru memperluas area penguraian secara berlipat.
Pembuatan terstruktur memindahkan kontrak ini ke tahap awal, yaitu ke dalam permintaan.
Tiga Tingkat Struktur
Terdapat spektrum kekuatan penegakan:
- Pemberian perintah lunak — minta JSON dalam perintah; tidak ada jaminan.
- Dipandu skema — kirimkan JSON Schema; penyedia melakukan validasi.
- Dekode terbatas — tata bahasa/FSM menyamarkan token yang tidak valid sehingga hanya JSON valid yang dapat dihasilkan.
Setiap tingkat menukar fleksibilitas dengan keandalan.
Cara Kerja Internal Dekode Terbatas
Pada tingkat terkuat, dekoder menerapkan masker token di setiap langkah. Tata bahasa (yang sering dikompilasi menjadi mesin keadaan hingga) menghitung token berikutnya yang menjaga keabsahan output, dan pengambil sampel hanya dapat memilih dari kumpulan tersebut.
Dengan demikian, JSON yang tidak terbentuk dengan benar menjadi mustahil secara struktural, bukan sekadar tidak dianjurkan.
# Conceptual: logit masking against a grammar FSM
def masked_sample(logits, fsm_state, grammar):
allowed = grammar.allowed_token_ids(fsm_state)
mask = full_like(logits, NEG_INF)
mask[allowed] = 0.0
return sample(logits + mask)Output Terstruktur Asli Penyedia
API modern menyediakan response_format dengan JSON Schema yang ketat. Penyedia menjamin bahwa respons sesuai dengan skema, sehingga Anda dapat melakukan deserialisasi tanpa kode defensif.
client.chat.completions.create(
model='gpt-4o',
messages=[{'role': 'user', 'content': 'Extract the invoice fields.'}],
response_format={
'type': 'json_schema',
'json_schema': {
'name': 'invoice',
'strict': True,
'schema': {
'type': 'object',
'properties': {
'total': {'type': 'number'},
'currency': {'type': 'string'}
},
'required': ['total', 'currency'],
'additionalProperties': False
}
}
}
)Keandalan sebagai Kontrak
Anggap skema sebagai kontrak API antara model dan sistem Anda. Seperti tanda tangan fungsi bertipe, skema mendokumentasikan maksud dan memungkinkan jaminan yang menyerupai jaminan waktu kompilasi.
Hal ini mengubah output LLM dari saran yang harus ditafsirkan oleh kode Anda menjadi nilai bertipe yang dapat dipercaya oleh kode Anda.
Pertukaran antara Determinisme dan Kreativitas
Struktur membatasi bentuk, tetapi belum tentu isi. Skema dengan bidang summary: string yang bebas tetap memungkinkan prosa kreatif di dalam bidang tersebut.
Praktik terbaik: susun amplop (bidang, tipe, enum) secara ketat, dan sisakan keleluasaan kreatif hanya di dalam bidang string yang ditentukan.
Enum Menghilangkan Seluruh Kelas Kegagalan
Klasifikasi teks bebas (sentiment: 'kind of positive') tidak dapat diurai. Enum memaksa pemilihan salah satu dari kumpulan tetap, sehingga menghilangkan seluruh kelas bug normalisasi.
{
'type': 'object',
'properties': {
'sentiment': {
'type': 'string',
'enum': ['positive', 'neutral', 'negative']
}
},
'required': ['sentiment'],
'additionalProperties': False
}Keterpantauan dan Pemberian Versi Skema
Output terstruktur jauh lebih mudah untuk dicatat, dibandingkan, dan dipantau. Anda dapat menghitung metrik pada tingkat bidang, mendeteksi pergeseran, dan memberi peringatan ketika bidang tidak ada.
Perlakukan skema sebagai artefak berversi: tambahkan bidang sebagai opsional terlebih dahulu, tandai sebagai usang sebelum menghapusnya, dan beri setiap respons tag versi skema yang menghasilkannya.
Kapan TIDAK Memaksakan Struktur
Pembatasan berlebihan dapat menurunkan kualitas. Memaksakan skema kompleks selama langkah penalaran dapat menekan rantai pemikiran.
- Biarkan model bernalar dalam teks bebas terlebih dahulu.
- Kemudian lakukan panggilan terstruktur kedua untuk memformat kesimpulan.
Memisahkan penalaran dari pemformatan sering kali lebih baik daripada satu panggilan yang dibatasi secara berlebihan.
Pertimbangan Biaya dan Latensi
Output terstruktur biasanya mengurangi biaya total: lebih sedikit percobaan ulang, lebih sedikit token yang dihabiskan untuk pembingkaian prosa, dan tidak memerlukan layanan penguraian terpisah. Namun, mode skema ketat dapat menambahkan sedikit beban di sisi server dan dapat menolak percobaan pertama, jadi selalu padukan dengan strategi perbaikan (dibahas nanti).
Pemeriksaan Singkat
Teknik apa yang membuat JSON yang tidak terbentuk dengan benar mustahil secara struktural, bukan sekadar tidak dianjurkan?
Ringkasan
Sekarang Anda memahami mengapa output terstruktur penting:
- Output ini menggantikan penguraian rapuh dengan kontrak bertipe.
- Penegakan mencakup rentang dari pemberian perintah lunak hingga dekode terbatas.
- Enum dan amplop yang ketat menghilangkan seluruh kelas bug.
- Struktur membantu keterpantauan dan pemberian versi.
- Pisahkan penalaran dari pemformatan untuk menghindari penurunan kualitas.
Berikutnya: cara menyatakan kontrak tersebut secara tepat dengan JSON Schema dalam perintah.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Mengapa Keluaran Terstruktur” gratis?
Ya — teks lengkap “Mengapa Keluaran Terstruktur” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AI Prompt Engineering, upgrade ke CoddyKit PRO. Kursus AI Prompt Engineering mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Mengapa Keluaran Terstruktur”?
Hasil yang andal dan dapat dibaca mesin. Kamu berlatih AI Prompt Engineering 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 Prompt Engineering?
Tidak diperlukan pengalaman sebelumnya. AI Prompt Engineering 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 1 dari 4.
Berapa lama pelajaran “Mengapa Keluaran Terstruktur” 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 Prompt Engineering ini?
Ya. Setiap pelajaran AI Prompt Engineering 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
- Mengapa Keluaran Terstruktur
- Skema JSON dalam Prompt
- Skema Alat/Fungsi
- Siklus Perbaikan dan Validasi