Placez Sluis devant vos appels de modèles.
Sluis est un proxy compatible OpenAI. Changez une seule ligne, votre base_url, et chaque requête se met à passer par votre politique de résidence avant d'entrer dans le registre infalsifiable. Aucun SDK à apprendre, aucun payload à réécrire. Cinq étapes ci-dessous ; la référence complète se trouve dans la barre latérale.
Premier appel scellé : ~2 minutes. Si votre code parle déjà à OpenAI, vous gardez votre client, vos modèles et votre format de messages tels quels.
Obtenir une clé
Créez une clé dans la Console, section Workloads. La charge de travail porte les limites et les paramètres de politique ; la clé sert uniquement d’identifiant. La politique de résidence de votre organisation peut réserver eu-only à tout ce qui est personnel et eu-uk-us à la rédaction courante sans changer une ligne de code.


# keep it in your environment, never in source export SLUIS_KEY="sluis-7Qk2vN4xR…"
Pointer base_url vers Sluis
Changez l'hôte. Tout le reste (modèles, streaming, outils, function calling) fonctionne à l'identique, car Sluis expose la même surface d'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"
Vous utilisez le SDK Anthropic ou Claude Code ? Pointez sa base URL vers Sluis. Les en-têtes, le streaming et les erreurs sont décrits dans la référence de l'API.
Envoyer une requête
Appelez exactement comme vous appelleriez le fournisseur. Sluis inspecte la requête, la route selon votre politique, la scelle dans la chaîne d'audit et renvoie la réponse du modèle inchangée. Les appels à un alias sluis/* divulguent la route concrète via des en-têtes de réponse 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" }
Définir la résidence
La résidence est une politique d'organisation, définie dans la Console (Résidence) et appliquée à l'envoi sur chaque requête. Le défaut n'autorise que la juridiction UE : une requête qui atteindrait un fournisseur hors de l'ensemble autorisé est refusée avec 403 avant qu'un seul octet ne parte, qu'il s'agisse de PHI dans un flux soumis à HIPAA ou de données sensibles au titre du RGPD.

# 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"
Élargir où vos données peuvent aller est toujours une décision explicite et consignée : la Console exige la reconnaissance des conditions de transfert avant de débloquer des fournisseurs américains ou chinois, et le changement est inscrit dans le journal d'audit.
Vous souhaitez garder les données personnelles entièrement hors du modèle, pour utiliser n'importe quel modèle sans laisser fuir le moindre nom, numéro ou secret ? Activez Protection des données : Sluis remplace les PII et les secrets détectés par des tokens typés stables (ex. «EMAIL_1»), ne transmet que les tokens au fournisseur et restaure les valeurs d'origine dans la réponse. La correspondance n'est jamais persistée. C'est ce qui permet d'appeler n'importe quel modèle tiers en toute sécurité. La bibliothèque de détecteurs complète et la détection des noms sont présentées dans la Référence protection des données ci-dessous.
Vérifier le sceau
Chaque appel ajoute une entrée à la chaîne de hachage. Le hash de chaque entrée est sha256(prev_hash + record) : tout champ modifié casse tous les maillons suivants. Lisez les métadonnées d'audit via l'API admin ; l'export complet et la vérification de la chaîne passent par la CLI du gateway.
Dans le journal d’audit de la Console, chaque requête occupe une ligne. Dépliez-la pour voir les contrôles qu’elle a exécutés : reconnaissance des noms, inspection LLM de confidentialité, garde de périmètre du workload et analyse de sécurité. Chaque contrôle reste une entrée scellée distincte de la chaîne, avec son propre coût. GET /admin/audit les renvoie dans la liste checks de la requête.


# 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
Compétence d'agent pour votre assistant de code
Vous développez avec un assistant de code IA ? Téléchargez la compétence d'agent Sluis : un SKILL.md et des fichiers de référence qui couvrent chaque endpoint, les codes d'erreur exacts, la résidence, la protection des données, les clés et les workloads. Décompressez-la dans le dossier de compétences de votre assistant. Il répond alors à partir de notre référence au lieu de deviner l'API.
Télécharger la compétence d'agentZIP avec SKILL.md et fichiers de référence