Şema ve Kural Doğrulayıcıları
Kısıtları zorunlu kılma.
Şema ve Kural Doğrulayıcıları, CoddyKit'te ücretsiz bir AI Prompt Engineering dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, AI Prompt Engineering öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AI Prompt Engineering kursu toplamda 4 dersten oluşur.
Doğrulayıcılar Sözleşmeyi Uygular
Bir doğrulayıcı, çıktıyı açık bir belirtime (JSON Şeması, bir dizi iş kuralı veya her ikisi) göre denetleyen bir güvenlik önlemidir. Bir denetleme sınıflandırıcısının aksine doğrulayıcı, belirlenimci ve tamamen denetlenebilirdir; aynı girdi her zaman aynı kararı üretir.
Şema Doğrulama Katmanı
İlk doğrulayıcı, çıktının yapısal sözleşmeye uyduğunu doğrular. Onarım geri bildiriminin eksiksiz olması için yalnızca ilk hatayı değil, tüm hataları toplayın.
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)]Şemanın Ötesinde: İş Kuralları
Şemalar her şeyi ifade edemez. Bir şema discount alanının bir sayı olduğunu belirtebilir, ancak bu alanın ara toplamı aşmaması gerektiğini belirtemez. Kural doğrulayıcıları, bu alanlar arası ve alana özgü değişmezleri kodla ifade eder.
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)]Türlenmiş Modeller Doğrulayıcı Olarak
Türlenmiş bir model kütüphanesi (ör. Pydantic), kurallar için özel doğrulayıcılarla birlikte hem şema oluşturucu hem de doğrulayıcı görevi görür. Ayrıştırmanın başarısız olması kararın kendisidir.
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 vTemellendirme ve Atıf Doğrulayıcıları
RAG çıktıları için iddiaların sağlanan bağlam tarafından desteklendiğini doğrulayın. Modelin kaynak kimliklerine atıfta bulunmasını zorunlu kılın; ardından atıf yapılan her kimliğin var olduğunu ve alıntılanan bölümlerin gerçekten kaynakta yer aldığını doğrulayın. Eksik veya uydurma kaynaklara atıfta bulunan yanıtları reddedin.
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 TrueReferans ve Sistemler Arası Kontroller
Bazı kurallar harici sorgular gerektirir: başvurulan sipariş kimliği mevcut mu, ürün stokta mı, tarih geçerli bir aralıkta mı? Bu doğrulayıcılar sistemlerinize sorgu gönderir. Yanıt yolunda yer aldıkları için onları hızlı tutun (önbelleğe alma, toplu işleme).
def order_exists(o):
return db.exists('SELECT 1 FROM orders WHERE id = %s', o['order_id'])Önem Derecesi Etiketli Kararlar
İhlallerin tümü eşit değildir. İşlem hattının doğru eylemi seçebilmesi için her kuralı bir önem derecesiyle etiketleyin: kritik ihlalleri kesin olarak engelleyin, kalite sorunlarında yeniden üretin ve küçük ihlalleri uyarıyla geçirin.
RULE_SEVERITY = {
'discount_le_subtotal': 'critical',
'total_consistent': 'critical',
'tone_professional': 'warning'
}Doğrulayıcıları Sırayla Birleştirin
Doğrulayıcıları en ucuzdan başlayarak çalıştırın ve kesin başarısızlıklarda işlemi erken sonlandırın: önce şema, ardından bellek içi kurallar, sonra harici sorgular ve son olarak model hakemi kontrolleri. Bu, yaygın reddetme yolundaki maliyeti en aza indirir.
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()Doğrulayıcılar Onarım Geri Bildirimini Yönlendirir
Bir doğrulayıcının değeri, iletileri onarım döngüsünü beslediğinde katlanır. Modelin tek turda doğru bir şekilde düzeltebilmesi için alan yolunu, ihlal edilen kuralı ve sorunlu değeri içeren, makine tarafından işlenebilir hatalar üretin.
{'errors': [
{'path': 'discount', 'rule': 'discount_le_subtotal',
'got': 120, 'limit': 100}
]}Doğrulayıcıların Kendisini Sınayın
Hatalı bir doğrulayıcı kötü çıktıyı sessizce geçirir veya iyi çıktıyı engeller. Her kuralı olumlu ve olumsuz örneklerle birim sınamasından geçirin, ayrıca sayısal değişmezler için özellik tabanlı sınamalar ekleyin. Doğrulayıcı paketi bir betik değil, üretim için kritik koddur.
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})Doğrulayıcılar ve Kısıtlı Kod Çözümleme
Kısıtlı kod çözümleme, üretim sırasında yapısal hataları önler ancak anlamsal kuralları uygulayamaz (iş kurallarınızı bilmez). Doğrulayıcılar, anlamsal ihlalleri sonradan yakalar. İkisini birlikte kullanın: biçim için kod çözümleme, anlam için doğrulayıcılar, uzlaştırma için onarım döngüsü.
Hızlı Kontrol
Bir JSON Şeması, indirim ve ara toplam alanlarını sayı olarak işaretliyor. Model, ara toplam 100 iken indirim olarak 120 döndürüyor. Bunu hangi katman yakalamalıdır?
Özet
Şema ve kural doğrulayıcıları:
- Şema doğrulama yapıyı, kural doğrulayıcıları anlamı kapsar.
- Türlenmiş modeller şemaları oluşturur ve tek bir yerde doğrulama yapar.
- RAG ve veri akışları için temellendirme, atıf ve referans kontrolleri ekleyin.
- Önem derecesini etiketleyin, en ucuzdan başlayarak birleştirin ve onarım için kesin hatalar iletin.
- Doğrulayıcıları üretim için kritik kod olarak sınayın.
Sırada: modelin kendi çıktısını denetlediği öz eleştiri doğrulaması.
Yapay zeka eğitmeniyle AI Prompt Engineering öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 53
- Dersler
- 199
Sıkça Sorulan Sorular
“Şema ve Kural Doğrulayıcıları” dersi ücretsiz mi?
Evet — “Şema ve Kural Doğrulayıcıları” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve AI Prompt Engineering kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AI Prompt Engineering kursu toplamda 4 dersten oluşur.
“Şema ve Kural Doğrulayıcıları” dersinde ne öğreneceğim?
Kısıtları zorunlu kılma. AI Prompt Engineering ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
AI Prompt Engineering öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te AI Prompt Engineering, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Şema ve Kural Doğrulayıcıları” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu AI Prompt Engineering dersinde kod yazıp çalıştırabilir miyim?
Evet. Her AI Prompt Engineering dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Koruma Kuralları Nedir
- Girdi ve Çıktı Filtreleme
- Şema ve Kural Doğrulayıcıları
- Öz Eleştiriyle Doğrulama