output. Brama uruchamia ją po tym, jak model nadrzędny odpowie,
i zanim jeden bajt dotrze do twojego klienta.
Ta strona obejmuje konkretnie etap wyjścia: jak odpowiedź jest sprawdzana, co
kosztuje blokada i jak block oraz mask zachowują się na odpowiedziach
streamingowych. Pełny silnik — każdy typ reguły, pole i trasę — znajdziesz w
Guardrails.
1. Po co zespoły LLM sięgają po guardrails wyjścia
Model to niezaufana część pętli. Może odbić sekret z promptu, wyciągnąć email klienta z kontekstu RAG lub zhalucynować twierdzenie, którego twoje źródła nigdy nie zawierały. Nic z tego nie jest widoczne na etapie wejścia, bo nic z tego nie istnieje, dopóki model nie odpowie. Guardrail na etapie wyjścia to sprawdzenie samej odpowiedzi. Reguła biegnie na etapie wyjścia, gdy jejstage to output (lub both).
Brama ewaluuje tekst odpowiedzi modelu wobec polityki, rejestruje dowolne
dopasowanie, a potem albo go przepuszcza, redaguje, albo odrzuca — dokładnie
te same akcje block / mask / flag, których używasz na wejściu, tylko
zastosowane do odpowiedzi.
Reguły wyjścia to zmartwienie nadrzędne, nie zamiennik. Większość polityk
sprawdza
input, by trzymać dane z dala od promptu, oraz output, by
wychwycić to, co model zwraca. Etap both wiąże jedną regułę z oboma końcami.2. Jeden konkretny przykład — zablokuj sekret w odpowiedzi
Utwórz guardrail w konsoli (/console/guardrails), dodaj jedną regułę i
powiąż ją z kluczem:
- Typ: Detektor Secrets / regex
- Etap:
output - Akcja:
block
/v1/*:
guardrail_blocked — klient nigdy nie widzi wyciekłej treści.
Jeśli jest czysta, odpowiedź przechodzi nietknięta.
3. Co kosztuje blokada wyjścia
W przeciwieństwie do blokady wejścia — która działa przed zmierzeniem żądania — blokada wyjścia dzieje się po tym, jak model nadrzędny już przebiegł. Brama obsługuje księgowość za ciebie:- Zablokowana odpowiedź nadal zwraca HTTP 400
guardrail_blockedz komunikatem nazywającym guardrail i regułę, która zadziałała. - Żadna kwota nie jest naliczana. Blokada wyjścia zwraca wstępnie pobraną kwotę po odrzuceniu odpowiedzi, więc nieudane wywołanie jest dla ciebie darmowe, mimo że model wyprodukował tokeny.
- Żądanie jest oznaczone jako skip-retry — ponowne uruchomienie tego samego promptu po prostu znów by zablokowało, więc brama nie spali ponowienia na innym kanale.
To kluczowa różnica wobec etapu wejścia. Blokada wejścia jest darmowa, bo
pomiar się nie zaczął; blokada wyjścia jest darmowa, bo wstępnie pobrana
kwota jest zwracana, gdy odpowiedź zostanie odrzucona. Tak czy inaczej
wywołujący nie płaci nic. Zobacz
błąd guardrail_blocked.
4. Streaming — block vs. mask
Block jest egzekwowany na odpowiedziach streamingowych; mask wyjścia jeszcze nie. Oto jak każdy się zachowuje:block — egzekwowany na streamingu I nie-streamingu
block — egzekwowany na streamingu I nie-streamingu
Na odpowiedzi nie-streamingowej odpowiedź jest sprawdzana w całości,
zanim wróci. Na odpowiedzi streamingowej skaner obserwuje delty, gdy
płyną; gdy reguła block zadziała w środku strumienia, przecina
strumień — skaner pieczętuje, emituje krótkie powiadomienie zastępcze w
miejsce reszty, a kanał SSE zamyka się, zanim jakakolwiek zablokowana
treść dotrze do klienta.Już wypchnięte bajty nie mogą być cofnięte, więc block jest best-effort
wobec tego, co już się przesłało strumieniem, ale niezawodnie
zatrzymuje wszystko po dopasowaniu. Po twardą gwarancję, że żaden
obraźliwy bajt nigdy nie zostanie wysłany, użyj żądania nie-streamingowego.
mask — tylko nie-streaming (maskowanie w locie w planach)
mask — tylko nie-streaming (maskowanie w locie w planach)
Na odpowiedzi nie-streamingowej reguła mask przepisuje odpowiedź —
np. email w odpowiedzi staje się
[EMAIL] — i oczyszczony tekst jest
tym, co otrzymuje twój klient.Na odpowiedzi streamingowej reguła mask wyjścia nie redaguje
dziś odpowiedzi. Skaner nadal ewaluuje każdą deltę i zadziała na decyzji
block, ale zamaskowany tekst, który oblicza, nie jest przesyłany —
surowe delty płyną nietknięte. Przepisywanie wyjścia w locie w paśmie
jest w planach. Dopóki nie wyjdzie, wysyłaj żądanie
nie-streamingowe, jeśli potrzebujesz, by mask wyjścia faktycznie
zredagował odpowiedź.Akcja na output | Nie-streaming | Streaming |
|---|---|---|
block | odrzuca odpowiedź | przecina strumień |
mask | redaguje odpowiedź | jeszcze nie redagowane (plany) |
flag | tylko rejestruje | tylko rejestruje |
5. Grounding — sprawdzenie wierności na etapie wyjścia
Jedna zaawansowana reguła jest z natury w kształcie wyjścia: kontekstowe ugruntowanie. Regułagrounding ocenia odpowiedź modelu wobec źródeł
pobranych na żądaniu (twojego kontekstu RAG) i działa, gdy wierność spada
poniżej progu (domyślnie 0.7). Sparuj ją z block, by odrzucać niewierne
odpowiedzi, lub flag, by zmierzyć dryf, zanim wyegzekwujesz. Nalicza się
jako sub-linia sędziego, jak każda reguła oparta na modelu. Pełne pola żyją w
Guardrails.
6. PII Shield na etapie wyjścia
Preset PII Shield to pojedyncza regułapii, akcja mask, etap both.
Na etapie wejścia jest w pełni żywy — przepisuje żądanie przed modelem, na
streamingu i nie-streamingu tak samo. Na etapie wyjścia maskuje odpowiedzi
nie-streamingowe, jak w §4; na odpowiedzi
streamingowej mask wyjścia nie redaguje dziś odpowiedzi (maskowanie wyjścia w
locie jest w planach).
Zatem na etapie wyjścia wołaj nie-streamingowo, jeśli potrzebujesz, by PII
Shield faktycznie zredagował odpowiedź. Zobacz
PII Shield i
formaty maskowania.
7. Widzenie, co zadziałało
Każda reguła wyjścia, która zadziała, rejestruje dopasowanie — swój typ reguły, akcję, etap (output) i łańcuch szczegółów — w strumieniu Matches
przestrzeni roboczej (GET /api/guardrail/match, otwarty dla każdego
Member).
Dopasowany podłańcuch jest rejestrowany tylko, gdy przełącznik Log raw
content guardrail jest włączony; jest domyślnie wyłączony (postawa
konserwatywna wobec prywatności), więc domyślnie widzisz, że reguła wyjścia
zadziałała, nie wrażliwy tekst, który wychwyciła. Fałszywie pozytywne oznacza
się przez POST /api/guardrail/match/:id/mark-fp (Admin) — traktuj je
jako sygnał do strojenia, nie powód do wyłączenia reguły.
8. Dokąd dalej
Etap wejścia
Lustrzane odbicie — sprawdź żądanie, zanim model je zobaczy. Maskowanie
wejścia jest w pełni żywe, w tym streaming.
Akcje
block, mask i flag w głąb — kiedy każda jest właściwym wyborem.
Pokrycie streamingu
Pełna macierz tego, co jest egzekwowane na streamingu vs. nie-streamingu.
Błąd guardrail_blocked
HTTP 400, zwrot kwoty i zachowanie skip-retry.
Powiązane pojęcia
Powiązane pojęcia
Zagrożenia, które to adresuje
Zagrożenia, które to adresuje
Pełna referencja silnika
Pełna referencja silnika
Guardrails — każdy typ reguły, pole i trasa, w
tym grounding i sędzia LLM.
