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șiGuard().use_many(...). În versiunea actuală validatoarele vin din pacheteguardrails_ai.*, iaruse()primește mai multe validatoare. - Folosești
max_reasks. Parametrul se numeștenum_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ă.
Întrebări & Exemple practice:
Guardrails AI: validarea ieșirilor LLM și acțiuni la eșecAi 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.