Przejdź do głównej treści
Część tego, co musisz wychwycić, nie jest dosłownym słowem ani typowaną encją PII — jest kształtem. Format SKU, układ numeru zamówienia, wewnętrzny wzorzec URL, kod kuponu, odwołanie do umowy. Reguła regex pozwala dopasować ten kształt przy każdym wywołaniu, a potem go zablokować, zamaskować lub oflagować, zanim prompt dotrze do modelu i zanim odpowiedź dotrze do twojego użytkownika. To skupiona strona docelowa dla przypadku ustrukturyzowanego wzorca. Pełny silnik guardrail — każdy typ reguły, pole i trasę — znajdziesz w referencji Guardrails.
Każdy krok tutaj to akcja konsoli na hostowanej bramie (api.orcarouter.ai). Autorzysz guardrail pod twoją własną sesją; tylko końcowe wywołanie /v1/* używa klucza relay sk-orca-.... Tworzenie i edycja guardrails wymaga Developer+ w przestrzeni roboczej.

1. Kiedy potrzebujesz kontroli guardrail regex llm

Reguła regex to właściwe narzędzie, gdy rzecz, którą chcesz wychwycić, ma strukturę, której dosłowna lista zakazanych nie wyrazi, ale nie jest standardową tożsamością, którą detektor pii już obejmuje.

Ustrukturyzowane kody

SKU, kody kuponów, odwołania do umów, wewnętrzne ID zgłoszeń — stały prefiks plus ciąg cyfr lub alfanumeryczny.

Tokeny w kształcie formatu

Cokolwiek dopasowane po kształcie, a nie skończonej liście słów — układ numeru zamówienia, format numeru seryjnego, wewnętrzny wzorzec URL.

Wzorce wycieku w wyjściu

Odpowiedź, która nie powinna wydobyć wewnętrznej nazwy hosta, ścieżki pliku lub formatu ID rekordu — skanuj wyjście modelu pod kątem kształtu.

Tanie, deterministyczne sprawdzenia

Czyste dopasowanie wzorca, bez wywołania modelu, bez sieci — bezpieczne do uruchamiania na każdym żądaniu w obu kierunkach.
Wybierz najlżejsze narzędzie, które pasuje. Skończona lista dosłownych terminów → lista zakazanych słów kluczowych. Nazwany kształt tożsamości, dla którego chcesz typowany tag maski ([EMAIL], [SSN]) lub sprawdzenie Luhna → encja PII / niestandardowa. Strukturalny wzorzec bez typowania per-encja → reguła regex, omówiona tutaj.

2. RE2 — liniowy czas, bez backreferencji

pattern reguły regex to regex Go RE2. RE2 to silnik, który czyni regułę regex bezpieczną do uruchamiania na każdym żądaniu:
RE2 gwarantuje czas dopasowania liniowy w długości wejścia, niezależnie od wzorca. Silnik z backtrackingiem może wybuchnąć wykładniczo na adwersaryjnym wejściu (“ReDoS”); RE2 nie może. Dlatego twój wzorzec jest bezpieczny do ewaluacji na gorącej ścieżce przy każdym wywołaniu.
RE2 nie wspiera backreferencji (\1), lookahead ani lookbehind. Jeśli portujesz wzorzec PCRE, który na nich polega, przepisz go bez nich. Klasy znaków, kotwice, kwantyfikatory, alternacja i grupy nieprzechwytujące działają zgodnie z oczekiwaniem.
Nie ma osobnego przełącznika “ignoruj wielkość liter” — ustaw flagi inline. Poprzedź (?i) dla braku rozróżniania wielkości liter, (?m) dla multiline. Przykład: (?i)\bproject-orca\b.
Konstruktor reguł kompiluje twój wzorzec, gdy zapisujesz guardrail. Wzorzec, który się nie kompiluje, jest odrzucany z indeksem reguły w błędzie, więc zły detektor nigdy nie dociera do ścieżki relay.
Wzorce RE2 to nie PCRE. Najczęstszą niespodzianką przy portowaniu jest backreferencja lub lookahead — żadne nie jest wspierane. Napisz dopasowanie zamiast tego jako wzorzec klasy-znaków / alternacji i zweryfikuj go w zakładce Test, zanim powiążesz klucz.

3. Anatomia reguły regex

Reguła regex to najmniejsza reguła w silniku po keyword: wzorzec, etap i akcja.
PoleCo robi
patternRegex Go RE2 (liniowy czas, bez backreferencji). Musi się skompilować.
stageinput (żądanie), output (odpowiedź) lub both.
actionblock, mask lub flag.
Przy akcji mask każde dopasowanie jest zastępowane w miejscu pojedynczym dosłownym tagiem [REDACTED] — reguła regex nie jest typowana, więc nie renderuje tagu per-encja jak [EMAIL]. Jeśli chcesz typowany tag lub niestandardowy token zamiennika, zamodeluj kształt zamiast tego jako niestandardową encję PII.

4. Jeden konkretny przykład

Załóżmy, że twoje wewnętrzne numery zamówień wyglądają jak ORD- poprzedzone ośmioma cyframi, a nigdy nie chcesz, by któryś został odbity w odpowiedzi modelu. Dodaj jedną regułę regex na etapie output:
{
  "type": "regex",
  "stage": "output",
  "action": "mask",
  "pattern": "ORD-\\d{8}"
}
Autorzuj ją w konsoli:
1

Utwórz guardrail

Otwórz Guardrails, kliknij New guardrail i nazwij go (≤ 64 znaki), np. order-id-filter.
2

Dodaj regułę regex

Dodaj jedną regułę — Typ: Wyrażenie regularne, Etap: Output, Akcja: Mask — i wklej wzorzec ORD-\d{8}. Zapisz.
3

Przetestuj w piaskownicy

Otwórz zakładkę Test, wklej próbkę, wybierz etap output i uruchom bieżącą politykę lokalnie — bez wywołania w górę, bez kwoty:
Your order ORD-48291507 has shipped.
Your order [REDACTED] has shipped.
4

Powiąż klucz

Edytuj klucz API i wybierz order-id-filter z rozwijanej listy Guardrail (ustawia guardrail_id na kluczu) lub oznacz guardrail jako domyślny przestrzeni roboczej. Zobacz Powiąż z kluczem i Domyślny dla konta.
Potem wywołaj OrcaRouter dokładnie jak wcześniej — bez nowych nagłówków, bez zmiany SDK:
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": "What is the status of my order?"}
    ]
  }'
Numer zamówienia jest redagowany w odpowiedzi, zanim dotrze do twojego użytkownika.

5. Pokrycie etapu i streamingu

Akcja, którą wybierzesz, oddziałuje z tym, czy odpowiedź się strumieniuje:
AkcjaNie-streamingStreaming
block (wyjście)EgzekwowaneEgzekwowane — skaner przecina strumień
mask (wyjście)EgzekwowaneEgzekwowane — skaner przepisuje bufor
Reguły na etapie wejścia biegną przed wywołaniem w górę, więc są niezależne od streamingu — maskowanie żądania, zanim model je w ogóle zobaczy, jest żywe. Mask wyjścia i block wyjścia są oba egzekwowane na odpowiedziach streamingowych i nie-streamingowych. Zobacz Pokrycie streamingu.

6. Wybierz akcję

Reguła regex wybiera jedną akcję na regułę:
Dowolne dopasowanie odrzuca żądanie z HTTP 400 guardrail_blocked. Zablokowane żądanie nie kosztuje kwoty — blokada na etapie wejścia działa przed pomiarem; blokada na etapie wyjścia zwraca wstępnie pobraną kwotę — i jest oznaczone jako skip-retry. Zobacz błąd guardrail_blocked.
Każde dopasowanie jest zastępowane w miejscu [REDACTED], a żądanie kontynuuje z oczyszczonym tekstem — model nadrzędny (etap wejścia) lub twój użytkownik (etap wyjścia) nigdy nie widzi oryginału. Zobacz Akcje.
Rejestruje dopasowanie i nic nie zmienia w ruchu. Właściwy punkt wyjścia dla nowego wzorca: wyślij go jako flag, obserwuj strumień Matches, potem promuj do mask/block, gdy mu zaufasz.
Rejestruje dopasowanie i dołącza notatkę (np. ustalenie do pokazania w triażu) bez zmiany ruchu. Zobacz Akcje.
Obrona na etapie wejścia: każde dopasowanie jest owijane w ograniczniki (np. ⟦UNTRUSTED⟧…⟦/UNTRUSTED⟧), które mówią modelowi, by traktował tekst jako dane, nie instrukcje — łagodzenie prompt-injection. Zobacz Akcje.

7. Zobacz, co zadziałało — i stroj precyzję

Każda reguła, która zadziała, rejestruje dopasowanie — typ reguły, akcję, etap i łańcuch szczegółów — w strumieniu Matches przestrzeni roboczej.
Dopasowany podłańcuch jest rejestrowany tylko, gdy Log raw content jest włączone, co jest domyślnie wyłączone — postawa konserwatywna wobec prywatności. Przy wyłączonym nadal widzisz, że reguła regex zadziałała i jak często, tylko nie dosłowny tekst, który wychwyciła. Włącz to per guardrail, gdy potrzebujesz podłańcucha do triażu; ustawienie nie działa wstecznie. Zobacz Strumień dopasowań i Logowanie i prywatność.
Zbyt szeroki wzorzec to klasyczna pułapka regex — \d{8} dopasowuje każdy ciąg ośmiu cyfr, nie tylko twoje numery zamówień. Zakotwicz go (stały prefiks jak ORD-, granice słów \b), obserwuj strumień Matches i oznaczaj fałszywie pozytywne, by zacieśniać w miarę postępu. Po siatkę A/B wobec korpusu — dowodzącą, że wzorzec wychwytuje to, co powinien, bez flagowania łagodnego ruchu — harness ewaluacyjny mieszka o jedną zakładkę dalej. Zobacz Strojenie fałszywie pozytywnych.

8. Dokąd dalej

Niestandardowe encje PII

Gdy kształt to tożsamość, dla której chcesz typowany tag maski lub sumę kontrolną Luhna — nie goły [REDACTED].

Słowa wrażliwe

Skończona lista dosłownych terminów — prostsza niż wzorzec, gdy nie potrzebujesz struktury.

Akcje

Jak block, mask i flag się różnią i kiedy używać każdej.

Referencja Guardrails

Kompletny silnik — każdy typ reguły, pole i trasa.
Reguła regex rządzi treścią. Aby rządzić wywołaniami narzędzi agenta — odmawiać akcji destrukcyjnych, redagować argumenty wywołań narzędzi, wymagać zatwierdzenia — użyj Firewalla i jego matcherów reguł. Dla rozmytych polityk, których żaden wzorzec nie wyrazi (toksyczność, off-topic, intencja injection), reguła llm_judge uruchamia sprawdzenie semantyczne wobec modelu przestrzeni roboczej. Aby zobaczyć, gdzie regex pasuje w ogólnym projekcie, przeczytaj Guardrails vs Firewall.