Documentazione

Metti Sluis davanti alle tue chiamate ai modelli.

Sluis è un proxy compatibile OpenAI. Cambia una sola riga, la tua base_url, e ogni richiesta inizia a passare per la tua policy di residenza ed entra nel registro a prova di manomissione. Nessun SDK da imparare, nessun payload da riscrivere. Cinque passaggi qui sotto; il riferimento completo è nella barra laterale.

Tempo alla prima chiamata sigillata: ~2 minuti. Se il tuo codice parla già con OpenAI, tieni il tuo client, i tuoi modelli e il tuo formato dei messaggi esattamente come sono.

Ottieni una chiave

Crea una chiave nella Console, sezione API keys. Ogni chiave porta una policy di residenza e un budget, così puoi riservare eu-only a tutto ciò che è personale e eu-uk-us alle bozze generiche senza cambiare una riga di codice.

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

Punta base_url su Sluis

Cambia l'host. Tutto il resto (modelli, streaming, tool, function calling) funziona invariato, perché Sluis fa da proxy alla stessa superficie API.

from openai import OpenAI

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

Invia una richiesta

Chiamalo esattamente come chiameresti il provider. Sluis ispeziona la richiesta, la instrada secondo la tua policy, la sigilla nella catena di audit e restituisce la risposta del modello invariata. Le chiamate a un alias sluis/* divulgano la rotta concreta negli header di risposta 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 · sigillato in 3 ms
# response headers on a sluis/* alias call
{
  "x-sluis-route": "sluis/auto",
  "x-sluis-model": "vertex/claude-opus-4-8"
}

Imposta la residenza

La residenza è policy dell'organizzazione, impostata nella Console (Policy → Residenza) e applicata al dispatch su ogni richiesta. Il default consente solo la giurisdizione UE: una richiesta che raggiungerebbe un provider fuori dall'insieme consentito viene rifiutata con 451 prima che parta un solo byte, che si tratti di PHI in un flusso regolato da HIPAA o di categorie particolari ai sensi del GDPR.

# 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]"

Estendere dove possono andare i dati è sempre una decisione esplicita e registrata: la Console richiede di riconoscere le condizioni di trasferimento prima di sbloccare provider statunitensi o cinesi, e la modifica finisce nel registro di audit.

Vuoi tenere i dati personali completamente fuori dal modello, così da usare qualsiasi modello senza far trapelare un solo nome, numero o segreto? Abilita Criteri → Protezione dei dati: Sluis sostituisce i PII e i segreti rilevati con token tipizzati stabili (es. «EMAIL_1»), invia solo i token al provider e ripristina i valori originali nella risposta. La corrispondenza non viene mai conservata. È questo a rendere sicuro chiamare qualsiasi modello di terze parti. La libreria completa dei rilevatori e la rilevazione dei nomi sono trattate nel riferimento Protezione dei dati qui sotto.

Verifica il sigillo

Ogni chiamata aggiunge una voce alla catena di hash. Scarica la catena e riverificala offline, l'hash di ogni voce è sha256(prev_hash + record), quindi qualsiasi campo alterato spezza tutti gli anelli successivi.

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

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