Suivez une requête à travers l'écluse.
Changez une base_url et vos SDK et le streaming OpenAI franchissent trois portes.
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.
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.
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.
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.
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.
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.
# 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
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.
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.
- 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 - 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 - 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.#4f9c2aConç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.
Sans état, par construction
Aucun état par requête : vous montez en charge en ajoutant des répliques, sans jamais toucher Postgres.
Scellé hors du hot path
Les écritures d'audit sont asynchrones et par lots : la réponse n'attend jamais le registre.
Streamé, jamais bufferisé
Le SSE passe en direct par un tee ; le corps n'est jamais retenu entier en mémoire.
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é.
Mesuré, pas promis
Toutes portes actives, le surcoût mesuré est de +1 ms à la médiane, rien face à un modèle en direct.
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.
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.
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.
# 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.