Przejdź do głównej treści
Model, który przechodzi własny trening bezpieczeństwa, wciąż może wyemitować tekst, którego nie możesz wypuścić: wulgaryzmy w odpowiedzi do klienta, nazwę konkurenta w twoim markowym asystencie, definitywne twierdzenie prawne, którego twój zespół zgodności nigdy by nie zatwierdził. Prompt wyglądał dobrze; problemem jest odpowiedź. OrcaRouter prześwietla odpowiedź modelu w bramie, na etapie wyjścia, zanim dotrze do twojego klienta. Sprawdzenie to reguła guardraila, która działa po odpowiedzi modelu nadrzędnego i zwija się w jeden werdykt — zablokuj odpowiedź, zamaskuj naruszający fragment lub oflaguj go do przeglądu — niezależnie od tego, który model obsłużył żądanie.

1. Dlaczego prześwietlać niebezpieczne wyjście AI na etapie wyjścia

Prześwietlanie wejścia wychwytuje zły prompt. Nie może wychwycić złej odpowiedzi: modelu zwabionego poza politykę, fine-tune’a ze słabszymi wbudowanymi guardrailami lub całkowicie rozsądnego promptu, który wyprodukował nierozsądne dokończenie. Etap wyjścia to miejsce, gdzie stwierdzasz „niezależnie od powodu, ten tekst nie opuszcza bramy”. Reguła bramy odpala deterministycznie i stosuje się jednakowo na każdym modelu za twoim kluczem. A każda reguła, która odpala, ląduje w strumieniu Matches przestrzeni roboczej — typ reguły, akcja, etap — więc masz ślad audytu tego, co zostało wychwycone, a co przepuszczone.
Obrona żyje w bramie, nie w twojej aplikacji. Edytuj guardrail, a zmiana wchodzi w życie przy następnym wywołaniu dla każdego powiązanego z nim klucza — bez ponownego wdrożenia, bez zmiany SDK. Twoja aplikacja dalej woła /v1/chat/completions dokładnie jak wcześniej.

2. Dwa sposoby, by je wychwycić

Sparuj deterministyczną listę odmów z semantycznym sędzią dla obrony w głąb.
Reguła keyword to dopasowanie podłańcucha bez rozróżniania wielkości liter; reguła regex to wzorzec RE2 (czas liniowy, bez wstecznych referencji). Oba działają na gorącej ścieżce bez wywołania sieciowego — idealne dla znanej listy zakazanych słów, listy odmów konkurentów lub wzorca strukturalnego (wyciekły token szablonu czatu, definitywna fraza „przysługuje ci odszkodowanie”).
Reguła llm_judge ewaluuje odpowiedź wobec rubryki, którą piszesz, używając modelu w twojej przestrzeni roboczej — toksyczność, ton niezgodny z marką, porady niezgodne z polityką, których żadna dosłowna lista nie obejmuje. Niesie judge_timeout_ms, jest domyślnie fail-open (błąd sędziego jest logowany, a odpowiedź jest kontynuowana), a jej tokeny są rozliczane jako pod-linia sędziego. Zobacz Referencję sędziego LLM.

3. Jeden konkretny przykład — blokuj toksyczne, maskuj niezgodne z marką

Pojedynczy guardrail na etapie wyjścia, który blokuje toksyczną odpowiedź semantycznie i maskuje zakazane terminy markowe w tym, co pozostanie:
{
  "name": "safe-output",
  "rules": [
    {
      "type": "llm_judge",
      "stage": "output",
      "action": "block",
      "judge_model": "openai/gpt-4o-mini",
      "judge_format": "yes_no",
      "judge_rubric": "Does this response contain toxic, harassing, hateful, or otherwise unsafe content? Answer yes or no.",
      "judge_fail_open": true
    },
    {
      "type": "keyword",
      "stage": "output",
      "action": "mask",
      "keywords": ["competitor-name", "internal-codename"]
    }
  ]
}
Napisz to w konsoli — otwórz /console/guardrailsNew guardrail, dodaj dwie reguły i dołącz go do klucza z edytora Token (powiązanie żyje na kluczu jako guardrail_id). Konfiguracja działa na twojej sesji konsoli, nie na kluczu relay; tylko wywołanie /v1/* poniżej używa klucza sk-orca-....
curl https://api.orcarouter.ai/v1/chat/completions \
  -H "Authorization: Bearer sk-orca-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4o-mini",
    "messages": [{"role": "user", "content": "Draft a reply to this angry customer"}]
  }'
Jeśli model zwróci toksyczny szkic, odpowiedź jest wstrzymana z HTTP 400 guardrail_blocked. Jeśli jest czysta, ale wymienia zakazany termin, ten fragment renderuje się jako typowana redakcja, a reszta przepływa.
Iteruj, zanim dołączysz. Zakładka Test wewnątrz edytora uruchamia bieżącą politykę nad przykładową odpowiedzią na etapie output — bez wywołania nadrzędnego, bez kwoty — a zakładka Eval uruchamia ją wobec korpusu, abyś mógł udowodnić wskaźnik wychwycenia i wskaźnik fałszywych pozytywów przed produkcją. Zobacz eval harness.

4. Zacznij od presetu

Biblioteka szablonów New guardrail dostarcza gotowe punkty startowe w kategoriach Safety, Brand i Compliance. Preset to zalążek — zastosuj go, a potem edytuj swobodnie.
KategoriaPreset na etapie wyjścia, od którego zacząć
SafetySystem-Prompt Leak Detector (output), Strong System Prompt Leak — oflaguj/zablokuj odpowiedzi, które powtarzają tokeny system-promptu lub szablonu czatu.
BrandProfanity Filter (mask) — działa na obu etapach i maskuje słowa z listy odmów w odpowiedzi. (Presety Profanity / Brand Safety i Competitor Mentions w stylu block to zalążki na etapie wejścia; przekieruj kopię na output, jeśli chcesz, by prześwietlały odpowiedź.)
ComplianceLegal Disclaimer Enforce — oflaguj odpowiedzi dające definitywną poradę prawną/finansową do przeglądu zespołu.
Kategoria Compliance pakuje też polityki zgodne z frameworkami; dla audytowanych wdrożeń napędzanych frameworkiem zainstaluj pakiet zgodności i sparuj ślad audytu ze Śladem audytu.

5. Strumieniowanie: zastrzeżenie, które ma znaczenie

To, czy reguła wyjścia jest egzekwowana na żywo, zależy od akcji i od tego, czy strumieniujesz.
AkcjaNiestrumieniowaneStrumieniowane
blockOdpowiedź wstrzymana; HTTP 400 guardrail_blockedSkaner przerywa strumień w locie i emituje wiadomość zastępczą — zablokowana treść nigdy nie dociera do klienta
maskDopasowanie zredagowane w zwróconym tekścieDziś tylko niestrumieniowane; przepisywanie strumienia w paśmie jest na mapie drogowej
flagRejestruje dopasowanie, nie zmienia nicRejestruje dopasowanie, nie zmienia nic
mask na wyjściu nie jest jeszcze na żywo na odpowiedziach strumieniowanych. Jeśli strumieniujesz i polegasz na maskowaniu, aby zredagować fragmenty niezgodne z marką, oryginalny fragment przechodzi bez maskowania. Albo żądaj niestrumieniowania przy maskowaniu odpowiedzi, albo użyj reguły block (egzekwowanej na strumieniu i niestrumieniowaniu) dla treści, która nigdy nie może opuścić bramy. To samo zastrzeżenie dotyczy presetu PII Shield, którego żywe maskowanie jest dziś na etapie wejścia.
Zablokowana odpowiedź nie kosztuje kwoty — block na etapie wyjścia zwraca wstępnie skonsumowaną kwotę po odrzuceniu odpowiedzi — i jest oznaczona jako skip-retry, ponieważ ponowne uruchomienie tego samego promptu po prostu znów by zablokowało.

6. Rekomendowany kształt polityki

Warstwuj trzy reguły w jednym guardrailu

  1. keyword / regex na output — wychwyt o zerowym opóźnieniu dla znanych zakazanych terminów i wzorców strukturalnych.
  2. llm_judge na output — semantyczny wychwyt toksyczności / niezgodności z marką / niezgodności z polityką dla tego, co dosłowna lista pomija.
  3. Wdrażaj najpierw przez flag, obserwuj strumień Matches, potem promuj do block, gdy wskaźnik fałszywych pozytywów jest akceptowalny. Zobacz Tryby egzekwowania.
Aby prześwietlać też żądanie — próby jailbreaku i injection, które w ogóle produkują niebezpieczne wyjście — uruchom guardrail na etapie wejścia obok tego. Zobacz Jailbreaki i Prompt injection.

Referencja Guardrails

Pełna referencja typów reguł, akcji, etapów, sędziego LLM, presetów, eval harnessu i strumienia Matches.

Eksfiltracja danych

Zatrzymywanie wrażliwych danych przed wyjściem w odpowiedzi modelu lub wywołaniu narzędzia.