Dokumentacja

Postaw Sluis przed swoimi wywołaniami modeli.

Sluis to proxy zgodne z OpenAI. Zmień jedną linijkę, swoje base_url, a każde żądanie zaczyna płynąć przez Twoją politykę rezydencji do rejestru odpornego na manipulacje. Żadnego SDK do nauki, żadnych payloadów do przepisywania. Pięć kroków poniżej; pełna referencja znajduje się w pasku bocznym.

Czas do pierwszego zapieczętowanego wywołania: ~2 minuty. Jeśli Twój kod już rozmawia z OpenAI, zachowujesz swojego klienta, swoje modele i format wiadomości dokładnie takimi, jakie są.

Zdobądź klucz

Utwórz klucz w Konsoli, w sekcji API keys. Każdy klucz niesie politykę rezydencji i budżet, więc możesz przypisać eu-only wszystkiemu, co osobowe, a eu-uk-us ogólnemu redagowaniu, bez zmiany ani linijki kodu.

# keep it in your environment, never in source
export SLUIS_KEY="sk_live_a91c…"

Wskaż base_url na Sluis

Podmień host. Wszystko dalej (modele, streaming, narzędzia, function calling) działa bez zmian, bo Sluis proxuje tę samą powierzchnię API.

from openai import OpenAI

client = OpenAI(
    base_url="https://api.sluis.ai/v1",
    api_key=os.environ["SLUIS_KEY"],
)

Wyślij żądanie

Wywołaj dokładnie tak, jak wywołujesz dostawcę. Sluis sprawdza żądanie, routuje je przez Twoją politykę, pieczętuje w łańcuchu audytu i zwraca odpowiedź modelu bez zmian. Wywołania aliasu sluis/* ujawniają konkretną trasę w nagłówkach odpowiedzi x-sluis.

# Anthropic Claude, served from Google's EU multi-region
resp = client.chat.completions.create(
    model="vertex/claude-opus-4-8",
    messages=[{"role": "user", "content": "Summarise this chart…"}],
)
print(resp.choices[0].message.content)
200 OK · zapieczętowane w 3 ms
# response headers on a sluis/* alias call
{
  "x-sluis-route": "sluis/auto",
  "x-sluis-model": "vertex/claude-opus-4-8"
}

Ustaw rezydencję

Rezydencja to polityka organizacji, ustawiana w Konsoli (Polityki → Rezydencja) i egzekwowana przy wysyłce każdego żądania. Domyślnie dozwolona jest wyłącznie jurysdykcja UE: żądanie, które trafiłoby do dostawcy spoza dozwolonego zbioru, jest odrzucane z 451, zanim wyjdzie choć jeden bajt, czy to PHI w procesie objętym HIPAA, czy szczególne kategorie danych w rozumieniu RODO.

# default policy is EU-only — a US provider is refused at dispatch
curl https://api.sluis.ai/v1/chat/completions \
  -H "Authorization: Bearer $SLUIS_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "model": "openai/gpt-5.6", "messages": [...] }'

# → 451 permission_error
# "blocked by residency policy: provider jurisdiction US is not in the allowed set [EU]"

Rozszerzenie tego, dokąd mogą trafiać dane, jest zawsze jawną, odnotowaną decyzją: Konsola wymaga potwierdzenia warunków transferu przed odblokowaniem dostawców z USA lub Chin, a zmiana trafia do dziennika audytu.

Chcesz całkowicie odseparować dane osobowe od modelu, by używać dowolnego modelu bez ujawnienia ani jednego nazwiska, numeru czy sekretu? Włącz Zasady → Ochrona danych: Sluis zastępuje wykryte PII i sekrety stabilnymi typizowanymi tokenami (np. «EMAIL_1»), przekazuje do dostawcy wyłącznie tokeny, a w odpowiedzi przywraca oryginalne wartości. Mapowanie nie jest nigdy utrwalane. To właśnie sprawia, że wywołanie dowolnego modelu zewnętrznego dostawcy jest bezpieczne. Pełną bibliotekę detektorów oraz wykrywanie nazwisk opisano w Referencji ochrony danych poniżej.

Zweryfikuj pieczęć

Każde wywołanie dopisuje wpis do łańcucha hashy. Pobierz łańcuch i zweryfikuj go ponownie offline, hash każdego wpisu to sha256(prev_hash + record), więc każde zmienione pole łamie wszystkie kolejne ogniwa.

curl https://api.sluis.ai/v1/audit/export?from=genesis \
  -H "Authorization: Bearer $SLUIS_KEY" | sluis verify -

# → 18,442 entries · chain intact · head #4f9c2a ✓