En esta página, se describe en detalle cómo sanear las instrucciones y las respuestas. Model Armor ofrece un conjunto de filtros para proteger tus aplicaciones de IA. Model Armor verifica las instrucciones y las respuestas según los niveles de confianza de detección configurados.
Antes de comenzar
Crea una plantilla siguiendo las instrucciones en Cómo crear plantillas.
Obtén los permisos necesarios
Para obtener los permisos que necesitas para sanear instrucciones y respuestas, pídele a tu administrador que te otorgue los siguientes roles de IAM en Model Armor:
-
Usuario de Model Armor (
roles/modelarmor.user
) -
Visualizador de Model Armor (
roles/modelarmor.viewer
)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Habilita las APIs
Debes habilitar las APIs de Model Armor antes de poder usar Model Armor.
Console
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 deseas activar Model Armor.
gcloud
Antes de comenzar, sigue estos pasos con Google Cloud CLI y la API de 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 configurar el extremo de API del servicio Model Armor.
gcloud config set api_endpoint_overrides/modelarmor "https://modelarmor.LOCATION.rep.googleapis.com/"
Reemplaza
LOCATION
por la región en la que deseas usar Model Armor.SDP_PROJECT_ID
: Es el ID del proyecto al que pertenece la plantilla avanzada de Protección de datos sensibles.PROJECT_NUMBER
: Es el número del proyecto al que pertenece la plantilla.PROJECT_ID
: Es el ID del proyecto para la plantilla.LOCATION
: Es la ubicación de la plantilla.TEMPLATE_ID
: Es el ID de la plantilla.PROJECT_ID
: Es el ID del proyecto para la plantilla.LOCATION
: Es la ubicación de la plantilla.TEMPLATE_ID
: Es el ID de la plantilla.PROJECT_ID
: Es el ID del proyecto al que pertenece la plantilla.LOCATION
: Es la ubicación de la plantilla.TEMPLATE_ID
: Es el ID de la plantilla.FILE_TYPE
: Es el formato del archivo de entrada.CREDIT_CARD_NUMBER
: Un número de tarjeta de crédito tiene entre 12 y 19 dígitos. Se usa para transacciones de pago en todo el mundo.FINANCIAL_ACCOUNT_NUMBER
: Es un número que hace referencia a una cuenta financiera específica, por ejemplo, un número de cuenta bancaria o de cuenta de jubilación.GCP_CREDENTIALS
:Credenciales de la cuenta de servicio de Google Cloud Son las credenciales que se pueden usar para la autenticación con {api_client_lib_name} y cuentas de servicio.GCP_API_KEY
: Google Cloud Clave de API. Es una cadena encriptada que se usa cuando se llama a Google Cloud APIs que no requieren acceso a datos privados del usuario.PASSWORD
: Contraseñas en texto no encriptado presentes en las configuraciones, el código y otros textos.US_SOCIAL_SECURITY_NUMBER
: Un número de seguridad social (NSS) de Estados Unidos es un número de 9 dígitos que se emite a los ciudadanos, los residentes permanentes y los residentes temporales de ese país. El detector no mostrará coincidencias de números que solo tengan ceros en alguno de los grupos de dígitos (es decir, 000-##-####, ###-00-#### o ###-##-0000), ni que tengan 666 en el primer grupo de dígitos, ni de números cuyo primer dígito sea 9.US_INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER
: El número de identificación fiscal individual (ITIN) de Estados Unidos es un tipo de número de identificación fiscal (TIN) que emite el Internal Revenue Service (IRS). Es un número de procesamiento fiscal disponible solo para algunos extranjeros residentes y no residentes, sus cónyuges y dependientes que no pueden obtener un número de identificación personal (NSS).TEMPLATE_ID
: Es el ID de la plantilla.LOCATION
: Es la ubicación de la plantilla.PROJECT_ID
: Es el ID del proyecto al que pertenece la plantilla.LOCATION
: Es la ubicación de la plantilla.TEMPLATE_ID
: Es el ID de la plantilla.PROJECT_ID
: Es el ID del proyecto al que pertenece la plantilla.LOCATION
: Es la ubicación de la plantilla.TEMPLATE_ID
: Es el ID de la plantilla.TEMPLATE_ID
: Es el ID de la plantilla.LOCATION
: Es la ubicación de la plantilla.PROJECT_ID
: Es el ID del proyecto al que pertenece la plantilla.LOCATION
: Es la ubicación de la plantilla.TEMPLATE_ID
: Es el ID de la plantilla.PROJECT_ID
: Es el ID del proyecto al que pertenece la plantilla.LOCATION
: Es la ubicación de la plantilla.TEMPLATE_ID
: Es el ID de la plantilla.PROJECT_ID
: Es el ID del proyecto al que pertenece la plantilla.LOCATION
: Es la ubicación de la plantilla.TEMPLATE_ID
: Es 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
: Es el ID del proyecto al que pertenece la plantilla.LOCATION
: Es la ubicación de la plantilla.TEMPLATE_ID
: Es el ID de la plantilla.- Obtén más información sobre Model Armor.
- Obtén más información sobre la configuración de Model Armor Floor.
- Obtén información sobre las plantillas de Model Armor.
- Soluciona problemas de Model Armor.
Ejecuta el siguiente comando para habilitar Model Armor.
gcloud services enable modelarmor.googleapis.com --project=PROJECT_ID
Reemplaza PROJECT_ID
por el ID del proyecto.
En el proyecto que contiene la plantilla de Sensitive Data Protection, otorga el rol de usuario de DLP (roles/dlp.user
) y el rol de lector de DLP (roles/dlp.reader
) al agente de servicio creado como parte del paso de Advanced Sensitive Data Protection de Create templates.
Omite este paso si la plantilla de Sensitive Data Protection se encuentra 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
Reemplaza lo siguiente:
Limpiar instrucciones
Sanea las instrucciones para evitar entradas maliciosas y garantizar que se envíen instrucciones seguras y adecuadas a tus LLMs.
Instrucciones de texto
Model Armor analiza el texto y aplica diferentes filtros para identificar y mitigar posibles amenazas, lo que permite depurar las instrucciones de texto.
REST
Usa el siguiente comando para sanear una instrucció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"
Reemplaza lo siguiente:
Esto genera la siguiente respuesta. Ten en cuenta que MATCH_FOUND
se encuentra 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 configura un entorno de desarrollo de Go y, luego, instala el SDK de Go para Model Armor.
Java
Para ejecutar este código, primero configura un entorno de desarrollo de Java y, luego, instala el SDK de Java para Model Armor.
Node.js
Para ejecutar este código, primero configura un entorno de desarrollo de Node.js y, luego, instala el SDK de Node.js para Model Armor.
PHP
Para ejecutar este código, primero configura un entorno de desarrollo de PHP y, luego, instala el SDK de PHP para Model Armor.
Python
Para ejecutar este código, configura un entorno de desarrollo de Python y instala el SDK de Python de Model Armor.
Esto genera 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 }
Cómo limpiar las instrucciones de texto con la detección en varios idiomas habilitada
Para habilitar la detección de varios idiomas por solicitud, establece la marca enableMultiLanguageDetection
en true
para cada solicitud individual.
De manera opcional, 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 proporcionar asistencia en varios idiomas.
Usa el siguiente comando para sanear una instrucción de texto en Model Armor con la detección multilingüe habilitada a nivel de la 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"
Reemplaza lo siguiente:
Instrucciones basadas en archivos
Para sanear una instrucción almacenada en un archivo, proporciona el contenido del archivo en formato base64. Model Armor no detecta automáticamente el tipo de archivo. Debes configurar de forma explícita 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"
Reemplaza lo siguiente:
Go
Para ejecutar este código, primero configura un entorno de desarrollo de Go y, luego, instala el SDK de Go para Model Armor.
Java
Para ejecutar este código, primero configura un entorno de desarrollo de Java y, luego, instala el SDK de Java para Model Armor.
Node.js
Para ejecutar este código, primero configura un entorno de desarrollo de Node.js y, luego, instala el SDK de Node.js para Model Armor.
PHP
Para ejecutar este código, primero configura un entorno de desarrollo de PHP y, luego, instala el SDK de PHP para Model Armor.
Python
Para ejecutar este código, configura un entorno de desarrollo de Python y instala el SDK de Python de Model Armor.
Configuración básica de la Protección de datos sensibles
Model Armor se integra con la Protección de datos sensibles para ayudar a evitar la exposición accidental de información privada. Crea una plantilla con la configuración básica de Sensitive Data Protection habilitada. La Protección de datos sensibles básica te ayuda a detectar un conjunto fijo de infotipos de Sensitive Data Protection.
En todas las regiones, se analizan los siguientes infotipos de Sensitive Data Protection en la instrucción:
En las regiones de EE.UU., se analizan los siguientes infotipos adicionales de Sensitive Data Protection en la instrucción:
A continuación, se muestra un ejemplo de configuración básica de la Protección de datos sensibles:
gcloud
gcloud model-armor templates create TEMPLATE_ID \ --location=LOCATION \ --project=PROJECT_ID \ --basic-config-filter-enforcement=enabled
Reemplaza lo siguiente:
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"
Reemplaza lo siguiente:
Go
Para ejecutar este código, primero configura un entorno de desarrollo de Go y, luego, instala el SDK de Go para Model Armor.
Java
Para ejecutar este código, primero configura un entorno de desarrollo de Java y, luego, instala el SDK de Java para Model Armor.
Node.js
Para ejecutar este código, primero configura un entorno de desarrollo de Node.js y, luego, instala el SDK de Node.js para Model Armor.
PHP
Para ejecutar este código, primero configura un entorno de desarrollo de PHP y, luego, instala el SDK de PHP para Model Armor.
Python
Para ejecutar este código, configura un entorno de desarrollo de Python y instala el SDK de Python de Model Armor.
Usa la plantilla creada para revisar tus instrucciones. Por 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"
Reemplaza lo siguiente:
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 la Protección de datos sensibles
Model Armor analiza las instrucciones y respuestas del LLM con el parámetro de configuración avanzado de la Protección de datos sensibles. Esto te permite usar las capacidades de la Protección de datos sensibles más allá de los infoTypes que se ofrecen en el parámetro de configuración básico de la Protección de datos sensibles.
Para usar el filtro avanzado de Sensitive Data Protection en Model Armor, las plantillas de Sensitive Data Protection deben estar en la misma ubicación de 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" \
Reemplaza lo siguiente:
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"
Reemplaza lo siguiente:
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 configura un entorno de desarrollo de Go y, luego, instala el SDK de Go para Model Armor.
Java
Para ejecutar este código, primero configura un entorno de desarrollo de Java y, luego, instala el SDK de Java para Model Armor.
Node.js
Para ejecutar este código, primero configura un entorno de desarrollo de Node.js y, luego, instala el SDK de Node.js para Model Armor.
PHP
Para ejecutar este código, primero configura un entorno de desarrollo de PHP y, luego, instala el SDK de PHP para Model Armor.
Python
Para ejecutar este código, configura un entorno de desarrollo de Python y instala el SDK de Python de Model Armor.
Usa la plantilla creada para revisar tus instrucciones. Por 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"
Reemplaza lo siguiente:
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"] } } } ] } }
Limpiar la respuesta del modelo
A veces, los LLMs pueden generar respuestas dañinas. Para reducir los riesgos asociados al uso de LLMs en tus aplicaciones, es importante depurar sus respuestas.
Este es un ejemplo de un comando para sanear una respuesta del 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"
Reemplaza lo siguiente:
Go
Para ejecutar este código, primero configura un entorno de desarrollo de Go y, luego, instala el SDK de Go para Model Armor.
Java
Para ejecutar este código, primero configura un entorno de desarrollo de Java y, luego, instala el SDK de Java para Model Armor.
Node.js
Para ejecutar este código, primero configura un entorno de desarrollo de Node.js y, luego, instala el SDK de Node.js para Model Armor.
PHP
Para ejecutar este código, primero configura un entorno de desarrollo de PHP y, luego, instala el SDK de PHP para Model Armor.
Python
Para ejecutar este código, configura un entorno de desarrollo de Python y instala el SDK de Python de Model Armor.
Cómo sanitizar la respuesta del modelo con la detección en varios idiomas habilitada
Para habilitar la detección en varios idiomas por solicitud, configura la marca enableMultiLanguageDetection
en true
para cada respuesta individual.
De manera opcional, 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 proporcionar 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"
Reemplaza lo siguiente:
¿Qué sigue?
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-09-10 (UTC)