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 Workload. Il workload gestisce limiti e impostazioni delle policy; la chiave è solo una credenziale. La policy di residenza della tua organizzazione può 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="sluis-7Qk2vN4xR…"
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"], )
import OpenAI from "openai"; const client = new OpenAI({ baseURL: "https://api.sluis.ai/v1", apiKey: process.env.SLUIS_KEY, });
// no SDK required — reqwest = { version = "0.12", features = ["json"] } let client = reqwest::Client::new(); let base = "https://api.sluis.ai/v1"; // ← the only change let key = std::env::var("SLUIS_KEY")?;
curl https://api.sluis.ai/v1/chat/completions \ -H "Authorization: Bearer $SLUIS_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "mistral/mistral-large-latest", "messages": [...] }'
# already on the Anthropic SDK? Only the base URL changes. from anthropic import Anthropic client = Anthropic( base_url="https://api.sluis.ai", # the SDK appends /v1/messages api_key=os.environ["SLUIS_KEY"], ) # Claude Code, in one line — no plugin, no config file export ANTHROPIC_BASE_URL="https://api.sluis.ai" ANTHROPIC_AUTH_TOKEN="$SLUIS_KEY"
Usi l’SDK Anthropic o Claude Code? Punta la sua base URL su Sluis. Header, streaming ed errori sono descritti nel riferimento API.
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)
// Anthropic Claude, served from Google's EU multi-region const resp = await client.chat.completions.create({ model: "vertex/claude-opus-4-8", messages: [{ role: "user", content: "Summarise this chart…" }], }); console.log(resp.choices[0].message.content);
// Anthropic Claude, served from Google's EU multi-region let resp: serde_json::Value = client .post(format!("{base}/chat/completions")) .bearer_auth(&key) .json(&serde_json::json!({ "model": "vertex/claude-opus-4-8", "messages": [{ "role": "user", "content": "Summarise this chart…" }] })) .send().await? .json().await?; println!("{}", resp["choices"][0]["message"]["content"]);
# 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 (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 403 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": [...] }' # → 403 permission_error # "provider `openai` (jurisdiction `US`) is not permitted by the tenant's residency policy"
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 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. L'hash di ogni voce è sha256(prev_hash + record), quindi qualsiasi campo alterato spezza tutti gli anelli successivi. Leggi i metadati di audit tramite l'API admin; l'esportazione completa e la verifica della catena passano dalla CLI del gateway.
Nel registro di audit della Console ogni richiesta occupa una riga. Espandila per vedere i controlli eseguiti: riconoscimento dei nomi, ispezione LLM sulla privacy, controllo del perimetro del workload e analisi di sicurezza. Ogni controllo resta una voce sigillata a sé nella catena, con il proprio costo. GET /admin/audit li restituisce nella lista checks della richiesta.


# audit metadata over the admin API, admin token scope audit:read curl "https://api.sluis.ai/admin/audit?from=2026-09-01" \ -H "Authorization: Bearer $SLUIS_ADMIN_TOKEN" # a full export and a chain verification are operator CLI subcommands sluis-gateway audit export --tenant $TENANT_ID sluis-gateway audit verify-chain --tenant $TENANT_ID # → chain intact
Skill di agente per il tuo assistente di codice
Sviluppi con un assistente di codice IA? Scarica lo skill di agente Sluis: un SKILL.md più i file di riferimento che coprono ogni endpoint, i codici di errore esatti, la residenza, la protezione dei dati, le chiavi e i workload. Estrailo nella cartella degli skill del tuo assistente. Risponderà dalla nostra documentazione invece di indovinare l'API.
Scarica lo skill di agenteZIP con SKILL.md e file di riferimento