LLM structured output: medan dan pengesahan bukti
Oleh Ai Flowi · Diterbitkan
LLM structured output ialah respons model yang disusun dalam medan yang ditetapkan terlebih dahulu, berbanding prosa tanpa sekatan. Ia berguna apabila pemprosesan seterusnya memerlukan nilai dengan nama tertentu, seperti pengecam dokumen, klausa yang diekstrak dan status bukti. Pematuhan kepada sesuatu struktur tidak membuktikan bahawa fakta yang diekstrak itu benar.
Reka medan berdasarkan perkara yang benar-benar dapat disokong oleh sumber. Sediakan cara untuk mewakili maklumat yang tidak diketahui, kemudian semak bentuk output dan bukti yang menyokong nilainya. Jangan wajibkan objek yang kelihatan lengkap apabila sumbernya tidak lengkap.
Pengekstrakan, penghuraian dan pengesahan
Pengekstrakan meminta model mentafsir teks sumber dan mengembalikan maklumat terpilih. Penghuraian menukar sesuatu perwakilan, seperti teks objek JSON, menjadi data. Pengesahan struktur menyemak kunci yang diwajibkan dan jenis yang dibenarkan. Pengesahan semantik menyemak sama ada nilai memenuhi keperluan tugas dan disokong oleh sumber.
Peringkat ini menjawab soalan yang berbeza. Penghurai mungkin menerima objek yang terbentuk dengan sempurna tetapi mengandungi klausa rekaan. Petikan yang disokong oleh sumber pula mungkin diterima dengan medan yang tiada. Anggap output yang salah format dan fakta yang tidak disokong sebagai kegagalan berasingan supaya pengendali tahu perkara yang perlu dibetulkan.
Rujukan JSON String Parser menerangkan penukaran teks objek yang sedia ada. Halaman ini membincangkan kontrak pengekstrakan oleh model pada peringkat sebelumnya dan semakan yang diperlukan sebelum hasilnya digunakan.
Konsep skema bukti dokumen
Katakan seorang penyemak bertanya sama ada dokumen yang diluluskan mengandungi keperluan notis. Rekod yang dikehendaki perlu mengekalkan pengecam sumber dan petikan berkaitan yang tepat, atau menyatakan secara jelas bahawa sumber yang dibekalkan tidak menjawab soalan tersebut. Jangan paksa model mengisi tempoh notis yang sekadar kelihatan munasabah.
| Medan | Nilai yang dimaksudkan | Semakan |
|---|---|---|
document_id | Pengecam yang dibekalkan bersama sumber. | Sepadan dengan set dokumen sumber yang dibenarkan. |
evidence_status | supported, unknown atau conflicting. | Tepat satu daripada pilihan yang ditetapkan oleh aplikasi. |
clause_excerpt | Petikan teks sumber yang berkaitan, atau nilai kosong apabila tidak diketahui. | Dapat ditemukan dalam sumber asal. |
unresolved_question | Perkara yang tidak dijawab oleh sumber. | Tidak menyembunyikan ketiadaan bukti di sebalik kesimpulan yang yakin. |
Ini ialah konsep kontrak output. Ia bukan format import untuk jadual output_schema terbina dalam. Tentukan medan wajib dan perwakilan yang dibenarkan dalam aplikasi anda, kemudian periksa kawalan skema dalam editor sebelum memasukkannya.
Medan yang tiada berbeza daripada maklumat yang tidak diketahui. Ketiadaan evidence_status melanggar kontrak ini. Status unknown yang dinyatakan secara jelas boleh menjadi hasil yang sah apabila sumber tidak mempunyai maklumat yang diminta. Teks kosong, null dan kunci yang tidak disertakan tidak semestinya boleh saling menggantikan; pilih perwakilan yang difahami oleh semakan pada peringkat seterusnya.
Structured Output dalam AI Flowi Workflow
Entri Structured Output dalam katalog komponen menerangkan antara muka penjanaan yang digunakan di bawah.
Keputusan khusus bagi pengekstrakan ialah memilih medan yang membolehkan penyemak membezakan ketiadaan bukti daripada respons yang salah format, sebelum sebarang rekod sampai ke pemprosesan seterusnya.
Persediaan pengekstrakan yang dicadangkan
contoh konfigurasi, bukan ujian yang direkodkan
Structured Output
input_value: the synthetic document identifier and source text
system_prompt: Extract the relevant notice clause from the supplied source.
Use unknown when evidence is absent. Preserve source wording.
schema_name: document_evidence
output_schema: configure the reviewed field contract in the editor
model: select your configured provider model
Sediakan kelayakan akses model menggunakan rujukan model dan pemboleh ubah, dengan akaun penyedia dan kunci API anda sendiri serta bil penyedia yang berasingan.
Hasil yang dimaksudkan ialah rekod data yang sesuai untuk diperiksa, bukan klausa ekstrak yang direka. Tiada output daripada konfigurasi ini direkodkan. Structured Output didokumenkan dalam katalog; belum diuji dalam persekitaran produksi oleh Ai Flowi.
Bagaimana mengesahkan bentuk, kemudian makna output berstruktur?
- Semak struktur rekod. Pastikan kunci wajib, jenis nilai yang dijangka dan nilai status yang dibenarkan. Tolak respons yang tidak dapat memenuhi kontrak data.
- Semak identiti sumber. Pastikan pengecam itu milik dokumen yang dibekalkan dan dibenarkan, bukan konteks lain.
- Semak sokongan bukti. Cari petikan dalam sumber dan periksa syarat yang mengiringinya. Petikan sebenar masih boleh ditafsirkan terlalu luas.
- Semak pengendalian maklumat yang tidak diketahui dan bercanggah. Pastikan maklumat yang belum diselesaikan kekal jelas. Jangan anggap status unknown sebagai dapatan positif yang berjaya.
- Benarkan penggunaan seterusnya hanya selepas penerimaan. Hasil yang ditolak atau tidak pasti perlu kekal di luar laluan penyimpanan kekal atau tindakan.
Jika pengekstrakan melibatkan amaun atau tempoh, gunakan pengiraan deterministik selepas mengesahkan nilai dan unit yang diekstrak. Nilai angka mungkin mempunyai jenis yang betul tetapi merujuk kepada mata wang, tempoh pelaporan atau klausa yang salah. Tiada kadar ketepatan atau jaminan pengesahan fakta automatik didakwa di sini.
Kes pengekstrakan yang boleh gagal walaupun objek sah
Gunakan ayat sumber rekaan: “Rekod memerlukan notis jika diarkibkan; rekod semasa tidak.” Rekod yang hanya mengekstrak “rekod memerlukan notis” telah membuang batas kategori. Medan petikan perlu mengekalkan kata-kata yang berkaitan, dan dapatan yang disokong perlu menyatakan rekod yang dimaksudkan. Menemukan frasa yang dipendekkan itu dalam dokumen tidak mencukupi untuk mengesahkan kesimpulan yang lebih luas.
Seterusnya, bekalkan ayat yang merujuk kepada jadual lampiran tetapi tidak menyertakan jadual tersebut. Output perlu mengekalkan soalan yang belum terjawab, bukannya menyimpulkan tempohnya berdasarkan dokumen lain atau perbualan terdahulu. Kekalkan pengecam dokumen mengikut set dokumen yang dibekalkan. Jika model mengembalikan pengecam daripada tugas sebelumnya, tolak rekod itu walaupun kata-kata yang diekstrak kelihatan munasabah.
Untuk medan angka, bekalkan dua angka sintetik dengan unit yang berbeza, seperti hari dalam satu klausa dan bulan dalam klausa lain. Periksa nilai bersama unit, kategori yang mengehadkan pemakaiannya dan penunjuk lokasi sumber. Pengiraan seterusnya memerlukan konteks tersebut; kejayaan menghuraikan digit tidak membuktikan bahawa model memilih klausa yang terpakai. Jika petikan yang diperlukan telah dipotong sebelum penjanaan, tandakan rekod sebagai tidak lengkap dan ulang pengekstrakan dengan konteks sumber yang telah disemak. Jangan menampung bukti yang tiada dengan menyunting output menjadi objek yang meyakinkan.
Halakan keputusan yang diterima secara berasingan daripada pengekstrakan
Gunakan antara muka Condition untuk tapisan status yang dicadangkan: tetapkan key_name=evidence_status, operator="equals" dan compare_value=supported hanya selepas semakan bukti di atas.
Rekod berstatus supported dengan clause_excerpt yang kosong bercanggah dengan kontrak bukti yang dicadangkan. Tolak gabungan itu sebelum penghalaan, bukannya mempercayai status sahaja. Sebaliknya, hasil unknown dengan unresolved_question yang jelas boleh diterima dari segi struktur sambil kekal di luar cabang dapatan yang diterima.
Setelah pengekstrakan lulus semakan bukti, gunakan tutorial webhook ke Sheets untuk konfigurasi destinasi dan pemetaan baris.
Kesilapan lazim dan konsep berkaitan
Jangan wajibkan setiap medan apabila sumber tidak dapat membekalkan semua jawapan. Jangan samakan JSON yang boleh dihuraikan dengan bukti yang telah disahkan. Jangan tulis hasil yang tidak pasti ke helaian dan berharap penyemak kemudian akan menyedari ketidakpastian itu.
Pemanggilan fungsi meminta sesuatu operasi, manakala output berstruktur menyusun jawapan. Keadaan ejen AI menggunakan medan untuk merekodkan kemajuan dan kerja yang belum selesai. Kawalan perlindungan ejen menambah batas kebenaran dan semakan bagi tindakan seterusnya. Kes penggunaan sedia ada menyediakan contoh permulaan yang didokumenkan dengan skop ujiannya sendiri.
Penggunaan aliran kerja
Pelan: Go dari USD8/bulan dengan bil tahunan (USD10 bulanan), Plus dari USD16 (USD20 bulanan), Pro 100 dari USD80 (USD100 bulanan), Pro 200 dari USD160 (USD200 bulanan) dan Pro 500 dari USD400 (USD500 bulanan), dengan 5,000 hingga 250,000 Flowi Tokens sebulan dan pilihan tambah nilai; 1 token bagi setiap pelaksanaan nod; penggunaan API dan model pihak ketiga tidak termasuk.