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 produkcji, a eu-uk-us piaskownicy badawczej, 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łuj go dokładnie tak, jak przy bezpośrednim wywołaniu dostawcy. Sluis sprawdza żądanie, kieruje je zgodnie z Twoją polityką i zwraca odpowiedź modelu z dwoma dodatkowymi nagłówkami, które mówią, gdzie działało i jak je zapieczętowano.

# 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
{
  "x-sluis-region": "eu multi-region",
  "x-sluis-provider": "vertex · claude-opus-4-8",
  "x-sluis-decision": "in-region",
  "x-sluis-seal": "#4f9c2a",
  "x-sluis-prev": "#e1b7d9"
}

Ustaw rezydencję na poziomie żądania

Polityka klucza jest domyślna. Nadpisz ją dla pojedynczego wywołania nagłówkiem, przydatne, gdy jeden endpoint obsługuje bardziej rygorystyczną klasę danych niż reszta klucza.

resp = client.chat.completions.create(
    model="mistral/mistral-large-latest",
    messages=msgs,
    extra_headers={"X-Sluis-Residency": "eu-only"},
)
# PHI in the prompt? Sluis routes EU-only and
# blocks with 451 if no EU provider is available.

Nagłówek może uczynić żądanie tylko bardziej rygorystycznym niż polityka klucza, nigdy luźniejszym. Żądanie nigdy nie może poszerzyć własnej rezydencji. By rozszerzyć, dokąd mogą trafiać dane (na przykład zezwolić na dostawców z USA lub Chin) zmień politykę bazową w Konsoli.

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 modelu z USA lub Chin 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 ✓