Ochrona danych
Tryby wykrywania, biblioteka 60 detektorów, wykrywanie encji z modelami do wyboru, skanowanie bezpieczeństwa, powiadomienie modelu i retencja.
Ochrona danych działa na każdym żądaniu przed wysyłką. Domyślny tryb to tokenize: każda wykryta wartość jest zamieniana na stabilny typizowany token, taki jak «EMAIL_1». Do dostawcy trafiają wyłącznie tokeny, a w drodze powrotnej do Ciebie odpowiedź jest przywracana do prawdziwych wartości, niezależnie od tego, czy jest strumieniowana. Mapa tokenów żyje w pamięci przez czas trwania żądania i nigdy nie jest utrwalana.
# tokenize mode (the default): what you send curl https://api.sluis.ai/v1/chat/completions \ -H "Authorization: Bearer $SLUIS_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "sluis/auto", "messages": [{ "role": "user", "content": "Mail j.devries@acme.nl that IBAN NL91ABNA0417164300 is active." }] }'
# what the model provider receives — only stable typed tokens { "role": "user", "content": "Mail «EMAIL_1» that IBAN «IBAN_1» is active." }
# what you get back — restored at the single client egress, streaming included { "choices": [{ "message": { "role": "assistant", "content": "Draft: Dear j.devries@acme.nl, your account NL91ABNA0417164300 is active…" } }] }
Inne tryby: mask nieodwracalnie przepisuje wykryte wartości, block odrzuca żądanie z kodem 422, a allow_log przepuszcza je, oznaczając wpis w audycie.
60 wbudowanych detektorów działa od ręki: 28 dla danych osobowych, od amerykańskiego numeru SSN po pakiet krajowych numerów identyfikacyjnych z walidacją sumą kontrolną dla 12 krajów UE, oraz 32 dla sekretów i poświadczeń. Każdy można włączać per organizacja, a terminy własne (zwykłe lub regex) obejmują wszystko, co specyficzne dla Twojej firmy:
Wykrywanie encji
Osoby, organizacje i lokalizacje trudno wychwycić samym wzorcem. Sluis dodaje pięć opcjonalnych warstw: heurystyki kontekstowe (tytuły grzecznościowe, zwroty, podpisy; tylko osoby), korelację e-mail (wyprowadza nazwiska z adresów w tym samym tekście), katalog nazwisk tenanta, dostarczany słownik nazwisk oraz NER: model rozpoznawania obsługiwany przez Sluis jako wewnątrzsieciowy sidecar, więc tekst nigdy nie opuszcza perymetru wdrożenia w celu przeskanowania. NER znajduje osoby, organizacje i lokalizacje w zwykłej prozie.
Słownik nazwisk to deterministyczny odpowiednik NER: imiona i nazwiska skompilowane z rządowych danych otwartych w słownik dostarczany wewnątrz bramy. Wychwytuje pełne imiona i nazwiska oraz nazwiska poprzedzone tytułem grzecznościowym, bez dodatkowych opóźnień i bez wysyłania czegokolwiek poza Twój perymetr. Nazwiska będące zarazem zwykłymi wyrazami są wychwytywane tylko w kontekście o kształcie nazwiska; rzadkie nazwiska pozostają zadaniem katalogu lub NER.
Modele NER do wyboru
Dwa poziomy równoważą opóźnienie i skuteczność wykrywania: swift (spaCy xx_ent_wiki_sm) odpowiada w kilka milisekund z podstawowym pokryciem wielojęzycznym; deep (GLiNER2-PII na bazie mDeBERTa-v3, Apache-2.0) wykrywa wyraźnie więcej, przy wyższym opóźnieniu na analizowany segment. Wybierz per organizacja w Polityki → Ochrona danych; klucz może wybrać inny model przez swoje option overrides, ale nigdy nie może włączyć warstwy, gdy organizacja trzyma ją wyłączoną.
| Model | Pokrycie | Zmierzona dokładność | Opóźnienie |
|---|---|---|---|
| swift · spaCy xx_ent_wiki_sm | multilingual, basic | all-entity F1 0.58 · person F1 0.72 · recall ~0.53 | ~7-14 ms |
| deep · GLiNER2-PII (mDeBERTa-v3, Apache-2.0) | 7 trained languages (EN, FR, ES, DE, IT, PT, NL) + multilingual backbone transfer | all-entity F1 0.61 · person F1 0.76 · recall ~0.70 | ~150-250 ms per scanned segment |
Zmierzono 2026-08-12 na wewnętrznym benchmarku: zdania testowe WikiANN w sześciu językach (NL, EN, DE, FR, ES, IT; 150 na język), oceniane jako mikro-F1 na parach (etykieta, tekst) na poziomie tekstu z zastosowanym produkcyjnym filtrem fałszywych trafień, na deweloperskiej maszynie Apple Silicon w FP32. WikiANN to automatycznie anotowany materiał z Wikipedii i teren treningowy spaCy: czytaj te liczby jako względną wskazówkę między poziomami, nie jako absolutną dokładność w terenie.
Skanowanie bezpieczeństwa
Opcjonalne wykrywanie prompt injection i jailbreaków przy śluzie, analizowane przed wysyłką. Trzy tryby: off | log | block. log zapisuje trafienia w dzienniku audytu bez dotykania ruchu; block odrzuca żądanie zapieczętowanym 403 permission_error ("request refused: prompt-injection scan flagged this request"). Próg zadziałania konfiguruje się per organizacja, a skan zawodzi w trybie otwartym: awaria skanera nigdy nie zatrzymuje ruchu.
Skan dodaje około 20 ms przy krótkim promptcie i około 620 ms przy długim (1500 znaków), zmierzone na wewnętrznym benchmarku; najgorszy przypadek jest ograniczony, bo skaner limituje liczbę okien po 512 tokenów ocenianych na żądanie. Działa równolegle ze skanem NER, więc łączne dodane opóźnienie jest bliskie większemu z dwóch, nie sumie. Wykrywanie to klasyfikator, nie dowód: niewinny tekst przypominający instrukcję może zostać oceniony jako injection, znana w całej branży rzeczywistość, dlatego log to zalecany tryb startowy.
Każde trafienie jest ujawniane w dzienniku audytu jako sec:injection:<score>, więc przegląd nie wymaga dodatkowych narzędzi. Odstępstwa per klucz idą przez te same option overrides co ochrona danych.
Built with Llama. The scan model is Llama Prompt Guard 2 86M (multilingual), used under the Llama 4 Community License.
Osobno opcjonalne wykrywanie anomalii zachowania kluczy działa jako zadanie w tle, bez żadnego opóźnienia żądań: linie bazowe per klucz z odpornych statystyk z sezonowością godzina-tygodnia, plus wielowymiarowa warstwa isolation forest. Alerty są wyjaśnialne, nigdy goły wynik, i trafiają do zakładki Bezpieczeństwo w konsoli, opcjonalnie e-mailem.
Powiadomienie dla modelu
Gdy tokenizacja przepisała żądanie, Sluis wstrzykuje na początku wiadomość systemową informującą model, że tokeny «…» to nieprzezroczyste symbole zastępcze, które musi zachować w nienaruszonym stanie; to właśnie zapewnia niezawodne przywracanie. Domyślnie włączone; dostosuj lub wyłącz per organizacja.
Retencja i wierność audytu
Retencja treści (body żądań i odpowiedzi dla dziennika audytu) jest domyślnie włączona i szyfrowana w spoczynku; wierność audytu decyduje, czy zachowana treść przechowuje tokeny, czy wartości oryginalne. Wyłącz retencję, by mieć rejestr wyłącznie z metadanymi; to wyłącza także cache'e odpowiedzi.
Anonimizacja dokumentów
Wyślij plik docx, pdf, obraz lub tekst na POST /v1/documents/anonymize a ten sam dokument wraca z PII i sekretami zastąpionymi znacznikami jak «PERSON_NAME_1» w tekście oraz rozmytymi na obrazach i stronach PDF. Przetwarzanie pozostaje lokalne w gateway, wraz z OCR; operacja jest pieczętowana w łańcuchu audytu i rozliczana za stronę/obraz. Mapa tokenów jest zwracana tylko na żądanie i nigdy nie jest przechowywana. Zredagowane PDF-y zachowują niewidoczną, przeszukiwalną warstwę tekstu zbudowaną z zanonimizowanego tekstu. Dla dużych dokumentów zakolejkuj zadanie asynchroniczne i odbierz wynik później przez podpisany URL o ograniczonej ważności.
Ta sama ochrona działa w tranzycie: z włączoną polityką dlp_documents pliki wysyłane przez /v1/files i dokumenty OCR inline są anonimizowane zanim wyjdą do dostawcy, odrzucane w trybie block i skanowane w trybie allow_log.
# enqueue a large document (202 + job id; Idempotency-Key honoured) curl https://api.sluis.ai/v1/documents/anonymize/jobs \ -H "Authorization: Bearer $SLUIS_KEY" \ -F file=@archive.pdf # poll until succeeded; the signed download_url then needs no API key curl https://api.sluis.ai/v1/documents/anonymize/jobs/9c31… \ -H "Authorization: Bearer $SLUIS_KEY"
{
"id": "9c31…",
"state": "succeeded",
"filename": "archive.pdf",
"summary": { "pages": 12, "images": 3, "categories": ["PERSON_NAME", "EMAIL"], "downgraded": false },
"download_url": "https://api.sluis.ai/v1/documents/deliverables/9c31…?tenant=…&exp=…&sig=…"
}Embeddingi
Pseudonimizowane tokeny są stabilne w obrębie jednego żądania, nie między żądaniami; embeddingi tokenizowanego tekstu mogą się więc różnić między wywołaniami. Ustawienie dlp_embeddings decyduje, czy skanowanie obejmuje /v1/embeddings: domyślnie włączone, ustawienie na off wysyła dane wejściowe embeddingów do dostawcy bez skanowania. Każde zwolnione wywołanie jest odnotowane w dzienniku audytu.
Option overrides per klucz
Nadpisania nagłówkiem żądania zniknęły: odstępstwa to stała, zarządzana konfiguracja klucza. Owner lub admin ustawia rzadkie option_overrides na kluczu, w widoku API keys Konsoli lub przez POST/PUT /admin/keys: tryb ochrony danych (łącznie z off), model NER i tryb skanowania injection. Wszystko nieustawione dziedziczy politykę organizacji, a klucz nigdy nie może włączyć warstwy, którą organizacja trzyma wyłączoną.
# per-key option overrides are standing key config, set by an owner or admin curl -X PUT https://api.sluis.ai/admin/keys/{key_id} \ -H "Authorization: Bearer $SLUIS_ADMIN_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "option_overrides": { "dlp": { "mode": "off" }, "ner_model": "deep", "security": { "prompt_injection": { "mode": "block" } } } }' # sparse: absent fields inherit org policy; every deviation is sealed in the audit trail
Nagłówek żądania x-sluis-dlp został usunięty. Żądanie, które wciąż go niesie, z dowolną wartością, jest odrzucane z 400 i wskazaniem na option overrides klucza. Każde obowiązujące odstępstwo jest ujawniane w zapieczętowanym wierszu audytu, więc dziennik zawsze pokazuje, która konfiguracja faktycznie zadziałała.