Eszközök/Biztonság és megfelelés

Guardrails AI: ellenőrizni, amit a modell visszaad

A Guardrails AI értékelése: 65 validátor, nyolc on-fail művelet, a bérelt inferencing megszűnése 2026 augusztusában, és mikor jobb a NeMo Guardrails.

Típus
Output validation
Ár
Apache-2.0

··10 perc olvasás

  • Guardrails
  • Output validation
  • LLM reliability
  • Python
Guardrails AI borítógrafika validátor-pipeline feliratokkal

A lényeg röviden

  • A hub 65 validátort szállít külön guardrails-ai csomagokban, és minden validátor nyolc hiba közül egyet ír elő, a noop-tól a refrain-ig.
  • Csak a noop és az exception működik streaminggel; a reask, fix, fix_reask, filter és refrain a teljes kimenetet igényli.
  • A bérelt remote inferencing 2026. augusztus 25-én megszűnt, a keretrendszer ezután teljesen helyben fut.
  • A reask második teljes modellhívás kísérletenként, a licenc Apache-2.0, de az ismétlési hurkon nő a számla.
  • Az OpenAI az omni-moderation-latest díjmentesként tünteti fel, ezért a Guardrails esete a szabályokra, a struktúrára és a naplóra épül, nem a moderációra.

A Guardrails AI egy nyílt forráskódú Python-keretrendszer, amely ellenőrzi, amit a modell visszaad, mielőtt az alkalmazás felhasználná. A validátorok egy 65 csomagos hubban élnek, mindegyik megadja, mi történik hiba esetén: kivétel, javítás, újrakérdezés, szűrés vagy semlegesítés. A projekt Apache-2.0 alatt áll, a 0.11.0-ás verzió 2026. augusztus 14-én jelent meg, Pythonból hívható, a README a JavaScriptet is támogatottnak jelöli.

Azt a réteget foglalja el, amely egy LLM-hívás és az azt feldolgozó kód között van, és itt dől el, hogy egy kiszivárgott systemprompt, egy személyes adatokat hordozó összefoglaló vagy egy hibás JSON eléri-e a felhasználót. Ugyanarra a helyre pályázik, mint a prompt injection védelmi minták és az NVIDIA NeMo Guardrails, ott van mellette az OpenAI moderációs végpontja, mint bérelt gyorsmegoldás, és ott a kézzel írt ellenőrzések, amelyeket a legtöbb csapat már megírt. Itt képviselt álláspont: a legteljesebb validátorkönyvtár a területen, és a hibakezelési modellje jobban van megtervezve, mint az üzleti modellje, ahol a ingyenes rész a szoftver, a drága rész az ismétlések.

Mi valójában

A munkaegység a Guard: validátorok rendezett listája, amely vagy a kimenő üzenetekre fut, on="messages" módon, vagy a válaszra. A validátorok a hubból jönnek és saját PyPI-csomagjaikként települnek, a telepítés így csak a ténylegesen használt ellenőrzéseket viszi. Vannak szabályalapúak, mint a regex, a hossz és a JSON olvashatóság, vannak kis helyi modellel futók, és vannak, amelyek második LLM-et hívnak az első minősítésére.

  • Hub. 65 validátor kockázat szerint csoportosítva: márka, formázás, illem, jailbreaking, adatszivárgás, kódtámadás és tényhűség.
  • Csomagolás. Minden validátor külön csomag, amely a guardrails configure után települ, például a guardrails-ai-regex-match vagy a guardrails-ai-detect-pii.
  • Két irány. A guardok a hívás előtti üzeneteken és a hívás utáni modellkimeneten futnak, és ugyanaz a guard objektum mindkettőt elvégzi.
  • Strukturált generálás. A Guard.for_pydantic a modellt egy Pydantic-osztály ellen vezérli és a feldolgozott objektumot ellenőrzi, function callinggel ott, ahol a modell tudja, promptvázlatban ott, ahol nem.
  • Licenc és verzió. Apache-2.0, Python 3.10-től 3.13-ig, a 0.11.0-ás verzió 2026. augusztus 14-én, körülbelül 7500 csillaggal a GitHubon.
  • Szerver mód. A guardrails start egy Flask-szolgáltatást indít, amely minden guardot OpenAI-kompatibilis basis URL mögött szolgál ki, a meglévő kliens így csak egy karakterláncot változtat.

Hogy működik

Az ellenőrzés alapértelmezésben szinkron: bejön a nyers kimenet, minden validátor sorban fut, minden hiba a guard.history.last.failed_validations listára kerül, és az adott validátor on-fail művelete dönti el, mi hagyja el a guardot. A művelet validátoronként, nem guardonként állítható, így egy guard személyes adatnál kivételt dobhat, formázási hibánál csak naplózhat. A reask újraépíti a promptot a meghiúsult kritériummal és újrahívja a modellt, a num_reasks határáig.

Guardrails AI: egy védett modellhívásAz üzenetek input guardon futnak keresztül, a modell válaszol, a válasz output guardon, minden validátorhiba naplózásra kerül és nyolc on-fail művelet egyikéhez kerül, amelyek közül csak a noop és az exception működik streaminggel.Guardrails AI: egy védett modellhívásguardrailsai.com docsEGY VÉDETT HÍVÁSÜzenetekfelhasználóInput guardon=messagesModellbármelyik szolgáltatóOutput guard65 validátorVisszaadellenőrzöttHA EGY VALIDÁTOR HIBÁZIKon-fail műveletkivétel, javítás, reaskguard.historyfailed_validations
Az on-fail validátoronként, nem guardonként áll, így egy guard személyes adatnál kivételt dobhat, formázási hibánál csak naplózhat.

Mivel a hibák attól függetlenül naplózódnak, hogy megállítják-e a folyamatot, a noop-ra állított guard is ad auditnyomot, a noop pedig amúgy az alapértelmezés. Szolgáltató felé irányuló hívásnál a keretrendszer a kapcsolati hibákat, a rátalimiteket és az időtúllépéseket exponenciális backoffal ismétli, legfeljebb hatvan másodperc várakozással, így a szolgáltatói kimaradás a guardon belüli késésként jelentkezik, nem azonnali kivételként.

Ha egy validátor hibázik

Nyolc művelet áll rendelkezésre, és ezek ennek az eszköznek a valódi felülete, inkább, mint a validátorlista. A dokumentációs táblázat jelöli, melyikük működik streaming kimenet ellen, és ez a oszlop dönt több architektúra-kérdést, mint a funkciójegyzék.

MűveletMit csinálStreamingHol illik be
noopNaplózza a hibát és változatlanul adja vissza a kimenetet; ez az alapértelmezésIgenMérni, milyen gyakran buknak el az ellenőrzések
exceptionKivételt dob, hogy a hívó kezelje a hibátIgenBemeneti ellenőrzés és szigorú pipeline-ok
reaskÚjraépíti a promptot a meghiúsult kritériummal és újrahívja a modelltNemPuha hibák, amelyet a második kör javít
fixAlkalmazza a validátor javítási értékét, például anonimizált személyes adatokatNemAdatszűrés és formázási javítások
fix_reaskElőbb javít, majd újrakérdez, ha a javított érték is elbukikNemJavítások, amelyek hiányosak maradhatnak
filterEldobja a hibás mezőt és a strukturált objektum többi részét adja visszaNemStrukturált adatok opcionális mezőkkel
refrainSemmit sem ad vissza, ha a kimenet nem szállítható kiNemTartalom, amely nem érheti el a felhasználót
customSaját függvényt futtat az érték és az eredmény felettNemSzabályok, amelyek már a kódban vannak

A vitatható rész: a reask a reklámozott funkció és az, amit gondosan kell költségezni, mert minden reask egy második teljes generálás ugyanazon az áron, mint az első, és a hibaráta szorzódik, nem a forgalom. A dokumentáció maga is lebeszéli a bonyolult esetekről, és kivételalapú megközelítést ajánl, amint az esetek kinőnek, mert egy dobott kivétel lehetővé teszi, hogy az elágazás a hibázott validátor szerint történjen, ahelyett, hogy a reask hallgatva visszaadott eredményét kellene értelmezni.

Első lépések

A telepítés a magcsomagból és a guardhoz szükséges validátorokból áll, utána a guardrails configure állítja be a hitelesítést. A guard kódban készül, nem konfigurációs fájlban, így a hibaütem a hozzá tartozó ellenőrzés mellett marad.

# pip install guardrails-ai guardrails-ai-detect-pii
from guardrails import Guard, OnFailAction
from guardrails_ai.detect_pii import DetectPII

guard = Guard().use(
    DetectPII(pii_entities="pii", on_fail=OnFailAction.FIX)
)

result = guard.validate(
    "Hello, my name is John Doe and my email is john.doe@example.com"
)

print(result.validation_passed)   # True once the scrub lands
print(result.validated_output)    # <PERSON> and <EMAIL_ADDRESS>

Pythonon kívüli hívóknál a guardrails start minden guardot a localhost:8000/guards/<name>/openai/v1/ alakú basis URL-en szolgál ki, a meglévő OpenAI-kl így új SDK nélkül rámutat. A README említi a JavaScriptet is támogatottként, a referenciamegvalósítás továbbra is a Python-csomag.

Költség

A szoftvér szigorú értelemben ingyenes: az Apache-2.0 lefedi a keretrendszert és minden hub-validátort, a telepítés és az ellenőrzés között nincs mérhető díj. A számla máshol keletkezik, ott, amit az út során a validátorok hívnak.

  • Licenc. Apache-2.0 a keretrendszerre és a validátorokra; a könyvtárnak nincs fizetős szintje.
  • LLM-alapú ellenőrzések. Olyan validátorok, mint az llm_critic, a provenance_llm és a qa_relevance_llm_eval, vázonként és válaszonként egy modellkéréssel bővülnek.
  • Reaskok. Minden reask teljes újragenerálás, a num_reasks pedig megadja, hányszor generálódhat újra egy válasz, mielőtt a guard feladja.
  • Helyi ML. A detect_pii-hoz hasonló validátorok a Presidiót a folyamatban futtatják, az áruk így memória és késés, nem token.
  • Szerver mód. Az opcionális Flask-szolgáltatás olyan infrastruktúra, amelyet a deployment maga üzemeltet, skáláz és véd.

A mérvadó összehasonlítás a bérelt moderációval szemben történik. Az OpenAI az omni-moderation-latest díjmentesként tünteti fel az árlapon, a NeMo Guardrails szintén Apache-2.0 alatt áll, egyik versenytárs sem kér licencdíjat ugyanazért a feladért. Ami a Guardrails elad, az a lefedettség: egy moderációs végpont egy kérdésre válaszol a tartalmi politikáról, a hub ugyanabban a körben kényszerítheti ki a sémát, a hosszt, a versenytársak említését, a prompt-szivárgást és a származtatást is.

Hol akad el

A gyengék üzemeltetési jellegűek, és az első hét után mutatkoznak. A hub egy regexet, egy BERT-modellt és egy LLM-bírót rejt egyszerű absztrakt mögé, a késés így nagyságrendekkel térhet el validátoronként, a dokumentáció pedig nem ad validátoronkénti teljesítménykeretet. A hub nyelvi szűrője csak angolt listáz. A streaming-támogatás a noop és az exception után véget ér, ami kizárja az eszközt tokenenkénti kimenetből, hacsak a teljes választ nem pufferezik. A bérelt inferencing 2026 augusztusi leállítása pedig törő változás volt egy olyan szolgáltatáson, amelyet több deploy felépített.

JellemzőGuardrails AINVIDIA NeMo GuardrailsOpenAI Moderation API
FormaPython-könyvtár plusz 65 hub-validátorYAML-szabályok és Colang-párbeszédekEgy bérelt végpont
LicencApache-2.0, 2026 augusztusa után teljesen helybenApache-2.0, opcionális anonim telemetriaZárt, az OpenAI üzemelteti
KonfigurációPython-kód, on_fail validátoronkéntFájlok egy rails könyvtárbanEgyetlen moderációs kérés
Költség kérésenkéntIngyenes szoftver; az LLM-validátorok és reaskok külön számolódnakIngyenes szoftver; a railok hívhatnak LLM-etomni-moderation-latest díjmentesként feltüntetve

A harmadik alternatíva az, amit a legtöbb csapat ténylegesen kiad: kézzel írt ellenőrzések a hívás körül, egy if a JSON feldolgozásához és egy regex mindenre, ami számlaszámnak látszik. Ez olcsóbb, mint a tábla mindhárom sora, és konstruktívan hallgat, pont ez a hibatípus az oka ennek a kategóriának. A tisztességes összevetés nem Guardrails kontra NeMo, hanem Guardrails kontra az, amit egy csapat délután megír, majd elfelejt bővíteni.

Ítélet

Akkor érdemes bevezetni, ha egy rossz válasz pénzbe, adatba vagy hitelességbe kerül, és ha a napló arról, mi bukott el, ugyanolyan fontos, mint maga a hiba. Ez a legteljesebb validátorkatalógus szabad licenc alatt, és a validátoronkénti hibaütem jobb tervezés, mint egy globális kapcsoló. Az ára minden a folyamatban ellenőrző kódé: üzemelteti, hangolja, és kifizeti azokat a hívásokat, amiket a validátorok indítanak.

  1. Használni, ha a válasz elhagyja a szolgáltatást: személyes adat egy támogatási összefoglalóban, amit a felhasználó lefuttat, strukturált kimenet, amit egy másik szolgáltatás elemz.
  2. Használni, ha auditnyom kell, mert minden hiba a guard.history-be kerül, a kézzel írt ellenőrzés pedig általában alig rögzít valamit.
  3. A NeMo Guardrails-t választani, ha beszélgetési politikáról van szó, például mikor kell elutasítani vagy témát váltani, arra valók a Colang rail-ek.
  4. A díjmentes moderációs végpontot választani, ha az egyetlen kockázat a sértő tartalom, és nem ér meg egy új dependenciát.
  5. Nem várni streaming-javítást: csak a noop és az exception reagál részleges kimenetre, így pufferezni kell, vagy el kell hagyni a javító eszközöket.
A dokumentáció tanácsa, ha egy eset kinő az egyszerű útból: as usecases get more complex, we recommend switching to an exception-based approach. Egy olyan keretrendszer, amely azt tanácsolja, hagyd el a címfunkciót, amint nehéz lesz, őszinte arról, hogy ez a funkció hová tartozik.

Források

  1. Guardrails AI a GitHubon: README, hírek és GYIK
  2. guardrails-ai 0.11.0 a PyPI-n
  3. Guardrails Hub: 65 validátor
  4. Guardrails-dokumentáció: hibakezelés és on-fail műveletek
  5. Guardrails-dokumentáció: on-fail műveletek használata
  6. Migrációs issue 1560: kilépés a bérelt inferencingből
  7. NVIDIA NeMo Guardrails a GitHubon
  8. NVIDIA NeMo Guardrails-dokumentáció
  9. OpenAI API árak, beleértve a moderációt

Gyakori kérdések

Ingyenes a Guardrails AI?

A keretrendszer és a validátorok Apache-2.0 alatt állnak, licencdíj nélkül telepíthetők a PyPI-ről. A költség ott jelenik meg, amit a validátorok hívnak: egy LLM-alapú ellenőrzés vázonként egy modellkérést ad hozzá, a reask pedig minden kísérletnél teljesen újragenerálja a választ.

Mi történik, ha egy validátor hibázik?

A hiba bekerül a guard.history-be, majd lefut a validátor on-fail művelete: a noop naplóz és továbbadja az értéket, az exception kivételt dob, a fix javít, például személyes adatokat anonimizál, a reask újrahívja a modellt, a filter eldobja a hibás mezőt, a refrain semmit sem ad vissza, és egy egyedi függvény megkapja az értéket és az eredményt.

Működik streaming kimenettel?

Csak a noop és az exception szerepel streaming-kompatibilisként a dokumentációban. A reask, fix, fix_reask, filter és refrain mind a teljes kimenetet igényli, a tokenenkénti folyamot tehát pufferezni kell.

Guardrails AI vagy NVIDIA NeMo Guardrails?

A Guardrails egy Python-könyvtár, amely validátorokat fűz egy amúgy is meglévő hívás köré; a NeMo egy futtatókörnyezet, amely YAML-szabályokkal és Colang-párbeszédekkel viszi a beszélgetési folyamatot. Az első illeszkedik a meglévő kódba, a második részben lecseréli azt.

Pont erre van szükséged?

Írj a projektedről vagy a pozícióról – szívesen hallok felőled.