1. Pytanie o pokrycie guardrail dla streamingu
Reguła guardrail niesie etap (input, output lub both) i akcję —
jedną z pięciu: block, mask, flag, annotate lub spotlight. Etap
decyduje, kiedy brama go uruchamia; akcja decyduje, co robi. Jedynym
miejscem, gdzie streaming zmienia kształt odpowiedzi, jest etap wyjścia —
bo to jedyny etap, gdzie brama przesyła bajty do twojego klienta, gdy
przybywają, bez szansy najpierw wstrzymać cały payload.
Więc macierz ma dwie komórki, gdzie streaming ma znaczenie, i zachowują się
różnie: block wyjścia jest w pełni egzekwowany na strumieniu (skaner go
przecina), ale mask wyjścia jest egzekwowany wyłącznie na odpowiedziach
nie-streamingowych. Na odpowiedzi streamingowej skaner nadal wykrywa
dopasowanie i może działać na decyzji block, ale nie przepisuje
zamaskowanego tekstu do strumienia dziś — maskowanie wyjścia streamingowego w
paśmie jest w planach.
Wejście nigdy nie jest problemem. Reguły na etapie wejścia biegną przed
modelem — brama sprawdza (a dla
mask przepisuje) twoje żądanie, potem
przesyła oczyszczoną wersję w górę. Czy odpowiedź się strumieniuje, jest bez
znaczenia; żądanie to kompletny payload, który brama trzyma w całości.
Skanowanie wejścia jest w pełni żywe, włącznie z maskowaniem, na każdym
żądaniu.2. Macierz pokrycia
Czytaj to z góry na dół. Każda komórka block jest żywa, łącznie ze streamingiem — ale wyjście + mask + streaming to jedna komórka, która nie jest jeszcze egzekwowana w strumieniu: reguła mask redaguje odpowiedź nie-streamingową, a na odpowiedzi streamingowej wykrywa dopasowanie bez przepisywania delty (maskowanie wyjścia w locie jest w planach).| Etap · akcja | Nie-streaming | Streaming |
|---|---|---|
input · block | odrzuca żądanie | odrzuca żądanie |
input · mask | przepisuje żądanie | przepisuje żądanie |
output · block | odrzuca odpowiedź | przecina strumień |
output · mask | redaguje odpowiedź | wykrywa dopasowanie; nie redaguje w locie (plany) |
| dowolny · flag | tylko rejestruje | tylko rejestruje |
annotate i spotlight dołączają notatkę (lub owijają dopasowany tekst) bez
odrzucania ruchu i są w praktyce akcjami na etapie wejścia, więc nie zmieniają
komórek wyjścia/streamingu powyżej; rejestrują dopasowanie jak każda inna
reguła.
input — w pełni żywe, w obie strony (block + mask)
input — w pełni żywe, w obie strony (block + mask)
Reguły na etapie wejścia sprawdzają żądanie, zanim model nadrzędny się
uruchomi.
block zwiera wywołanie (HTTP 400 guardrail_blocked, przed
pomiarem, więc nie kosztuje kwoty). mask przepisuje dopasowane pola w
prompcie w miejscu — oczyszczony tekst jest tym, co idzie w górę, a
model nigdy nie widzi oryginału. Nic z tego nie zależy od tego, czy
odpowiedź się strumieniuje.output · block — egzekwowane streaming I nie-streaming
output · block — egzekwowane streaming I nie-streaming
Na odpowiedzi nie-streamingowej odpowiedź jest sprawdzana w całości, zanim
wróci — block pojawia się jako HTTP 400
guardrail_blocked. Na
odpowiedzi streamingowej skaner strumienia obserwuje delty, gdy płyną;
gdy reguła block zadziała, przecina strumień — pieczętuje skaner,
emituje krótkie powiadomienie zastępcze w miejsce reszty i zamyka kanał
SSE, zanim dalsza zablokowana treść dotrze do klienta. Ponieważ nagłówki
SSE 200 już wyszły do tego czasu, blokada streamingowa nie może zwrócić
400: dostarcza block jako finalną deltę w paśmie, a nie błąd HTTP.output · mask — tylko nie-streaming (streaming w planach)
output · mask — tylko nie-streaming (streaming w planach)
Na odpowiedzi nie-streamingowej reguła
mask przepisuje odpowiedź — np.
email staje się [EMAIL] — i oczyszczony tekst jest tym, co dostaje twój
klient. Na odpowiedzi streamingowej skaner strumienia nadal wykrywa
dopasowanie i oblicza maskę, ale nie przesyła zamaskowanego tekstu do
delty — zamaskowane wyjście jest odrzucane i działa się tylko na decyzji
block. Więc reguła mask nie redaguje dziś odpowiedzi streamingowej;
maskowanie wyjścia streamingowego w paśmie jest w planach. Jeśli
potrzebujesz, by PII było trzymane z dala od strumieniowanej odpowiedzi już
teraz, autorzuj regułę jako block (skaner przecina strumień na
dopasowaniu) lub sprawdzaj nie-streamingowo.flag — tylko obserwacja, identyczne wszędzie
flag — tylko obserwacja, identyczne wszędzie
Reguła
flag nigdy nie zmienia ruchu — rejestruje dopasowanie i
przepuszcza bajty. Etap i stream nie zmieniają jej zachowania. Użyj jej, by
zmierzyć wskaźnik trafień reguły, zanim promujesz ją do block.3. Jeden konkretny przykład — trzymaj PII z dala od strumieniowanej odpowiedzi
Powiedzmy, że model może wydobyć email klienta z kontekstu RAG, a twoja aplikacja strumieniuje.mask wyjścia nie redaguje dziś w strumieniu
(maskowanie wyjścia w locie jest w planach) — więc by trzymać PII z dala od
strumieniowanej odpowiedzi, autorzuj regułę wyjścia jako block: skaner
zabija strumień w chwili, gdy pojawi się dopasowanie. (mask wyjścia redaguje
na odpowiedzi nie-streamingowej.)
Edycja polityki to akcja zarządzania w twojej sesji konsoli (bramkowana do
Developer+); klucz relay sk-orca-... tylko wysyła ruch /v1/* i nigdy
nie edytuje polityki.
- Otwórz
/console/guardrails, New guardrail, nazwij gostream-pii-out. - Dodaj jedną regułę:
- Typ: Wykrywanie PII
- Etap:
output - Akcja:
block← przecina strumień na dopasowaniu; na strumieniumasktylko wykrywa (redaguje odpowiedzi nie-streamingowe)
- Zapisz, potem powiąż go na
/console/tokenprzez rozwijaną listę Guardrail klucza.
stream: true, dokładnie jak wcześniej:
4. PII Shield w całej macierzy
Preset PII Shield to pojedyncza regułapii, akcja mask, etap both.
Zmapuj go na macierz, a pokrycie jest dokładnie tym, czego byś oczekiwał z §2:
- Etap wejścia — w pełni żywy, streaming lub nie. Żądanie jest maskowane, zanim model je zobaczy (nagłówkowa wartość maskowania wejścia).
- Etap wyjścia, nie-streaming — odpowiedź jest maskowana, zanim wróci.
- Etap wyjścia, streaming — skaner strumienia wykrywa dopasowanie, ale nie przepisuje delty dziś, więc zamaskowana forma nie dociera do strumieniowanego klienta (maskowanie wyjścia w locie jest w planach).
block (lub wołaj nie-streamingowo), by strumień był przecięty na
dopasowaniu. Zobacz PII Shield i
formaty maskowania.
5. Co kosztuje blokada streamingowa
Blokada streamingowa niesie tę samą księgowość co każda blokada wyjścia — model już przebiegł, więc brama obsługuje zwrot za ciebie:- Na odpowiedzi nie-streamingowej wywołanie zwraca HTTP 400
guardrail_blockednazywające guardrail i regułę, która zadziałała. Na odpowiedzi streamingowej nagłówki SSE200są już na łączu, więc blokada przybywa jako finalna delta zastępcza w paśmie i czyste zamknięcie kanału zamiast400. - Żadna kwota nie jest naliczana. Blokada wejścia działa przed pomiarem; blokada wyjścia (streaming lub nie) zwraca wstępnie pobraną kwotę, gdy odpowiedź zostanie odrzucona. Tak czy inaczej wywołujący nie płaci nic.
- Żą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.
GET /api/guardrail/match,
otwarty dla każdego Member); dopasowany podłańcuch jest przechwytywany
tylko, gdy przełącznik Log raw content guardrail jest włączony (domyślnie
wyłączony). Pełny szczegół żyje w
błędzie guardrail_blocked
i strumieniu dopasowań.
6. Udowodnij swoją kombinację etap/akcja, zanim wyślesz
Nie zgaduj, która komórka macierzy stosuje się do twojej polityki — zweryfikuj ją. Oba narzędzia biegną w twojej sesji konsoli przez management API:Zakładka Test
Każdy edytor guardrail ma zakładkę Test: wklej próbkę, wybierz etap i
uruchom bieżącą politykę bez wywołania w górę i bez kwoty. Zobacz werdykt
i, dla reguł mask, wyrenderowany tekst. Piaskownica Test jest bramkowana do
Developer+ (może odpalać płatne wywołania judge/grounding i wychodzące
żądania integracji).
Zakładka Eval
Zakładka Eval ocenia guardrail wobec dołączonych lub niestandardowych
korpusów JSONL — przydatne, by potwierdzić, że reguła block wychwytuje
znany wyciek, zanim powiążesz klucz. Uruchomienie evala wymaga tylko
dostępu do odczytu (viewer+).
7. Dokąd dalej
Reguły bezpieczne dla streamingu
Jak skaner przecina strumień SSE w locie i jak autorzyć politykę, która
trzyma na ruchu streamingowym.
Etap wyjścia
Sprawdzanie odpowiedzi modelu — block vs. mask, zwrot kwoty i grounding.
Etap wejścia
Sprawdzanie żądania przed modelem — z maskowaniem, streaming lub nie.
Akcje
block, mask, flag, annotate i spotlight w głąb — kiedy każda jest właściwym wyborem.
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.
