En esta página se describe en detalle cómo sanear las peticiones y las respuestas. Model Armor ofrece un conjunto de filtros para proteger tus aplicaciones de IA. Model Armor comprueba las peticiones y las respuestas para determinar los niveles de confianza de detección configurados.
Antes de empezar
Crea una plantilla siguiendo las instrucciones de Crear plantillas.
Obtener los permisos necesarios
Para obtener los permisos que necesitas para desinfectar peticiones y respuestas, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos en Model Armor:
-
Usuario de Model Armor (
roles/modelarmor.user
) -
Lector de Model Armor (
roles/modelarmor.viewer
)
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Habilitar APIs
Para usar Model Armor, primero debes habilitar sus APIs.
Consola
Enable the Model Armor API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.Selecciona el proyecto en el que quieras activar Model Armor.
gcloud
Antes de empezar, sigue estos pasos con la CLI de Google Cloud y la API Model Armor:
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Ejecuta el siguiente comando para definir el endpoint de la API del servicio Model Armor.
gcloud config set api_endpoint_overrides/modelarmor "https://modelarmor.LOCATION.rep.googleapis.com/"
Sustituye
LOCATION
por la región en la que quieras usar Model Armor.SDP_PROJECT_ID
: el ID del proyecto al que pertenece la plantilla avanzada de Protección de Datos Sensibles.PROJECT_NUMBER
: el número del proyecto al que pertenece la plantilla.PROJECT_ID
: el ID del proyecto de la plantilla.LOCATION
: la ubicación de la plantilla.TEMPLATE_ID
: el ID de la plantilla.PROJECT_ID
: el ID del proyecto de la plantilla.LOCATION
: la ubicación de la plantilla.TEMPLATE_ID
: el ID de la plantilla.PROJECT_ID
: el ID del proyecto al que pertenece la plantilla.LOCATION
: la ubicación de la plantilla.TEMPLATE_ID
: el ID de la plantilla.FILE_TYPE
: el formato del archivo de entrada.CREDIT_CARD_NUMBER
: el número de una tarjeta de crédito tiene entre 12 y 19 dígitos. Se usa para hacer pagos en todo el mundo.FINANCIAL_ACCOUNT_NUMBER
: número que hace referencia a una cuenta financiera específica, como un número de cuenta bancaria o un número de cuenta de jubilación.GCP_CREDENTIALS
: Google Cloud credenciales de la cuenta de servicio. Credenciales que se pueden usar para autenticarse en {api_client_lib_name} y en cuentas de servicio.GCP_API_KEY
: Google Cloud clave de API. Cadena encriptada que se utiliza cuando se hace una llamada a las APIs de Google Cloud que no necesitan acceder a datos de usuario privados.PASSWORD
: contraseñas sin cifrar incluidas en configuraciones, código y otro texto.US_SOCIAL_SECURITY_NUMBER
: El número de la seguridad social (NSS) de Estados Unidos es una cifra de 9 dígitos que se asigna a los ciudadanos de ese país y a las personas con residencia permanente o temporal en él. Este detector no localizará los números que contengan solo ceros en algún grupo de dígitos (000-##-####, ###-00-#### o ###-##-0000), que contengan 666 en el primer grupo de dígitos ni números cuyo primer dígito sea 9.US_INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER
: El número de identificación personal del contribuyente (ITIN) de Estados Unidos es un tipo de número de identificación fiscal (TIN) emitido por el servicio de impuestos internos (IRS). Se utiliza en la tramitación de impuestos y solo está disponible para determinados extranjeros no residentes y residentes, sus cónyuges y las personas que dependan de ellos que no puedan obtener un número de la seguridad social (NSS).TEMPLATE_ID
: el ID de la plantilla.LOCATION
: la ubicación de la plantilla.PROJECT_ID
: el ID del proyecto al que pertenece la plantilla.LOCATION
: la ubicación de la plantilla.TEMPLATE_ID
: el ID de la plantilla.PROJECT_ID
: el ID del proyecto al que pertenece la plantilla.LOCATION
: la ubicación de la plantilla.TEMPLATE_ID
: el ID de la plantilla.TEMPLATE_ID
: el ID de la plantilla.LOCATION
: la ubicación de la plantilla.PROJECT_ID
: el ID del proyecto al que pertenece la plantilla.LOCATION
: la ubicación de la plantilla.TEMPLATE_ID
: el ID de la plantilla.PROJECT_ID
: el ID del proyecto al que pertenece la plantilla.LOCATION
: la ubicación de la plantilla.TEMPLATE_ID
: el ID de la plantilla.PROJECT_ID
: el ID del proyecto al que pertenece la plantilla.LOCATION
: la ubicación de la plantilla.TEMPLATE_ID
: el ID de la plantilla.Este ejemplo devuelve la siguiente respuesta:
{ "sanitizationResult": { "filterMatchState": "MATCH_FOUND", "invocationResult": "SUCCESS", "filterResults": { "rai": { "raiFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "MATCH_FOUND", "raiFilterTypeResults": { "dangerous": { "confidenceLevel": "MEDIUM_AND_ABOVE", "matchState": "MATCH_FOUND" }, "sexually_explicit": { "matchState": "NO_MATCH_FOUND" }, "hate_speech": { "matchState": "NO_MATCH_FOUND" }, "harassment": { "matchState": "NO_MATCH_FOUND" } } } }, "pi_and_jailbreak": { "piAndJailbreakFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } }, "csam": { "csamFilterFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } }, "malicious_uris": { "maliciousUriFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } }, } } }
PROJECT_ID
: el ID del proyecto al que pertenece la plantilla.LOCATION
: la ubicación de la plantilla.TEMPLATE_ID
: el ID de la plantilla.- Más información sobre Model Armor
- Consulta información sobre los ajustes mínimos de Model Armor.
- Consulta información sobre las plantillas de Model Armor.
- Solucionar problemas de Model Armor
Ejecuta el siguiente comando para habilitar Model Armor.
gcloud services enable modelarmor.googleapis.com --project=PROJECT_ID
Sustituye PROJECT_ID
con el ID del proyecto.
En el proyecto que contiene la plantilla de Protección de Datos Sensibles, asigna el
rol Usuario de DLP (roles/dlp.user
)
y el rol Lector de DLP (roles/dlp.reader
)
al agente de servicio creado como parte del paso Protección de Datos Sensibles avanzada de
Crear plantillas.
Sáltese este paso si la plantilla de Protección de Datos Sensibles está en el mismo proyecto que la plantilla de Model Armor.
gcloud projects add-iam-policy-binding SDP_PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-modelarmor.iam.gserviceaccount.com --role=roles/dlp.user gcloud projects add-iam-policy-binding SDP_PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-modelarmor.iam.gserviceaccount.com --role=roles/dlp.reader
Haz los cambios siguientes:
Limpiar peticiones
Sanea las peticiones para evitar entradas maliciosas y ayudar a que se envíen peticiones seguras y adecuadas a tus LLMs.
Peticiones de texto
Model Armor higieniza las peticiones de texto analizando el texto y aplicando diferentes filtros para identificar y mitigar posibles amenazas.
REST
Usa el siguiente comando para anonimizar una petición de texto en Model Armor.
curl -X POST \
-d '{"userPromptData":{"text":"[UNSAFE TEXT]"}}' \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID:sanitizeUserPrompt"
Haz los cambios siguientes:
El resultado es la siguiente respuesta. Ten en cuenta que MATCH_FOUND
está en la categoría Peligroso.
{ "sanitizationResult": { "filterMatchState": "MATCH_FOUND", "invocationResult": "SUCCESS", "filterResults": { "csam": { "csamFilterFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } }, "malicious_uris": { "maliciousUriFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } }, "rai": { "raiFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "MATCH_FOUND", "raiFilterTypeResults": { "sexually_explicit": { "matchState": "NO_MATCH_FOUND" }, "hate_speech": { "matchState": "NO_MATCH_FOUND" }, "harassment": { "matchState": "NO_MATCH_FOUND" }, "dangerous": { "matchState": "MATCH_FOUND" } } } }, "pi_and_jailbreak": { "piAndJailbreakFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "MATCH_FOUND" } }, "sdp": { "sdpFilterResult": { "inspectResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } } } } } }
Go
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Go e instalar el SDK de Model Armor para Go.
Java
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Java e instalar el SDK de Java de Model Armor.
Node.js
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Node.js e instalar el SDK de Node.js de Model Armor.
PHP
Para ejecutar este código, primero debes configurar un entorno de desarrollo de PHP e instalar el SDK de PHP de Model Armor.
Python
Para ejecutar este código, configura un entorno de desarrollo de Python e instala el SDK de Python de Model Armor.
El resultado es la siguiente respuesta.
sanitization_result { filter_match_state: MATCH_FOUND filter_results { key: "rai" value { rai_filter_result { execution_state: EXECUTION_SUCCESS match_state: MATCH_FOUND rai_filter_type_results { key: "dangerous" value { confidence_level: HIGH match_state: MATCH_FOUND } } } } } filter_results { key: "pi_and_jailbreak" value { pi_and_jailbreak_filter_result { execution_state: EXECUTION_SUCCESS match_state: MATCH_FOUND confidence_level: HIGH } } } filter_results { key: "malicious_uris" value { malicious_uri_filter_result { execution_state: EXECUTION_SUCCESS match_state: NO_MATCH_FOUND } } } filter_results { key: "csam" value { csam_filter_filter_result { execution_state: EXECUTION_SUCCESS match_state: NO_MATCH_FOUND } } } invocation_result: SUCCESS }
Sanitizar las peticiones de texto con la detección de varios idiomas habilitada
Para habilitar la detección multilingüe por solicitud, define la marca enableMultiLanguageDetection
en true
para cada solicitud.
También puedes especificar el idioma de origen
para obtener resultados más precisos. Si no se especifica el idioma de origen, se detecta automáticamente para ofrecer asistencia en varios idiomas.
Usa el siguiente comando para sanear una petición de texto en Model Armor con la detección multilingüe habilitada a nivel de solicitud.
curl -X POST \ -d '{"userPromptData":{"text":"[UNSAFE TEXT]"}, "multiLanguageDetectionMetadata": { "enableMultiLanguageDetection": true , "sourceLanguage": "jp"}}' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID:sanitizeUserPrompt"
Haz los cambios siguientes:
Peticiones basadas en archivos
Para anonimizar una petición almacenada en un archivo, proporcione el contenido del archivo en formato base64. Model Armor no detecta automáticamente el tipo de archivo. Debes definir explícitamente el campo byteDataType
para indicar el formato del archivo. Si falta el campo o no se especifica, la solicitud falla. Los valores posibles de byteDataType
son PLAINTEXT_UTF8
, PDF
, WORD_DOCUMENT
, EXCEL_DOCUMENT
, POWERPOINT_DOCUMENT
, TXT
y CSV
.
REST
curl -X POST \ -d "$(jq -n \ --arg data "$(base64 -w 0 -i sample.pdf)" \ '{userPromptData: {byteItem: {byteDataType: "FILE_TYPE", byteData: $data}}}')" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID:sanitizeUserPrompt"
Haz los cambios siguientes:
Go
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Go e instalar el SDK de Model Armor para Go.
Java
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Java e instalar el SDK de Java de Model Armor.
Node.js
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Node.js e instalar el SDK de Node.js de Model Armor.
PHP
Para ejecutar este código, primero debes configurar un entorno de desarrollo de PHP e instalar el SDK de PHP de Model Armor.
Python
Para ejecutar este código, configura un entorno de desarrollo de Python e instala el SDK de Python de Model Armor.
Configuración básica de Protección de Datos Sensibles
Model Armor se integra con Protección de Datos Sensibles para ayudar a evitar la exposición accidental de información privada. Crea una plantilla con los ajustes básicos de Protección de Datos Sensibles habilitados. La versión básica de Protección de Datos Sensibles te ayuda a detectar un conjunto fijo de infoTypes de Protección de Datos Sensibles.
En la petición se analizan los siguientes infoTypes de Protección de Datos Sensibles de todas las regiones:
En las regiones de EE. UU., se analizan los siguientes infoTypes adicionales de Protección de Datos Sensibles en la petición:
A continuación, se muestra un ejemplo de configuración básica de Protección de Datos Sensibles:
gcloud
gcloud model-armor templates create TEMPLATE_ID \ --location=LOCATION \ --project=PROJECT_ID \ --basic-config-filter-enforcement=enabled
Haz los cambios siguientes:
REST
export FILTER_CONFIG_SDP_BASIC='{ "filterConfig": { "sdpSettings": { "basicConfig": { "filterEnforcement": "ENABLED" } } } }' curl -X PATCH \ -d "$FILTER_CONFIG_SDP_BASIC" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID?updateMask=filterConfig.sdpSettings.basicConfig.filterEnforcement"
Haz los cambios siguientes:
Go
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Go e instalar el SDK de Model Armor para Go.
Java
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Java e instalar el SDK de Java de Model Armor.
Node.js
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Node.js e instalar el SDK de Node.js de Model Armor.
PHP
Para ejecutar este código, primero debes configurar un entorno de desarrollo de PHP e instalar el SDK de PHP de Model Armor.
Python
Para ejecutar este código, configura un entorno de desarrollo de Python e instala el SDK de Python de Model Armor.
Usa la plantilla creada para revisar tus peticiones. Veamos un ejemplo:
curl -X POST \ -d '{"userPromptData":{"text":"can you remember my ITIN : ###-##-####"}}' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID:sanitizeUserPrompt"
Haz los cambios siguientes:
Este ejemplo devuelve la siguiente respuesta:
{ "sanitizationResult": { "filterMatchState": "MATCH_FOUND", "invocationResult": "SUCCESS", "filterResults": [ { "csamFilterFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } }, { "sdpFilterResult": { "inspectResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "MATCH_FOUND", "findings": [ { "infoType": "US_INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER", "likelihood": "LIKELY", "location": { "byteRange": { "start": "26", "end": "37" }, "codepointRange": { "start": "26", "end": "37" } } } ] } } } ] } }
Configuración avanzada de Protección de Datos Sensibles
Model Armor analiza las peticiones y las respuestas de los LLMs mediante la configuración avanzada de Protección de Datos Sensibles. De esta forma, puede usar las funciones de Protección de Datos Sensibles más allá de los infoTypes que se ofrecen en la configuración básica de Protección de Datos Sensibles.
Para usar el filtro avanzado de Protección de Datos Sensibles en Model Armor, las plantillas de Protección de Datos Sensibles deben estar en la misma ubicación en la nube que la plantilla de Model Armor.
gcloud
gcloud model-armor templates create TEMPLATE_ID \ --location=LOCATION \ --advanced-config-inspect-template="path/to/template" \
Haz los cambios siguientes:
REST
export FILTER_CONFIG_SDP_ADV='{ "filterConfig": { "sdpSettings": { "advancedConfig": { "deidentifyTemplate": "projects/PROJECT_ID/locations/LOCATION/deidentifyTemplates/deidentify-ip-address", "inspectTemplate": "projects/PROJECT_ID/locations/LOCATION/inspectTemplates/inspect-ip-address" } } } }' curl -X POST \ -d "$FILTER_CONFIG_SDP_ADV" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID?updateMask=filterConfig.sdpSettings.advancedConfig"
Haz los cambios siguientes:
Este ejemplo devuelve la siguiente respuesta:
{ "name": "projects/PROJECT_ID/locations/LOCATION/templates/all-filters-test", "createTime": "2024-12-16T17:08:19.626693819Z", "updateTime": "2024-12-16T17:08:19.626693819Z", "filterConfig": { "sdpSettings": { "advancedConfig": { "deidentifyTemplate": "projects/PROJECT_ID/locations/LOCATION/deidentifyTemplates/deidentify-ip-address", "inspectTemplate": "projects/PROJECT_ID/locations/LOCATION/inspectTemplates/inspect-ip-address" } } } }
Go
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Go e instalar el SDK de Model Armor para Go.
Java
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Java e instalar el SDK de Java de Model Armor.
Node.js
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Node.js e instalar el SDK de Node.js de Model Armor.
PHP
Para ejecutar este código, primero debes configurar un entorno de desarrollo de PHP e instalar el SDK de PHP de Model Armor.
Python
Para ejecutar este código, configura un entorno de desarrollo de Python e instala el SDK de Python de Model Armor.
Usa la plantilla creada para revisar tus peticiones. Veamos un ejemplo:
curl -X POST \ -d '{"userPromptData":{"text":"is there anything malicious running on 1.1.1.1?"}}' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID:sanitizeUserPrompt"
Haz los cambios siguientes:
Este ejemplo devuelve la siguiente respuesta:
{ "sanitizationResult": { "filterMatchState": "MATCH_FOUND", "invocationResult": "SUCCESS", "filterResults": [ { "csamFilterFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } }, { "sdpFilterResult": { "deidentifyResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "MATCH_FOUND", "data": { "text": "is there anything malicious running on [IP_ADDRESS]?" }, "transformedBytes": "7", "infoTypes": ["IP_ADDRESS"] } } } ] } }
Desinfectar la respuesta del modelo
Los LLMs a veces pueden generar respuestas dañinas. Para reducir los riesgos asociados al uso de LLMs en tus aplicaciones, es importante depurar sus respuestas.
A continuación, se muestra un ejemplo de comando para desinfectar una respuesta de un modelo en Model Armor.
REST
curl -X POST \
-d '{"text":"IP address of the current network is ##.##.##.##"}' \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID:sanitizeModelResponse"
Haz los cambios siguientes:
Go
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Go e instalar el SDK de Model Armor para Go.
Java
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Java e instalar el SDK de Java de Model Armor.
Node.js
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Node.js e instalar el SDK de Node.js de Model Armor.
PHP
Para ejecutar este código, primero debes configurar un entorno de desarrollo de PHP e instalar el SDK de PHP de Model Armor.
Python
Para ejecutar este código, configura un entorno de desarrollo de Python e instala el SDK de Python de Model Armor.
Desinfectar la respuesta del modelo con la detección multilingüe habilitada
Habilita la detección multilingüe por solicitud configurando la marca enableMultiLanguageDetection
en true
para cada respuesta individual.
También puedes especificar el idioma de origen para obtener resultados más precisos. Si no se especifica el idioma de origen, se detecta automáticamente para ofrecer asistencia en varios idiomas.
curl -X POST \ -d '{"userPromptData":{"text":"[UNSAFE TEXT]"}, "multiLanguageDetectionMetadata": { "enableMultiLanguageDetection": true , "sourceLanguage": "jp"}}' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID:sanitizeModelResponse"
Haz los cambios siguientes:
Siguientes pasos
A menos que se indique lo contrario, el contenido de esta página está sujeto a la licencia Reconocimiento 4.0 de Creative Commons y las muestras de código están sujetas a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio web de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-09-10 (UTC).