AI Prompt Engineering · Pelajaran

Validator Skema dan Aturan

Menegakkan batasan.

Pelajaran 3 dari 413 langkah

Validator Skema dan Aturan adalah pelajaran AI Prompt Engineering gratis di CoddyKit. Ini adalah pelajaran 3 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.

Pemeriksa Menegakkan Kontrak

Pemeriksa adalah pagar pengaman yang memeriksa keluaran berdasarkan spesifikasi eksplisit: JSON Schema, sekumpulan aturan bisnis, atau keduanya. Tidak seperti pengklasifikasi moderasi, pemeriksa bersifat deterministik dan sepenuhnya dapat diaudit; masukan yang sama selalu menghasilkan keputusan yang sama.

Lapisan Validasi Skema

Pemeriksa pertama memastikan keluaran sesuai dengan kontrak struktural. Kumpulkan semua kesalahan, bukan hanya yang pertama, agar umpan balik perbaikan lengkap.

import jsonschema
def schema_errors(obj, schema):
    v = jsonschema.Draft202012Validator(schema)
    return [f"{list(e.path) or 'root'}: {e.message}"
            for e in v.iter_errors(obj)]

Melampaui Skema: Aturan Bisnis

Skema tidak dapat menyatakan semuanya. Skema dapat menyatakan bahwa discount adalah angka, tetapi tidak bahwa nilainya tidak boleh melebihi subtotal. Pemeriksa aturan menyandikan invarian lintas kolom dan domain ini dalam kode.

RULES = [
  ('discount_le_subtotal', lambda o: o['discount'] <= o['subtotal']),
  ('total_consistent', lambda o: o['total'] == o['subtotal'] - o['discount']),
  ('currency_supported', lambda o: o['currency'] in SUPPORTED)
]
def rule_errors(o):
    return [name for name, fn in RULES if not fn(o)]

Model Bertipe sebagai Pemeriksa

Pustaka model bertipe (misalnya, Pydantic) berfungsi ganda sebagai pembuat skema dan pemeriksa, dengan pemeriksa khusus untuk aturan. Kegagalan penguraian adalah keputusannya.

from pydantic import BaseModel, field_validator

class Order(BaseModel):
    subtotal: float
    discount: float
    total: float

    @field_validator('discount')
    @classmethod
    def discount_ok(cls, v, info):
        if v < 0:
            raise ValueError('discount must be non-negative')
        return v

Pemeriksaan Grounding dan Sitasi

Untuk keluaran RAG, validasikan bahwa klaim didukung oleh konteks yang diberikan. Wajibkan model mencantumkan id sumber, lalu verifikasi bahwa setiap id yang dicantumkan memang ada dan rentang kutipan benar-benar muncul dalam sumber. Tolak jawaban yang mencantumkan sumber yang tidak ada atau dibuat-buat.

def citations_valid(answer, sources):
    for cite in answer['citations']:
        if cite['source_id'] not in sources:
            return False
        if cite['quote'] not in sources[cite['source_id']]:
            return False
    return True

Pemeriksaan Referensial dan Lintas Sistem

Beberapa aturan memerlukan pencarian eksternal: apakah id pesanan yang dirujuk ada, apakah produk tersedia, apakah tanggal berada dalam rentang yang valid? Pemeriksa ini mengakses sistem Anda. Pastikan prosesnya cepat (gunakan tembolok dan pemrosesan batch) karena pemeriksa berada di jalur respons.

def order_exists(o):
    return db.exists('SELECT 1 FROM orders WHERE id = %s', o['order_id'])

Keputusan Berlabel Tingkat Keparahan

Tidak semua pelanggaran memiliki tingkat yang sama. Beri label tingkat keparahan pada setiap aturan agar alur dapat memilih tindakan yang tepat: blokir tegas pelanggaran kritis, buat ulang keluaran untuk masalah kualitas, dan lanjutkan dengan peringatan untuk masalah kecil.

RULE_SEVERITY = {
  'discount_le_subtotal': 'critical',
  'total_consistent': 'critical',
  'tone_professional': 'warning'
}

Susun Pemeriksa secara Berurutan

Jalankan pemeriksa dari yang paling murah dan hentikan segera saat terjadi kegagalan tegas: skema, lalu aturan dalam memori, kemudian pencarian eksternal, dan terakhir pemeriksaan oleh penilai berbasis model. Ini meminimalkan biaya pada jalur penolakan yang umum.

def validate_all(obj):
    errs = schema_errors(obj, SCHEMA)
    if errs: return Reject(errs, 'critical')
    errs = rule_errors(obj)
    if errs: return Reject(errs, max_severity(errs))
    if not order_exists(obj): return Reject(['order_id'], 'critical')
    return Accept()

Pemeriksa Menghasilkan Umpan Balik Perbaikan

Nilai pemeriksa meningkat berlipat ketika pesannya menjadi masukan bagi putaran perbaikan. Hasilkan kesalahan yang dapat ditindaklanjuti mesin, lengkap dengan jalur kolom, aturan yang gagal, dan nilai yang bermasalah agar model dapat memperbaikinya secara tepat dalam satu putaran.

{'errors': [
  {'path': 'discount', 'rule': 'discount_le_subtotal',
   'got': 120, 'limit': 100}
]}

Uji Pemeriksa Itu Sendiri

Pemeriksa yang bermasalah dapat secara diam-diam meloloskan keluaran buruk atau memblokir keluaran baik. Uji setiap aturan dengan kasus uji positif dan negatif, lalu tambahkan pengujian berbasis properti untuk invarian numerik. Rangkaian pengujian pemeriksa adalah kode yang sangat penting bagi produksi, bukan skrip.

def test_discount_rule():
    assert rule_errors({'discount':10,'subtotal':100,'total':90}) == []
    assert 'discount_le_subtotal' in rule_errors(
        {'discount':120,'subtotal':100,'total':-20})

Pemeriksa vs Penguraian Terkendala

Penguraian terkendala mencegah kesalahan struktural saat pembuatan, tetapi tidak dapat menegakkan semantik (karena tidak mengetahui aturan bisnis Anda). Pemeriksa menangkap pelanggaran semantik setelahnya. Gunakan keduanya: penguraian untuk bentuk, pemeriksa untuk makna, dan putaran perbaikan untuk menyelaraskannya.

Pemeriksaan Singkat

JSON Schema menandai discount dan subtotal sebagai angka. Model mengembalikan discount 120 dengan subtotal 100. Lapisan mana yang seharusnya menangkap hal ini?

Rangkuman

Pemeriksa skema dan aturan:

  • Validasi skema mencakup struktur; pemeriksa aturan mencakup semantik.
  • Model bertipe membuat skema dan melakukan validasi di satu tempat.
  • Tambahkan pemeriksaan grounding, sitasi, dan referensial untuk RAG serta alur data.
  • Beri label tingkat keparahan, susun dari yang paling murah, dan berikan kesalahan perbaikan yang tepat.
  • Uji pemeriksa sebagai kode yang sangat penting bagi produksi.

Berikutnya: validasi kritik mandiri, saat model memeriksa keluarannya sendiri.

Gratis untuk memulai

Belajar AI Prompt Engineering dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
53
Pelajaran
199

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Validator Skema dan Aturan” gratis?

Ya — teks lengkap “Validator Skema dan Aturan” 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 “Validator Skema dan Aturan”?

Menegakkan batasan. 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 3 dari 4.

Berapa lama pelajaran “Validator Skema dan Aturan” 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

  1. Apa Itu Guardrail
  2. Pemfilteran Masukan dan Keluaran
  3. Validator Skema dan Aturan
  4. Validasi Kritik Diri
← Kembali ke AI Prompt Engineering