Guardrails AI: validarea ieșirilor LLM și acțiuni la eșec în LLMOps, Evaluare & Securitate AI

Securitate, Guardrails & Red Teaming Nivel: intermediar (guardrails-ai 0.11) Q&A AI / Distribuie cod

Biblioteca Guardrails AI combină validatoare (din Guardrails Hub sau proprii) într-un Guard care verifică intrările și ieșirile unui LLM și decide ce se întâmplă la eșec.

Configurare & comandă
pip install guardrails-ai guardrails-ai-competitor-check guardrails-ai-toxic-language

from guardrails import Guard, OnFailAction
from guardrails_ai.competitor_check import CompetitorCheck
from guardrails_ai.toxic_language import ToxicLanguage

guard = Guard().use(
    CompetitorCheck(["FirmaX", "FirmaY"], on_fail=OnFailAction.EXCEPTION),
    ToxicLanguage(threshold=0.5, validation_method="sentence", on_fail=OnFailAction.EXCEPTION),
)
guard.validate("Text de verificat")

Guardrails AI (pip install guardrails-ai) este o bibliotecă Python open-source care pune verificări programatice în jurul unui LLM. Un Guard conține unul sau mai multe validatoare, aplicate pe ieșire (implicit) sau pe mesajele de intrare.

Validatoarele gata făcute sunt în Guardrails Hub (de exemplu menționarea concurenților, limbaj toxic, expresii regulate). În README-ul actual ele se instalează ca pachete pip (guardrails-ai-regex-match, guardrails-ai-toxic-language) și se importă din guardrails_ai.<nume>. Mai multe validatoare se dau toate odată lui Guard().use(...); metoda use_many nu mai există.

Parametrul on_fail alege reacția la eșec: reask (cere modelului o corectare), fix (corecție statică), filter (elimină valorile invalide), refrain (întoarce o valoare goală), noop, exception, fix_reask și custom. Pentru ieșiri structurate, Guard.for_pydantic(output_class=...) cere modelului un JSON conform unei clase Pydantic.

Concepte cheie și caracteristici

Concept / Parametru Descriere practică
Guard().use(*validatoare, on="output") Adaugă validatoare; on poate fi output, messages sau o cale JSON care începe cu $..
guard.validate(text) Validează un text deja generat.
guard(model=..., messages=[...]) Apelează modelul (prin LiteLLM, când dai model) și validează răspunsul.
num_reasks Numărul maxim de recereri către model când validarea eșuează (implicit 1).
OnFailAction REASK, FIX, FILTER, REFRAIN, NOOP, EXCEPTION, FIX_REASK, CUSTOM.
Guard.for_pydantic(output_class=Model) Guard pentru ieșiri structurate, după o clasă Pydantic.
guardrails start Pornește Guardrails ca serviciu separat, cu API compatibil OpenAI.

Exemple practice și scenarii reale

Exemplul 1: Validare cu expresie regulată

from guardrails import Guard, OnFailAction
from guardrails_ai.regex_match import RegexMatch

guard = Guard().use(
    RegexMatch, regex=r"^07\d{8}$", on_fail=OnFailAction.EXCEPTION
)
guard.validate("0722123456")   # trece

Exemplul 2: Apel la model cu validare și o recerere

rezultat = guard(
    model="gpt-6-luna",
    messages=[{"role": "user", "content": "Ce părere ai despre FirmaX?"}],
    num_reasks=1,
)
print(rezultat.validation_passed, rezultat.validated_output)

Exemplul 3: Ieșire structurată cu Pydantic

from pydantic import BaseModel, Field
from guardrails import Guard

class Produs(BaseModel):
    nume: str = Field(description="Numele produsului")
    pret: float = Field(description="Prețul în lei")

guard = Guard.for_pydantic(output_class=Produs)

Greșeli frecvente și capcane

  • Copiezi exemple vechi cu from guardrails.hub import ToxicLanguage și Guard().use_many(...). În versiunea actuală validatoarele vin din pachete guardrails_ai.*, iar use() primește mai multe validatoare.
  • Folosești max_reasks. Parametrul se numește num_reasks; fiecare recerere este un apel în plus la model, cu cost și latență.
  • Pui on_fail="reask" pe validatoare care pot eșua mereu pentru o anumită intrare. Combină cu un număr mic de recereri și cu un răspuns de rezervă.

Noțiuni și module înrudite

Învață AI • Comunitate & Q&A

Întrebări & Exemple practice: Guardrails AI: validarea ieșirilor LLM și acțiuni la eșec

Ai o întrebare despre Guardrails AI: validarea ieșirilor LLM și acțiuni la eșec sau ai descoperit un truc, prompt sau fragment de cod util? Distribuie-l cu ceilalți membri ai comunității!

🤖

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau resurse pentru această pagină. Dacă ai testat un prompt sau ai un snippet util, adaugă-l mai jos pentru comunitate.

Comunitate AI Adaugă o întrebare sau distribuie un cod / prompt

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.