Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
Las políticas de servicio están en Beta. Unity AI Gateway está generalmente disponible, pero sus capacidades beta están habilitadas por separado. Un administrador de cuenta debe activar las funciones beta de Unity AI Gateway desde la página de vistas previas de la consola de cuentas. Consulte Administrar versiones preliminares de Azure Databricks.
Este tutorial explica cómo añadir barreras de seguridad a un Servicio de Modelo, de dos maneras complementarias. En Azure Databricks, las políticas de servicio actúan como mecanismos de protección. Un servicio de modelo puede servir de interfaz para un modelo hospedado en Azure Databricks o para un proveedor externo, como OpenAI, Anthropic o Google, y puedes gobernar ambos de la misma manera:
- Directivas de servicio integradas (límites de protección): comprobaciones administradas, proporcionadas por Azure Databricks para riesgos comunes, como PII, contenido no seguro, intentos de jailbreak y alucinaciones. Para adjuntar uno, selecciónelo en la interfaz de usuario, sin código que escribir.
- Directivas de servicio personalizadas: funciones SQL que escribe para reglas específicas de su organización, como un nombre de código de proyecto confidencial o un patrón de respuesta prohibida.
Para conocer los conceptos de las directivas de servicio, los mecanismos de protección integrados y la referencia completa para la creación, consulte Directivas de servicio para recursos protegibles de IA, Crear y asociar una directiva de servicio y la referencia de funciones de directivas de servicio.
Se adjuntan de la misma manera, desde la pestaña Directivas de un servicio de modelo en la interfaz de usuario de Unity AI Gateway y se pueden mezclar. Azure Databricks evalúa cada uno en dos puntos:
- La fase de entrada (ON CALL) antes de que invoque el modelo.
- La fase de salida (ON RESULT) después de que el modelo haya respondido.
En la interfaz de usuario, seleccione la fase al adjuntar la directiva. Una directiva personalizada también puede limitarse a una sola fase mediante una ramificación en event:type.
Escenario: El equipo expone un LLM a través de un servicio de modelos (main.default.team_chat) al que llaman las aplicaciones y los agentes. Quieres bloquear contenido inseguro o dañino con una barrera controlada, bloquear cualquier prompt que mencione un proyecto confidencial y bloquear respuestas que contengan un enlace inseguro, todo ello sin cambiar el código de la aplicación.
Al final de este tutorial, habrás:
- Una barrera de protección integrada contra contenido inseguro en el servicio.
- Una política de solicitudes personalizada que bloquea un nombre en clave confidencial en la fase de entrada (ON CALL).
- Una política de respuesta personalizada que bloquea enlaces inseguros en la fase de salida (ON RESULT).
- Los tres están asociados y verificados desde el entorno de pruebas del servicio de modelos.
Prerequisites
- Un área de trabajo habilitada para el catálogo de Unity. Consulte Introducción al catálogo de Unity.
- Las funciones beta de Unity AI Gateway están habilitadas para tu cuenta, lo que activa las políticas de servicio y las demás capacidades beta de Unity AI Gateway. Consulte Administrar versiones preliminares de Azure Databricks.
- Un servicio de modelos para administrar, y
EXECUTEen él para que puedas realizar pruebas. Para crear uno, consulte Crear y gestionar APIs de modelo (servicios modelo). En este tutorial se usamain.default.team_chat. -
MANAGEen el servicio de modelos, para asociar directivas. -
CREATE FUNCTIONen el esquema donde se crean las funciones de directiva personalizadas (main.governanceen este tutorial). - Para el límite de protección integrado: el modelo de evaluador que ejecuta la comprobación del límite de protección (el juez LLM) está preseleccionado, por lo que no se necesita ninguna configuración. Si selecciona un evaluador diferente en Opciones avanzadas, necesita
CAN_QUERYen él.
Paso 1: Aplicar una medida de protección integrada
Las medidas de seguridad integradas son comprobaciones administradas por LLM-judge. Selecciona una opción en el menú Tipo de barrera de protección; el servicio del modelo evaluador que ejecuta la comprobación (el LLM que actúa como juez) ya está preseleccionado para ti. Los mecanismos de protección disponibles son:
-
Contenido no seguro (
system.ai.block_unsafe_content): deniega contenido no seguro o dañino. -
Jailbreak (
system.ai.block_jailbreak): bloquea la inyección de prompts y los intentos de jailbreak (solo solicitudes). -
Alucinación (
system.ai.block_hallucination): deniega respuestas alucinadas (solo respuestas).
Añade la protección contra contenido no seguro a tu servicio de modelo:
- En la barra lateral del área de trabajo, haga clic en AI Gateway.
- En la pestaña Modelos , seleccione el servicio de modelo (
main.default.team_chat). - Abra la pestaña Directivas y haga clic en Nueva directiva.
- Escriba un nombre, como
block-unsafe-content. - En Aplicado a, mantén Todos los usuarios de la cuenta o limita el alcance de la directiva a entidades específicas.
- En el tipo Guardrail, selecciona Contenido Inseguro.
- Establezca Rank en
1. Rank establece el orden de evaluación: el rango más bajo se aplica primero en la solicitud y al final en la respuesta. - En Fase, seleccione ambas protecciones de entrada (antes del modelo) y protecciones de salida (después del modelo), para que la protección se aplique a las solicitudes y las respuestas.
- Haga clic en Crear directiva.
La medida de seguridad utiliza un servicio de modelo evaluador preseleccionado (el LLM-judge que ejecuta la comprobación). Para usar otro modelo, expanda Opciones avanzadas antes de crear la directiva; necesita CAN_QUERY en el modelo que seleccione.
Note
Después de adjuntar o cambiar una directiva en un servicio de modelo, espere un breve tiempo para que el cambio surta efecto antes de realizar las pruebas. Durante la beta de políticas de servicio, puede tardar un par de minutos en propagarse.
Paso 2: Agregar una directiva de solicitud personalizada
Los límites de protección cubren los riesgos comunes. Para una regla específica de la organización, escriba una directiva personalizada. Una directiva personalizada es una función definida por el usuario (UDF) de SQL que toma (event VARIANT) y devuelve una decisión; lee el texto del mensaje de event:context.message, una proyección independiente de la API del último mensaje del usuario o del asistente.
Esta directiva deniega cualquier solicitud que mencione un nombre de código de proyecto confidencial. La comprobación event:type::string = 'request' la limita a la fase de entrada (ON CALL):
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 y lower forman parte del subconjunto de SQL admitido en los cuerpos de directiva. Para obtener la lista completa y las reglas para escribir una función de directiva, consulte Referencia de la función de directiva de servicio.
Adjunta la función como una política personalizada, con alcance limitado a la fase de solicitud:
- En la pestaña Directivas del servicio de modelo, haga clic en Nueva directiva y escriba un nombre, como
block-codename. - En Tipo de límite de protección, seleccione Personalizado.
- Haga clic en Función personalizada, después en Seleccionar función y seleccione
main.governance.block_confidential_codename. - En Fase, selecciona únicamente Mecanismos de protección de entrada (antes del modelo), ya que se trata de una directiva de solicitud.
- Establezca Rank en
10y, a continuación, haga clic en Crear directiva.
Paso 3: Agregar una directiva de respuesta personalizada
Un modelo también puede devolver contenido que no deseas que se transmita. Esta directiva deniega una respuesta que contiene un vínculo no seguro (una http:// dirección URL o un javascript: URI). La comprobación event:type::string = 'response' lo limita a la fase de salida (ON RESULT), por lo que un usuario que simplemente mencione esos esquemas en una solicitud no lo activa al entrar:
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;
Adjunta la función como una política personalizada, limitada a la fase de respuesta:
- En la pestaña Directivas , haga clic en Nueva directiva y escriba un nombre, como
block-unsafe-links. - En Tipo de barrera de protección, seleccione Personalizado y, a continuación, seleccione
main.governance.block_unsafe_linksen Función personalizada. - En Fase, seleccione solo Límites de protección de salida (después del modelo), ya que se trata de una directiva de respuesta.
- Establezca Rank en
20y, a continuación, haga clic en Crear directiva.
Paso 4: Comprobar
Las tres directivas aparecen ahora en la pestaña Políticas del servicio. Utiliza el entorno de pruebas para confirmar que cada una se activa:
- En la página del servicio del modelo, haz clic en Chatear en el entorno de pruebas.
- Envía un mensaje que solicite contenido inseguro o dañino. La barrera de contenido inseguro lo bloquea, y la respuesta informa que el contenido fue bloqueado por la política.
- Enviar
Tell me about Project Aurora.La directiva de solicitudes lo bloquea por el siguiente motivo: No se permiten solicitudes sobre proyectos confidenciales. - Envíe un mensaje que haga que el modelo devuelva un
http://vínculo. La política de respuesta lo bloquea en la fase de salida (ON RESULT) por el motivo La respuesta contenía un enlace inseguro y fue bloqueada por la política. - Envíe una instrucción normal. Devuelve una finalización normal.
Para probar el servicio desde tus propias aplicaciones o scripts, consulta Consultar las API de modelo (servicios de modelo).
Limpieza
Cuando haya terminado, quite las directivas de la pestaña Directivas : abra cada directiva que haya creado y elimínela. Después, opcionalmente, quite las funciones personalizadas:
DROP FUNCTION IF EXISTS main.governance.block_confidential_codename;
DROP FUNCTION IF EXISTS main.governance.block_unsafe_links;