Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
Les politiques de service sont en version Bêta. Unity AI Gateway est généralement disponible, mais ses capacités bêta sont activées séparément. Un administrateur de compte doit activer les fonctionnalités bêta de Unity AI Gateway depuis la page des Aperçus de la console de compte. Consultez Gérer les préversions d’Azure Databricks.
Ce tutoriel explique comment ajouter des garde-corps à un Service de modèle, de deux manières complémentaires. Sur Azure Databricks, les garde-corps sont des politiques de service. Un service de modèle peut faire face à un modèle hébergé Azure Databricks ou à un fournisseur externe tel qu’OpenAI, Anthropic ou Google, et vous régissez les deux de la même façon :
- Règles de service intégrées (garde-fous) : contrôles gérés fournis par Azure Databricks pour les risques courants tels que les données personnelles identifiables, le contenu à risque, les tentatives de jailbreak et les hallucinations. Vous en attachez un en le sélectionnant dans l’interface utilisateur, sans code à écrire.
- Stratégies de service personnalisées : les fonctions SQL que vous écrivez pour des règles spécifiques à votre organisation, telles qu’un nom de code de projet confidentiel ou un modèle de réponse interdit.
Pour connaître les concepts des stratégies de service, les garde-fous intégrés et la référence complète sur la création, consultez Stratégies de service pour les ressources sécurisables d’IA, Créer et attacher une stratégie de service et Référence des fonctions des stratégies de service.
Vous attachez les deux de la même façon, à partir de l’onglet Stratégies d’un service de modèle dans l’interface utilisateur de la passerelle AI Unity, et vous pouvez les combiner. Azure Databricks évalue chacun à deux points :
- La phase d’entrée (ON CALL) avant qu’il n’invoque le modèle.
- La phase de sortie (ON RESULT) après que le modèle a répondu.
Dans l’interface utilisateur, vous sélectionnez la phase lorsque vous attachez la stratégie. Une stratégie personnalisée peut également se limiter à une seule phase en effectuant un branchement sur event:type.
Scénario: Votre équipe expose un LLM via un service de modèle (main.default.team_chat) que les applications et les agents appellent. Vous souhaitez bloquer le contenu dangereux ou nuisible avec une protection gérée, bloquer toute invite mentionnant un projet confidentiel, et bloquer les réponses contenant un lien non sécurisé, le tout sans changer le code de l’application.
À la fin de ce tutoriel, vous disposez des points suivants :
- Un mécanisme de protection intégré au service contre les contenus dangereux.
- Une politique de requête personnalisée qui bloque un nom de code confidentiel lors de la phase d’entrée (ON CALL).
- Une politique de réponse personnalisée qui bloque les liens non sécurisés lors de la phase de sortie (ON RESULT).
- Tous les trois attachés et vérifiés depuis le Playground du service de modèles.
Prerequisites
- Un espace de travail activé pour le catalogue Unity. Consultez Bien démarrer avec Unity Catalog.
- Les fonctionnalités bêta de Unity AI Gateway activées pour votre compte, qui activent les politiques de service et les autres fonctionnalités bêta de Unity AI Gateway. Consultez Gérer les préversions d’Azure Databricks.
- Un service de modèles à régir et
EXECUTEsur celui-ci pour pouvoir le tester. Pour en créer un, voir Créer et gérer des API de modèles (services de modèles). Ce didacticiel utilisemain.default.team_chat. -
MANAGEsur le service de modèles, pour associer des stratégies. -
CREATE FUNCTIONsur le schéma dans lequel vous créez les fonctions de stratégie personnalisées (main.governancedans ce tutoriel). - Pour le garde-fou intégré : le modèle évaluateur qui exécute la vérification du garde-fou (le juge LLM) est préélectionné, donc aucune configuration n’est nécessaire. Si vous sélectionnez un autre évaluateur sous Options avancées, vous en avez besoin de
CAN_QUERY.
Étape 1 : Appliquer un garde-fou intégré
Les garde-fous intégrés sont des vérifications gérées par un LLM faisant office d'évaluateur. Vous en sélectionnez un dans le menu Type de garde-fou; le service de modèles évaluateur qui exécute la vérification (l'évaluateur LLM) est présélectionné pour vous. Les garde-fous disponibles sont les suivants :
-
Contenu dangereux (
system.ai.block_unsafe_content) : refuse le contenu dangereux ou nuisible. -
Jailbreak (
system.ai.block_jailbreak): bloque les tentatives d’injection d’instructions et de jailbreak (requêtes uniquement). -
Hallucination (
system.ai.block_hallucination) : refuse les réponses hallucinées (réponses uniquement).
Associez le garde-fou de contenu dangereux à votre service de modèle :
- Dans la barre latérale de l’espace de travail, cliquez sur AI Gateway.
- Sous l’onglet Modèles , sélectionnez votre service de modèle (
main.default.team_chat). - Ouvrez l’onglet Stratégies , puis cliquez sur Nouvelle stratégie.
- Entrez un nom, tel que
block-unsafe-content. - Sous Appliqué à, conservez Tous les utilisateurs de compte ou limitez la stratégie à des principaux spécifiques.
- En mode Glissière de sécurité, sélectionnez Contenu Dangereux.
- Définissez le classement sur
1. Le rang définit l’ordre d’évaluation : le rang le plus bas s’exécute en premier lors de la requête et en dernier lors de la réponse. - Sous Phase, sélectionnez à la fois les garde-fous d’entrée (avant le modèle) et les garde-fous de sortie (après le modèle), de sorte que le garde-fou s’exécute sur les demandes et les réponses.
- Cliquez sur Créer une stratégie.
Le garde-fou utilise un Service de modèles d’évaluation présélectionné (l'évaluateur LLM qui effectue la vérification). Pour utiliser un autre modèle, développez les options avancées avant de créer la stratégie ; vous avez besoin CAN_QUERY sur le modèle que vous sélectionnez.
Note
Après avoir attaché ou modifié une stratégie sur un service de modèle, laissez un court délai pour que la modification prenne effet avant le test. Pendant la bêta des politiques de service, cela peut prendre quelques minutes pour se propager.
Étape 2 : Ajouter une stratégie de requête personnalisée
Les garde-fous couvrent les risques courants. Pour une règle spécifique à votre organisation, écrivez une stratégie personnalisée. Une stratégie personnalisée est une fonction SQL définie par l’utilisateur (UDF) qui prend (event VARIANT) et renvoie une décision; lit le texte du message à partir de event:context.message, une projection indépendante de l’API du dernier message de l’utilisateur ou de l’assistant.
Cette stratégie refuse toute demande qui mentionne un nom de code de projet confidentiel. La event:type::string = 'request' vérification la confine à la phase d’entrée (SUR APPEL) :
CREATE OR REPLACE FUNCTION main.governance.block_confidential_codename(
event VARIANT
)
RETURNS VARIANT
LANGUAGE SQL
RETURN
CASE
WHEN event:type::string = 'request'
AND contains(lower(event:context.message::string), 'project aurora')
THEN to_variant_object(named_struct('result', 'DENY', 'reason', 'Requests about confidential projects are not permitted.'))
ELSE to_variant_object(named_struct('result', 'ALLOW', 'reason', ''))
END;
contains et lower font partie du sous-ensemble SQL pris en charge dans les corps de stratégie. Pour obtenir la liste complète et les règles d’écriture d’une fonction de stratégie, consultez la référence de la fonction de stratégie de service.
Attachez la fonction en tant que stratégie personnalisée, délimitée à la phase de requête :
- Sous l’onglet Stratégies du service de modèle, cliquez sur Nouvelle stratégie et entrez un nom, tel que
block-codename. - Dans le type de garde-fou, sélectionnez Personnalisé.
- Cliquez sur Fonction personnalisée, puis Sélectionnez la fonction, puis sélectionnez
main.governance.block_confidential_codename. - Sous Phase, sélectionnez uniquement les garde-fous d’entrée (avant le modèle), car il s’agit d’une stratégie de requête.
- Définissez Rank sur
10, puis cliquez sur Créer une stratégie.
Étape 3 : Ajouter une stratégie de réponse personnalisée
Un modèle peut également retourner du contenu que vous ne souhaitez pas transmettre. Cette stratégie refuse une réponse qui contient un lien non sécurisé (UNE http:// URL ou un javascript: URI). Le event:type::string = 'response' contrôle le limite à la phase de sortie (ON RESULT), de sorte qu’un utilisateur qui se contente de mentionner ces schémas dans un prompt ne le déclenche pas à l’entrée :
CREATE OR REPLACE FUNCTION main.governance.block_unsafe_links(
event VARIANT
)
RETURNS VARIANT
LANGUAGE SQL
RETURN
CASE
WHEN event:type::string = 'response'
AND (contains(lower(event:context.message::string), 'http://')
OR contains(lower(event:context.message::string), 'javascript:'))
THEN to_variant_object(named_struct('result', 'DENY', 'reason', 'Response contained an insecure link and was blocked by policy.'))
ELSE to_variant_object(named_struct('result', 'ALLOW', 'reason', ''))
END;
Attachez la fonction en tant que stratégie personnalisée, délimitée à la phase de réponse :
- Sous l’onglet Stratégies , cliquez sur Nouvelle stratégie et entrez un nom, par
block-unsafe-linksexemple . - Dans le type de garde-fou, sélectionnez Personnalisé, puis
main.governance.block_unsafe_linkssous Fonction personnalisée. - Sous Phase, sélectionnez uniquement les garde-fous de sortie (après le modèle), car il s’agit d’une stratégie de réponse.
- Définissez Rank sur
20, puis cliquez sur Créer une stratégie.
Étape 4 : Vérifier
Les trois stratégies s’affichent désormais sous l’onglet Stratégies du service. Utilisez le terrain de jeu pour confirmer chaque incendie :
- Dans la page du service de modèles, cliquez sur Chat dans le playground.
- Envoyez une invite qui demande du contenu dangereux ou nuisible. La barrière contre le contenu non sécurisé la bloque, et la réponse rapporte que le contenu a été bloqué par la politique.
- Envoi
Tell me about Project Aurora.La politique de requête la bloque pour la raison suivante : Les demandes concernant des projets confidentiels ne sont pas autorisées. - Envoyez une requête qui amène le modèle à renvoyer un lien
http://. La politique de réponse la bloque lors de la phase de sortie (SUR RÉSULTAT) en expliquant pourquoi la réponse contenait un lien non sécurisé et était bloquée par la politique. - Envoyez une invite ordinaire. Elle se termine normalement.
Pour tester le service à partir de vos propres applications ou scripts, voir Requêtes des API de modèles (services modèles).
Nettoyage
Lorsque vous avez terminé, supprimez les stratégies sous l’onglet Stratégies : ouvrez chaque stratégie que vous avez créée et supprimez-la. Ensuite, supprimez éventuellement les fonctions personnalisées :
DROP FUNCTION IF EXISTS main.governance.block_confidential_codename;
DROP FUNCTION IF EXISTS main.governance.block_unsafe_links;