Suivez une requête à travers l'écluse.

Changez une base_url et vos SDK et le streaming OpenAI franchissent trois portes.

clientyour SDKinspectDLP scanrouteresidencysealledgerresponsestreamed
Inspecter

La porte se referme derrière vous.

Avant qu'un octet ne sorte, le prompt passe plus de 60 détecteurs et tout ce qui est trouvé est pseudonymisé de façon réversible.

Détecteurs de PII
e-mailtéléphone · E.164US SSNIBAN · mod-97NL BSN · 11-proefPL PESELIT codice fiscalecarte bancaire · Luhn
Détecteurs de secrets
clés APIclés d'accès AWSclés privées PEM
Détection des noms de personnes

Les noms sont les données personnelles les plus difficiles à repérer par motif ; la détection des noms tient donc en cinq couches que vous activez à la demande : heuristiques de contexte, corrélation d'e-mails, un annuaire de noms par tenant, un dictionnaire de noms embarqué compilé à partir de données ouvertes gouvernementales, et le propre modèle de reconnaissance multilingue de Sluis, qui tourne à l'intérieur de votre déploiement et n'envoie jamais un nom à un tiers. Le modèle existe en deux niveaux au choix : un rapide qui répond en quelques millisecondes, et un profond (GLiNER2-PII) qui détecte nettement plus pour quelques centaines de millisecondes par segment analysé. Les chiffres mesurés par niveau sont dans la documentation.

Analyse de sécurité

La détection optionnelle d'injections de prompt et de jailbreaks tourne à la même écluse (Llama Prompt Guard 2, Built with Llama), en parallèle du scan d'entités, en mode log ou block ; les détections atterrissent dans le journal d'audit, et l'analyse échoue en mode ouvert pour ne jamais interrompre le trafic.

request.jsonDLP scan
IBANNL91 ABNA ●●●● ●●●● 28masked
NL BSN●●● ●●● ●●●masked
emailj●●●@●●●.nlmasked
API keysk-●●●…●●●blocked
modemaskblockallow-logpseudonymize

Traitez des données personnelles et des secrets. Le modèle ne les voit jamais.

Le scan remplace chaque valeur PII et chaque secret par un jeton stable et ne transmet que des jetons au modèle. « Anna de Vries » devient «PERSON_1», de façon cohérente sur toute la conversation, pour que le modèle continue de raisonner. La réponse arrive avec des jetons et quitte l'écluse avec des noms : la restitution se fait dans le flux, jeton après jeton, si bien que votre utilisateur ne remarque rien. La table de correspondance reste à l'intérieur. Toujours.

your apprequestSluis gatejohn@acme.com«EMAIL_1»«EMAIL_1»masks PIImodel«EMAIL_1»«EMAIL_1»token onlySluis gate«EMAIL_1»john@acme.comjohn@acme.comrestoresresponseyour appyour app · requestSluis masksjohn@acme.com«EMAIL_1»«EMAIL_1»PII stays insidemodel«EMAIL_1»«EMAIL_1»token onlySluis restores«EMAIL_1»john@acme.comjohn@acme.cominside the streamyour app · restored
Router

Le niveau d'eau s'égalise.

Vous définissez par clé quels modèles, régions et propriétaires sont autorisés ; si l'un tombe, le suivant prend le relais.

  • Souverain européen par défaut

    Le réglage par défaut est le plus strict : uniquement des fournisseurs détenus par des entités de l'UE, comme Mistral et Scaleway, et des clouds en région UE. Les fournisseurs américains et chinois directs sont eux aussi disponibles, désactivés par défaut : autorisez-les dans la politique et Sluis applique exactement cette ligne.

  • La propriété, pas seulement la région

    Chaque modèle porte une étiquette : où il tourne et qui peut l'atteindre. Une maison mère américaine sous le CLOUD Act y figure noir sur blanc (owner_is_eu = false) : une route américaine ou chinoise directe est toujours un choix que vous voyez, jamais fait à votre place.

  • Blocages fermes, pas du best-effort

    Si aucun fournisseur ne satisfait la politique, la requête est refusée à la porte et renvoyée à votre application avec un code de motif clair. Un blocage, pas une supposition.

residency.policy · class: PHIenforced
requestFR · primaryFR · fallbackUS · allowedCN · blocked
EU · France
scaleway-fr · owner_is_eu=true
primary
EU · France
mistral-fr · owner_is_eu=true
fallback
US · East
openai-us · owner_is_eu=false
allowed · policy
CN · Hangzhou
deepseek-cn · owner_is_eu=false
blocked · policy

Un endpoint. Toujours le meilleur modèle.

La politique avant le benchmark : le même alias sluis/auto se résout différemment par tenant quand la politique l’exige. Une organisation EU-only n’est jamais routée vers un fournisseur non conforme, même si les benchmarks le placent en tête.

  • Appelez un nom stable

    Utilisez sluis/auto pour le routage par requête ou des noms par usage comme sluis/code, sluis/cheap et sluis/vision. Les ids de modèle sortent de votre app.

  • Actualisé avec des benchmarks vivants

    Les routes gérées sont actualisées chaque jour depuis les benchmarks Artificial Analysis, puis curées par Sluis avant activation.

  • Votre politique décide

    Vos alias tenant peuvent reprendre un nom réservé et masquer la route gérée. Les clés peuvent allow-lister sluis/auto ou sluis/code comme un id de modèle.

Classements : Artificial Analysis · cibles réévaluées chaque jour, toujours résolues dans votre politique de résidence.

managed aliasesdaily
# One stable name. Tenant policy still decides the target.
$ curl https://api.sluis.ai/v1/chat/completions \
  -H "Authorization: Bearer $SLUIS_KEY" \
  -d '{ "model": "sluis/auto", "messages": [...] }'

# → x-sluis-route: sluis/auto
# → x-sluis-model: mistral/mistral-large-latest
# → x-sluis-region: EU · policy-aware
sluis/autosluis/codesluis/chatsluis/supportsluis/fastsluis/cheapsluis/agentssluis/extractsluis/docssluis/longcontextsluis/visionsluis/translatesluis/sovereign
Sceller

Le passage entre au registre.

Chaque requête entre dans un registre chaîné par hash que vous exportez en JSON Lines et revérifiez hors ligne.

audit.chain · last 4 entrieschain verified
14:22:07.118Z#4f9c2a e1b7d9 · scaleway-fr · PHIin-region
14:22:05.904Z#e1b7d9 7a3f10 · mistral-fr · PHIfallback
14:22:04.661Z#7a3f10 0c55ab · scaleway-fr · PIIin-region
14:22:02.330Z#0c55ab genesis · scaleway-fr · generalin-region
chaîné en SHA-256infalsifiableexport JSON Linesverify-chain hors ligne

Le droit à l'effacement (art. 17 RGPD et équivalents) purge le contenu des requêtes, le cache et les identifiants fournisseurs, et préserve la chaîne de métadonnées, si bien que verify-chain passe toujours une fois les données disparues.

Vos agents franchissent les mêmes trois portes.

Les appels d'outils MCP sont des requêtes comme les autres : ils franchissent les mêmes trois portes. Un agent qui lit votre CRM ou crée un ticket le fait derrière l'écluse : inspecté, routé, scellé.

La seule passerelle MCP où chaque invocation d'outil passe Inspecter → Router → Sceller, pour que « c'est resté dans votre politique » couvre vos outils, pas seulement vos prompts.

tool.invoke · request 7f4apolicy active
  1. inspect

    Inspecter l'appel d'outil

    La même passe DLP scanne d'abord les arguments et résultats d'outils pour PII et secrets.

    arguments · scannedpass
  2. route

    Router la sortie d'outil

    Une sortie d'outil hors de votre politique de résidence est bloquée à la porte.

    egress · eu-sovereignin-region
  3. seal

    Le sceller dans le même registre

    L'appel d'outil et un hash de ses arguments s'enchaînent dans le même registre infalsifiable.

    ledger · #4f9c2averified
tool.callinspect.passroute.eu-sovereignseal.#4f9c2a

Conçu pour ne jamais se mettre en travers de la requête.

La conformité ne doit pas vous coûter de latence. Le hot path est conçu pour que les contrôles s'exécutent sans jamais bloquer sur une base de données, un verrou ou un buffer.

Échelle

Sans état, par construction

Aucun état par requête : vous montez en charge en ajoutant des répliques, sans jamais toucher Postgres.

scalabilité horizontalezéro BD sur le hot path
Audit

Scellé hors du hot path

Les écritures d'audit sont asynchrones et par lots : la réponse n'attend jamais le registre.

async + par lots
Streaming

Streamé, jamais bufferisé

Le SSE passe en direct par un tee ; le corps n'est jamais retenu entier en mémoire.

tee SSE
Budgets

Une dépense qui ne dérive pas

La dépense est débitée en argent réel et réconciliée depuis le registre durable ; elle échoue fermé.

registre micro-eurosréconciliééchec fermé
Vitesse

Mesuré, pas promis

Toutes portes actives, le surcoût mesuré est de +1 ms à la médiane, rien face à un modèle en direct.

+1 ms de surcoût médianporte active vs ouvertemesuré en interneSee the benchmark →
Anonymiser

Anonymisation de documents

Confiez à la gateway un docx, un pdf, une image ou du texte brut et récupérez le même document avec chaque nom, numéro et secret remplacé par des «MERGE_TAG»s dans le texte et flouté dans les pixels. Le rendu et l'OCR tournent dans le processus de la gateway; rien n'atteint un fournisseur de modèle, l'opération est scellée dans la chaîne d'audit et la table des jetons n'appartient qu'à vous.

docx · pdf · images · texteOCR local, rien ne sorten transit sur /v1/filesPDF caviardés cherchables, liens de livraison signés
cachetenant scope

Payez une seule fois la même réponse.

Activez par tenant un cache exact et un cache sémantique, isolés par tenant et chiffrés AEAD, sans jamais affaiblir la résidence.

01correspondance exacte02sémantique · pgvector
chiffré AEAD au reposisolé par tenantopt-in

Conçu pour la stack que vous avez déjà.

Compatible OpenAI à l'octet près. Gardez votre SDK, vos prompts, votre outillage. Pointez une base_url vers Sluis et ajoutez un en-tête de résidence quand vous voulez épingler une classe de trafic.

  • API compatible OpenAI

    /v1/chat/completions, /v1/embeddings, /v1/models : mêmes formats, même streaming, rien à réécrire.

  • Fonctionne avec vos SDK existants

    Clients OpenAI officiels, LangChain ou simple curl : aucune nouvelle bibliothèque, aucun protocole propriétaire.

  • Une base_url, une clé

    Créez une clé virtuelle par app, chacune avec sa liste de modèles, ses limites et son budget.

  • Observabilité intégrée

    Métriques Prometheus et traces OTLP, étiquetées jurisdiction, owner et decision, droit dans Grafana.

shelldrop-in
# Same API. One endpoint. You set the residency policy.
# eu-sovereign is the safe default; allow more deliberately.
$ curl https://api.sluis.ai/v1/chat/completions \
  -H "Authorization: Bearer $SLUIS_KEY" \
  -H "X-Sluis-Residency: eu-sovereign" \
  -d '{ "model": "mistral/mistral-large", "messages": [...] }'

# → mistral-large @ mistral-fr · in-region
# → sealed · #4f9c2a · streamed

Voyez l'écluse à l'œuvre sur votre propre trafic.

Le prix catalogue de votre fournisseur plus 10% fixe. Pas de sièges, pas de minimums, pas de jeux de marge. Vous activez par carte ou SEPA et payez à l'usage, et aucune requête ne quitte jamais votre politique de résidence.