Définir la version du filtre

Ce document explique comment fonctionnent les versions de filtre Model Armor et comment indiquer à Model Armor d'utiliser une version de filtre ou un alias de version de filtre spécifique dans les opérations.

Model Armor utilise des filtres pour détecter et bloquer les contenus nuisibles, les données sensibles, les URL malveillantes et les attaques par injection de prompt dans les prompts et les réponses des LLM. Pour en savoir plus, consultez Filtres Model Armor.

Les versions de filtre Model Armor assurent la stabilité des charges de travail de production et l'accès aux derniers modèles de détection des menaces. Vous configurez une seule version de filtre au niveau du modèle. Vous ne pouvez pas spécifier de versions différentes pour chaque filtre.

Quand configurer des versions et des alias de filtre

Voici quelques cas d'utilisation courants :

  • Verrouiller le comportement de filtrage déterministe : définissez les modèles sur une version de filtre spécifique pour empêcher les modifications de la logique de détection des menaces dans les systèmes stratégiques.
  • Recevoir des mises à jour de sécurité automatiques : utilisez l'alias Stable pour adopter automatiquement les modèles de détection des menaces mis à jour dès qu'ils sont validés.
  • Tester les fonctionnalités de détection à venir : utilisez l'alias Latest dans les environnements de préproduction pour évaluer les nouvelles règles de filtrage par rapport aux modèles de trafic réels.
  • Activer des cycles de déploiement prévisibles : validez les charges de travail par rapport aux nouvelles versions de filtres avant de mettre à jour manuellement les modèles de production.

Alias de version

Dans un modèle Model Armor, vous pouvez utiliser un alias pour spécifier la version de filtre de votre choix. Un alias représente une étape du cycle de vie de la version. Chaque alias est défini sur la version appropriée au fur et à mesure de la progression du cycle de vie.

Si vous sélectionnez un alias, le modèle utilise la version à laquelle l'alias est défini. Lorsque la version sous-jacente de cet alias est mise à jour (par exemple, lorsqu'une nouvelle version est promue en Stable), les modèles qui utilisent l'alias utilisent automatiquement la nouvelle version. Si vous ne souhaitez pas que la version du filtre change, faites pointer le modèle vers une version de filtre spécifique.

Vous pouvez choisir parmi les alias suivants :

  • Latest : alias avec les derniers modèles et protections, avec des mises à jour fréquentes contre les menaces émergentes. Cet alias propose des objectifs de niveau de service (SLO) standards, mais la stabilité peut varier d'une version à l'autre. Il est adapté aux tests, à la préproduction et aux charges de travail qui privilégient les modèles de détection récents par rapport à un comportement de filtrage cohérent.
  • Stable : alias par défaut pour les versions avec des modèles disponibles. Cet alias fournit une logique de détection fiable et immuable. Il est adapté aux environnements de production et aux charges de travail qui nécessitent un comportement de filtre inchangé. Lorsqu'une nouvelle version devient Stable, la version Stable précédente devient Legacy.
  • Legacy : alias d'une version Stable antérieure qui reste disponible pendant 90 jours après la publication d'une nouvelle version Stable. Vous pouvez migrer vos systèmes de production vers la nouvelle version de Stable à tout moment pendant cette période. Vous ne pouvez pas créer de modèles à l'aide d'une version Legacy.
  • Retired : alias d'une version ayant dépassé le délai de grâce de 90 jours accordé aux anciennes versions et qui n'est plus disponible. Model Armor utilise la version Stable pour nettoyer les appels aux modèles qui utilisent encore une version Retired.

Filtres n'utilisant pas de versions de filtre

Le paramètre de version du filtre n'affecte pas les filtres Sensitive Data Protection ni les filtres d'URL malveillantes.

Cycle de vie des versions

Google Cloud fournit des notifications sur les modifications du cycle de vie des versions, y compris lorsqu'une version devient Legacy et sa date de retrait à venir dans chaque réponse de l'API Sanitize. Vous devez migrer tous les modèles qui utilisent une version Legacy vers Stable ou Latest dans un délai de 90 jours.

L'exemple suivant décrit le cycle de vie des versions :

  1. Version (Latest) : Google publie une nouvelle version de filtre (v2) en tant que Latest.
  2. Promotion (Latest vers Stable) : lorsque Google promeut la version Latest vers Stable (v2 devient Stable), les événements suivants se produisent :
    1. Google déplace la version Stable précédente (v1) vers Legacy.
    2. Une nouvelle version (v3) devient la nouvelle version Latest. Google promeut une version après l'avoir soumise à des tests rigoureux, après avoir constaté une utilisation quotidienne constante et un nombre minimal de problèmes client, ou lorsqu'une protection contre les menaces critiques devient nécessaire.
  3. Retrait (Legacy à Retired) : après qu'une version de filtre est restée à l'état Legacy pendant 90 jours, Google la retire et elle n'est plus disponible.

Chronologie des versions

Le tableau suivant fournit des détails sur les versions de filtres, y compris les alias, les dates de sortie, les dates de retrait et les régions prises en charge.

Version Alias Date de disponibilité Date de retrait Région prise en charge
v1 Legacy

(Stable en asia-northeast3 ; Legacy à partir du 25 septembre 2026 en australia-southeast2)

2025-01-30 2026-12-17

asia-northeast1

asia-northeast3 (Stable)

asia-south1

asia-southeast1

australia-southeast2 (Legacy à partir du 25 septembre 2026)

europe-southwest1

europe-west9

northamerica-northeast2

us

us-central1

us-east4

us-west1

v2 Legacy 2025-06-19 2026-12-17

eu

europe-west1

europe-west2

europe-west3

europe-west4

us-east1

v3 Stable

(Stable à partir du 25 septembre 2026 dans australia-southeast2)

2026-05-25 —

asia-northeast1

asia-south1

asia-southeast1

australia-southeast2 (Stable à partir du 25 septembre 2026)

eu

europe-southwest1

europe-west1

europe-west2

europe-west3

europe-west4

europe-west9

northamerica-northeast2

southamerica-east1

us

us-central1

us-east1

us-east4

us-west1

v4 Latest 2026-09-18 —

asia-northeast1

asia-south1

asia-southeast1

eu

europe-southwest1

europe-west1

europe-west2

europe-west3

europe-west4

europe-west9

northamerica-northeast2

southamerica-east1

us

us-central1

us-east1

us-east4

us-west1

Pour en savoir plus sur les modifications apportées à chaque version, consultez Historique des versions du filtre.

Comportement du modèle

Le comportement du modèle dépend de la version du filtre utilisée et présente les caractéristiques suivantes :

  • Modèles sans version : les modèles sans version spécifiée, qu'ils soient nouveaux ou existants, sont définis par défaut sur la version Stable.
  • Modèles avec les alias Latest ou Stable : ces modèles utilisent automatiquement la version attribuée à ces alias. Par exemple, lorsqu'une nouvelle version de filtre devient la version Stable, les modèles utilisant l'alias Stable passent à la nouvelle version sans qu'il soit nécessaire de modifier le modèle.

  • Modèles utilisant une version spécifique :

    • Si la version correspond à une version Latest ou Stable, le modèle se comporte comme prévu.
    • Si la version correspond à une version Legacy, le modèle se comporte comme prévu lorsqu'il est utilisé pour des opérations de nettoyage pendant une période de 90 jours. Après 90 jours, la version passe à la phase Retired. Pendant cette phase, vous devez migrer vos modèles vers la version Latest ou Stable.

Remplacer la version de filtre par défaut pour les paramètres de prix plancher

Avec les paramètres de plancher, l'intégration de Gemini Enterprise Agent Platform utilise par défaut la version de filtre Stable. Pour remplacer ce paramètre, spécifiez un modèle dans l'appel generateContent au modèle Gemini. Pour ce faire, créez un modèle avec une version ou un alias de filtre spécifique dans la même région que celle où vous prévoyez d'envoyer la requête Gemini.

export TEMPLATE_CONFIG='{
  "filterConfig": {
    "piAndJailbreakFilterSettings": {
      "filterEnforcement": "ENABLED"
    }
  },
  "templateMetadata": {
    "filterVersionSelector": {
      "alias": "FILTER_VERSION_ALIAS"
    }
  }
}'

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d "$TEMPLATE_CONFIG" \
  "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates?template_id=TEMPLATE_ID"

Remplacez les éléments suivants :

  • FILTER_VERSION_ALIAS : alias de la version de filtre de votre choix. Utilisez FILTER_VERSION_ALIAS_STABLE ou FILTER_VERSION_ALIAS_LATEST.
  • PROJECT_ID : ID du projet auquel appartient le modèle.
  • TEMPLATE_ID : ID du modèle à créer.
  • LOCATION : région dans laquelle stocker le modèle Model Armor. Cette région doit être la même que celle où vous prévoyez d'envoyer la requête Gemini. Sinon, Agent Platform reçoit une erreur Template not found. Pour obtenir la liste des régions compatibles avec cette intégration, consultez Intégration à Gemini Enterprise Agent Platform.

Indiquez l'ID du modèle dans l'objet model_armor_config de votre appel Gemini. La configuration de filtre spécifiée dans le modèle s'applique à la place du paramètre de seuil au niveau du projet.

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/gemini-2.5-flash:generateContent" \
  -d '{
  "contents": [
    {
      "role": "user",
      "parts": [
        {
          "text": "Your prompt here"
        }
      ]
    }
  ],
  "model_armor_config": {
    "prompt_template_name": "projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID",
    "response_template_name": "projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID"
  }
}'

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet Google Cloud .
  • REGION : Google Cloud région du point de terminaison Gemini.
  • LOCATION : région où le modèle Model Armor est stocké. Cette région doit être identique à celle spécifiée pour REGION.
  • TEMPLATE_ID : ID du modèle Model Armor.

Configurer une version de filtre pour un modèle

Vous pouvez configurer la version de filtre d'un modèle de deux manières :

  • En utilisant un alias : utilisez des alias dynamiques tels que Stable ou Latest pour que le modèle utilise automatiquement un numéro de version correspondant à votre alias préféré. Cela élimine le besoin de mises à jour manuelles lorsque la version sous-jacente change.
  • En utilisant un numéro de version : utilisez un numéro de version tel que v1 pour vous assurer qu'un modèle est défini sur une version spécifiée, ce qui garantit un comportement fixe et inchangé même lorsque les alias sont mis à jour.

Créer un modèle à l'aide d'un alias de version

Pour créer un modèle à l'aide d'un alias de version spécifique, exécutez la commande suivante :

export TEMPLATE_CONFIG='{
  "filterConfig": {
    "piAndJailbreakFilterSettings": {
      "filterEnforcement": "ENABLED"
    }
  },
  "templateMetadata": {
    "filterVersionSelector": {
      "alias": "FILTER_VERSION_ALIAS"
    }
  }
}'

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d "$TEMPLATE_CONFIG" \
    "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates?template_id=TEMPLATE_ID"

Remplacez les éléments suivants :

  • FILTER_VERSION_ALIAS : l'alias de version de filtre de votre choix. Utilisez FILTER_VERSION_ALIAS_STABLE ou FILTER_VERSION_ALIAS_LATEST.
  • PROJECT_ID : ID du projet auquel appartient le modèle.
  • TEMPLATE_ID : ID du modèle à créer.
  • LOCATION : emplacement du modèle.

La réponse est semblable à ce qui suit :

{
  "name": "projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID",
  "createTime": "2026-04-05T17:57:46.976854398Z",
  "updateTime": "2026-04-05T17:57:46.976854398Z",
  "filterConfig": {
    "piAndJailbreakFilterSettings": {
      "filterEnforcement": "ENABLED"
    }
  },
  "templateMetadata": {
    "filterVersionSelector": {
      "alias": "FILTER_VERSION_ALIAS"
    }
  }
}

Créer un modèle à l'aide d'une version de filtre spécifique

Si vous avez besoin d'une immuabilité des filtres, vous pouvez créer un modèle correspondant à une version spécifique. Pour ce faire, exécutez la commande suivante :

export TEMPLATE_CONFIG='{
  "filterConfig": {
    "piAndJailbreakFilterSettings": {
      "filterEnforcement": "ENABLED"
    }
  },
  "templateMetadata": {
    "filterVersionSelector": {
      "version": "FILTER_VERSION_NUMBER"
    }
  }
}'

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d "$TEMPLATE_CONFIG" \
    "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates?template_id=TEMPLATE_ID"

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet auquel appartient le modèle.
  • TEMPLATE_ID : ID du modèle à créer.
  • LOCATION : emplacement du modèle.
  • FILTER_VERSION_NUMBER : numéro de version du filtre de votre choix (par exemple, v1).

La réponse est semblable à ce qui suit :

{
  "name": "projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID",
  "createTime": "2026-04-05T18:03:29.134974974Z",
  "updateTime": "2026-04-05T18:03:29.134974974Z",
  "filterConfig": {
    "piAndJailbreakFilterSettings": {
      "filterEnforcement": "ENABLED"
    }
  },
  "templateMetadata": {
    "filterVersionSelector": {
      "version": "FILTER_VERSION_NUMBER"
    }
  }
}

Mettre à jour la version du filtre d'un modèle

Pour mettre à jour la version ou l'alias du filtre pour un modèle existant, exécutez la commande suivante :

export TEMPLATE_CONFIG='{
  "templateMetadata": {
    "filterVersionSelector": {
      "alias": "FILTER_VERSION_ALIAS"
    }
  }
}'

curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d "$TEMPLATE_CONFIG" \
    "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID?updateMask=templateMetadata.filterVersionSelector"

Remplacez les éléments suivants :

  • FILTER_VERSION_ALIAS : l'alias de version de filtre de votre choix. Utilisez FILTER_VERSION_ALIAS_STABLE ou FILTER_VERSION_ALIAS_LATEST.
  • PROJECT_ID : ID du projet auquel appartient le modèle.
  • TEMPLATE_ID : ID du modèle à créer.
  • LOCATION : emplacement du modèle.

La réponse est semblable à ce qui suit :

{
  "name": "projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID",
  "createTime": "2026-04-05T18:03:29.134974974Z",
  "updateTime": "2026-04-05T18:04:07.711205953Z",
  "filterConfig": {
    "piAndJailbreakFilterSettings": {
      "filterEnforcement": "ENABLED"
    }
  },
  "templateMetadata": {
    "filterVersionSelector": {
      "alias": "FILTER_VERSION_ALIAS"
    }
  }
}

Afficher la version du filtre utilisée dans les opérations de nettoyage

Les métadonnées de réponse de l'API Sanitize incluent des informations sur la version du filtre utilisée lors de la désinfection. Vous recevez un avertissement d'abandon dans la réponse de l'API Sanitize 30 jours avant que Google ne supprime la version.

L'exemple suivant montre une réponse de l'API qui inclut la version du filtre :

"sanitizationResult": {
    "filterMatchState": "NO_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": "NO_MATCH_FOUND",
          "raiFilterTypeResults": {
            "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"
        }
      },
      "sdp": {
        "sdpFilterResult": {
          "inspectResult": {
            "executionState": "EXECUTION_SUCCESS",
            "matchState": "NO_MATCH_FOUND"
          }
        }
      }
    },
  "sanitizationMetadata": {
    "filterVersionConfig": {
      "filterVersion": "v2",
      "filterVersionAlias": "FILTER_VERSION_ALIAS_LEGACY",
      "releaseDate": {
        "year": 2025,
        "month": 6,
        "day": 19
      },
      "projectedDeprecationDate": {
        "year": 2026,
        "month": 12,
        "day": 17
      },
      "messageItems": [
        {
          "messageType": "WARNING",
          "message": "This filter version (v2) is in LEGACY state and will be
          RETIRED on 2026-12-17. Please migrate your template to the STABLE or
          LATEST version to ensure continued protection."
        }
      ]
   }
  },
}

Model Armor génère des journaux de plate-forme pour les requêtes de nettoyage et leurs réponses dans Cloud Logging. Pour en savoir plus sur les journaux d'audit générés automatiquement, consultez Journalisation d'audit Model Armor.