Model Armor filtre les images autonomes et les images intégrées dans les documents en texte enrichi compatibles dans les prompts et les réponses pour protéger vos applications d'IA générative contre les risques intégrés aux images.
Model Armor filtre les images à l'aide des méthodes suivantes :
- Analyse visuelle : analyse le contenu visuel des images pour détecter les objets et les sujets sensibles à l'aide du filtre avancé de Sensitive Data Protection. Pour en savoir plus, consultez les sections infoTypes d'objets et infoTypes de contexte d'image.
- Reconnaissance optique des caractères (OCR) : extrait le texte des images et le filtre en fonction des filtres configurés, y compris les catégories de sécurité de l'IA responsable, la détection des injections de prompt et du jailbreaking, les URL malveillantes et les infoTypes de Sensitive Data Protection.
Spécifications et limites
Tenez compte des spécifications et limites suivantes lorsque vous utilisez Model Armor pour filtrer des images :
- Formats d'image compatibles : Model Armor examine les images autonomes aux formats JPEG, PNG et BMP. Il extrait et analyse également les images intégrées dans les fichiers de texte enrichi compatibles.
- Limites de taille : chaque image autonome doit faire 4 Mo ou moins. La taille totale des fichiers texte enrichi ne doit pas dépasser 4 Mo, et ils ne doivent pas contenir plus de cinq images intégrées. Le dépassement de l'une de ces limites entraîne l'omission de l'analyse de l'intégralité du fichier par Model Armor. Pour en savoir plus, consultez Limite de taille de fichier du système et Analyser les images intégrées dans les documents.
- Prompts autonomes : lorsque vous appelez les méthodes
SanitizeUserPromptetSanitizeModelResponseavec des images autonomes, Model Armor filtre une seule image par requête. Le filtrage de plusieurs images autonomes dans une seule requête n'est pas possible. De plus, Model Armor n'est pas compatible avec les requêtes autonomes qui combinent du texte et des images dans une même requête. Toutefois, vous pouvez filtrer les documents en texte enrichi contenant à la fois du texte et des images en activant les modalités de texte et d'image. - Anonymisation : lorsque vous configurez un modèle d'anonymisation Sensitive Data Protection, Model Armor masque soit du texte, soit des images autonomes, mais pas les deux. L'anonymisation n'est pas compatible avec les documents en texte enrichi lorsque la modalité d'image (
MODALITY_IMAGE) est sélectionnée. Pour en savoir plus, consultez Masquer les données sensibles dans des images autonomes et Examiner les images intégrées dans des documents. - Streaming : les méthodes de streaming de Model Armor n'acceptent que les entrées textuelles et n'acceptent pas les images ni les fichiers.
- Intégrations compatibles : vous pouvez filtrer les images en appelant l'API REST Model Armor directement ou via l'intégration Gemini Enterprise. Toutes les autres intégrations Model Armor n'analysent et ne nettoient que le texte. Pour en savoir plus, consultez Modalités compatibles.
- Disponibilité régionale : la sélection d'images n'est disponible que dans certains emplacements multirégionaux. Si vous envoyez une requête contenant une image à un point de terminaison où Model Armor ne prend pas en charge le filtrage des images, le champ
invocationResultde la réponse indiqueFAILURE. Pour obtenir la liste des emplacements compatibles avec la sélection d'images, consultez Fonctionnalités compatibles par région.
Calcul des jetons et tarification pour les images
Model Armor utilise un modèle de tarification unifié basé sur les jetons, où les jetons d'image sont facturés au même tarif que les jetons de texte.
Vous n'êtes pas facturé lorsque Model Armor rejette ou ignore une entrée avant le traitement du filtre, par exemple les entrées vides, ou les fichiers et images qui dépassent les limites de taille de fichier ou d'image intégrée. Toutefois, si une entrée passe la validation initiale, les jetons calculés vous sont facturés, même dans les cas suivants :
- Tous les détecteurs sont ignorés : certains ou tous les filtres (détecteurs) configurés sont ignorés et renvoient
EXECUTION_SKIPPED(par exemple, lorsqu'une charge utile d'image dans la limite de 4 Mo ne peut pas être analysée par les détecteurs, ou lorsqu'un filtre est ignoré pour une modalité). - Fichiers non image encapsulés avec le type de données d'octet
IMAGE: un fichier non image (tel qu'un document ZIP, CSV ou Microsoft Word) est envoyé avecbyteDataTypedéfini surIMAGE(jusqu'à 4 Mo). Model Armor facture la requête à l'aide du calcul de jeton d'image autonome, même si les filtres renvoientEXECUTION_SKIPPED.
Model Armor calcule les jetons pour les images et les documents en fonction du type d'entrée et des modalités configurées :
Images autonomes : Model Armor convertit chaque image traitée (jusqu'à 4 Mo) en jetons en utilisant un nombre de base de 5 000 jetons par image, plus 1 000 jetons par mégaoctet (Mo) de taille d'image. Lors du calcul des jetons basés sur la taille, Model Armor arrondit la taille de l'image au Mo entier supérieur :
Jetons par image = 5 000 + (1 000 × taille de l'image en Mo, arrondie au Mo supérieur)
Le texte extrait d'une image par OCR est inclus dans le calcul des jetons d'image et n'entraîne pas de frais distincts pour les jetons de texte.
Documents en texte enrichi : le calcul des jetons dépend des modalités configurées dans votre modèle :
- Modalité de texte (
MODALITY_TEXT) : Model Armor calcule les jetons à partir du texte extrait du document (environ quatre caractères par jeton). Les images intégrées ne sont ni extraites, ni facturées. - Modalité d'image (
MODALITY_IMAGE) : Model Armor calcule les jetons individuellement pour chaque image intégrée traitée à l'aide de la formule de jeton d'image. Le texte du document n'est pas facturé. - Modalités de texte et d'image (
MODALITY_TEXTetMODALITY_IMAGE) : Model Armor calcule le nombre total de jetons en additionnant les jetons du texte du document extrait et les jetons de chaque image intégrée traitée.
- Modalité de texte (
Le tableau suivant montre des exemples de calcul des jetons par Model Armor pour les images traitées :
| Taille d'image | Taille arrondie pour le calcul | Calcul des jetons | Nombre total de jetons |
|---|---|---|---|
| 500 Ko | 1 Mo | 5 000 + (1 × 1 000) | 6 000 jetons |
| 1,9 Mo | 2 Mo | 5 000 + (2 × 1 000) | 7 000 jetons |
| 4 Mo | 4 Mo | 5 000 + (4 × 1 000) | 9 000 jetons |
Avant de commencer
Avant de filtrer des images, assurez-vous de remplir les conditions préalables suivantes :
Créer ou mettre à jour un modèle avec la modalité d'image activée
Lorsque vous créez ou mettez à jour un modèle, sélectionnez la modalité à inclureMODALITY_IMAGE (Image ou Tout dans la console Google Cloud , ou "modalities": ["MODALITY_IMAGE", "MODALITY_TEXT"] dans templateMetadata lorsque vous utilisez l'API REST). Si vous ne spécifiez pas de modalité, laissez le champ modalities vide ou spécifiez uniquement MODALITY_TEXT. Model Armor n'analyse que le texte et renvoie EXECUTION_SKIPPED pour les filtres qui analysent la modalité ignorée.
Obtenir les autorisations requises
Assurez-vous de disposer des rôles IAM (Identity and Access Management) requis pour nettoyer les requêtes et les réponses (comme roles/modelarmor.user) et, si vous utilisez le mode avancé de Sensitive Data Protection sur plusieurs projets, attribuez les rôles DLP requis à l'agent de service Model Armor. Pour obtenir des instructions, consultez Obtenir les autorisations requises.
Nettoyer des images autonomes
Pour filtrer une image autonome dans une requête utilisateur ou une réponse de modèle, définissez le champ byteDataType sur IMAGE et fournissez l'image encodée en base64 dans un format compatible (JPEG, PNG ou BMP) dans le champ byteData.
Utilisez la commande suivante pour nettoyer une requête contenant une image :
curl -X POST \ -d "$(jq -n \ --arg data "$(base64 -w 0 -i IMAGE)" \ '{userPromptData: {byteItem: {byteDataType: "IMAGE", 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"
Remplacez les éléments suivants :
PROJECT_ID: ID du projet contenant le modèle.LOCATION: emplacement du modèle.TEMPLATE_ID: ID d'un modèle configuré pour analyser les images (MODALITY_IMAGE).IMAGE: chemin d'accès au fichier image dans un format compatible.
La réponse est semblable à ce qui suit :
{ "sanitizationResult": { "filterMatchState": "MATCH_FOUND", "invocationResult": "SUCCESS", "filterResults": { "csam": { "csamFilterFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } }, "pi_and_jailbreak": { "piAndJailbreakFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "MATCH_FOUND", "confidenceLevel": "HIGH" } }, "sdp": { "sdpFilterResult": { "inspectResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "MATCH_FOUND" } } } } } }
Masquer les données sensibles dans des images autonomes
Lorsque vous utilisez le mode avancé de Sensitive Data Protection, Model Armor masque les résultats sensibles dans les images autonomes si vous configurez votre modèle Model Armor avec un modèle d'inspection Sensitive Data Protection et un modèle d'anonymisation Sensitive Data Protection. Assurez-vous de configurer l'occultation d'images dans le modèle d'anonymisation. Pour en savoir plus sur la configuration de Sensitive Data Protection dans Model Armor, consultez Définir les paramètres de Sensitive Data Protection. Pour en savoir plus sur les limites de l'anonymisation, consultez Spécifications et limites et Filtrer les images intégrées dans les documents.
L'exemple suivant montre la configuration du filtre avec l'occultation de Sensitive Data Protection activée :
{ "filterConfig": { "sdpSettings": { "advancedConfig": { "inspectTemplate": "projects/PROJECT_ID/locations/LOCATION/inspectTemplates/INSPECT_TEMPLATE_ID", "deidentifyTemplate": "projects/PROJECT_ID/locations/LOCATION/deidentifyTemplates/DEIDENTIFY_TEMPLATE_ID" } } } }
Remplacez les éléments suivants :
PROJECT_ID: ID du projet contenant les modèles Sensitive Data Protection.LOCATION: emplacement des modèles.INSPECT_TEMPLATE_ID: ID du modèle d'inspection.DEIDENTIFY_TEMPLATE_ID: ID du modèle d'anonymisation.
Lorsque vous nettoyez une image autonome à l'aide d'un modèle pour lequel l'occultation d'image est activée, la réponse inclut l'image occultée et les coordonnées du cadre de délimitation pour chaque résultat :
{ "sanitizationResult": { "filterMatchState": "MATCH_FOUND", "invocationResult": "SUCCESS", "filterResults": { "csam": { "csamFilterFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } }, "sdp": { "sdpFilterResult": { "redactResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "MATCH_FOUND", "redactedImage": "[REDACTED_IMAGE]", "findings": [ { "infoType": "EMAIL_ADDRESS", "likelihood": "LIKELY", "location": { "contentLocations": [ { "imageFindingLocation": { "boundingBoxes": { "top": 16, "left": 121, "width": 620, "height": 90 } } } ] } } ] } } } } } }
Filtrer les images intégrées dans les documents
Lorsque vous activez la modalité d'image (MODALITY_IMAGE) dans votre modèle et que vous nettoyez un document en texte enrichi (PDF, WORD_DOCUMENT, EXCEL_DOCUMENT ou POWERPOINT_DOCUMENT), Model Armor extrait et analyse automatiquement jusqu'à cinq images intégrées dans le document. Si vous activez à la fois MODALITY_TEXT et MODALITY_IMAGE, Model Armor filtre à la fois le texte du document et les images intégrées.
Que vous activiez uniquement MODALITY_IMAGE ou à la fois MODALITY_IMAGE et MODALITY_TEXT, Model Armor ignore l'analyse de l'intégralité du document, y compris le texte et les images intégrées, sans analyse partielle. Elle renvoie EXECUTION_SKIPPED pour tous les filtres configurés, y compris l'inspection, et un filterMatchState global de NO_MATCH_FOUND dans les cas suivants :
- Le document dépasse la limite de taille de fichier de 4 Mo ou la limite de 5 images.
- Un modèle d'anonymisation Sensitive Data Protection est configuré. Pour inspecter des documents en texte enrichi lorsque la modalité d'image est activée, configurez uniquement un modèle d'inspection sans modèle d'anonymisation.
Pour obtenir des exemples de code montrant comment envoyer des requêtes basées sur des fichiers à l'aide de REST et des bibliothèques clientes, consultez Requêtes basées sur des fichiers.
Inspection partielle des fichiers
Model Armor ne renvoie un résultat partiel (invocationResult:
PARTIAL) qu'au niveau du filtre (détecteur) pour l'ensemble du fichier, et non par image :
- Échec par image (fichier entier ignoré) : si certaines images intégrées dans un fichier sont analysées avec succès, mais qu'une ou plusieurs autres images du fichier ne peuvent pas être extraites ou analysées, Model Armor ignore l'intégralité du fichier. Elle renvoie
executionState: EXECUTION_SKIPPEDpour tous les filtres configurés et unfilterMatchStateglobal deNO_MATCH_FOUND. - Échec au niveau du détecteur (résultat partiel) : si certains filtres configurés réussissent sur l'ensemble du fichier, tandis qu'un ou plusieurs autres filtres sont ignorés pour l'ensemble du fichier (par exemple, en raison d'un délai avant expiration du détecteur), Model Armor renvoie un résultat partiel avec les champs suivants :
- Résultat de l'appel : le champ
invocationResultest défini surPARTIAL(au lieu deSUCCESS), ce qui indique qu'un ou plusieurs filtres configurés ont été ignorés pour le fichier, tandis que d'autres filtres ont terminé l'inspection. - État d'exécution du filtre : filtres ignorés pour le rapport sur les fichiers
executionState: EXECUTION_SKIPPED. Filtres ayant terminé l'inspection dans le rapport sur les fichiersexecutionState: EXECUTION_SUCCESS. - État de correspondance : le champ
filterMatchStatereflète les résultats des filtres qui ont terminé l'inspection. Si un filtre terminé détecte un cas de non-conformité,filterMatchStateest défini surMATCH_FOUND. Si aucune infraction n'est détectée par les filtres terminés,filterMatchStateest défini surNO_MATCH_FOUND.
- Résultat de l'appel : le champ
Considérations de sécurité liées à l'inspection partielle
Du point de vue de la sécurité, une valeur invocationResult de PARTIAL indique qu'un ou plusieurs filtres configurés n'ont pas pu évaluer le fichier. Les menaces de sécurité potentielles ou les cas de non-respect des règles ciblés par les filtres ignorés peuvent toujours être présents dans le fichier.
Par défaut, si les filtres qui ont terminé l'inspection ne détectent aucun non-respect des règles, filterMatchState est défini sur NO_MATCH_FOUND. Si votre application nécessite que tous les filtres configurés terminent l'inspection avant d'autoriser les requêtes à atteindre un modèle d'IA, inspectez le champ invocationResult dans la réponse. Si la valeur est PARTIAL, configurez la logique de votre application pour qu'elle gère la requête en fonction de la tolérance au risque de votre organisation, par exemple en rejetant la requête ou en la redirigeant pour un examen secondaire.
Exemple de réponse d'inspection partielle
L'exemple suivant montre une réponse dans laquelle le filtre de contenus d'abus sexuels sur mineurs a été ignoré pour le fichier, tandis que les autres filtres configurés ont terminé l'inspection. Model Armor renvoie un invocationResult de PARTIAL, un état EXECUTION_SKIPPED pour le filtre CSAM et EXECUTION_SUCCESS pour les autres filtres :
{ "sanitizationResult": { "filterMatchState": "NO_MATCH_FOUND", "invocationResult": "PARTIAL", "filterResults": { "csam": { "csamFilterFilterResult": { "executionState": "EXECUTION_SKIPPED", "matchState": "NO_MATCH_FOUND" } }, "pi_and_jailbreak": { "piAndJailbreakFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } }, "sdp": { "sdpFilterResult": { "inspectResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } } } } } }
Étapes suivantes
- Créer et gérer des modèles Model Armor
- Nettoyer les prompts et les réponses
- Vérifiez la disponibilité des fonctionnalités par région.
- Passez en revue les quotas et limites du système.