Configurer les paramètres de plancher

Ce document explique comment afficher et modifier les paramètres de plancher Model Armor, et fournit un exemple de non-respect d'un paramètre de plancher.

Les paramètres de plancher ont deux objectifs principaux :

  • Conformité des modèles : assurez-vous que les nouveaux modèles sont au moins aussi restrictifs que ceux définis dans les paramètres de plancher. La conformité des modèles est définie au niveau de l'organisation et des dossiers.

  • Application intégrée : appliquez les protections Model Armor aux modèles Gemini et aux serveurs MCP Google Cloud. L'application intégrée est configurée au niveau du projet. Lorsque vous utilisez des paramètres de plancher pour l'application intégrée, la conformité du modèle est requise.

Avant de commencer

Avant de commencer, effectuez les tâches suivantes.

Obtenir les autorisations requises

Pour obtenir les autorisations nécessaires pour gérer les paramètres de seuil, demandez à votre administrateur de vous accorder le rôle IAM Administrateur des paramètres de seuil Model Armor (roles/modelarmor.floorSettingsAdmin) sur les paramètres de seuil Model Armor. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Activer les API

Vous devez activer les API Model Armor avant de pouvoir utiliser Model Armor.

Console

  1. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  2. Sélectionnez le projet dans lequel vous souhaitez activer Model Armor.

gcloud

Avant de commencer, suivez ces étapes à l'aide de la Google Cloud CLI avec l'API Model Armor :

  1. In the Google Cloud console, activate Cloud Shell.

    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.

  2. Exécutez la commande suivante pour utiliser le point de terminaison de l'API globale :

    gcloud config set api_endpoint_overrides/modelarmor "https://modelarmor.googleapis.com/"
  3. Application des paramètres de plancher

    Les paramètres locaux sont toujours appliqués. Par exemple, en cas de conflit entre les paramètres de plancher, ceux qui se trouvent plus bas dans la hiérarchie des ressources prévalent. De même, les paramètres de plancher définis au niveau du projet remplacent les paramètres de plancher conflictuels définis au niveau du dossier parent.

    Le tableau suivant indique comment les paramètres d'étage sont appliqués à différents endroits :

    Emplacement des paramètres de plancher Application
    Niveau Organisation S'applique à tout ce qui se trouve dans l'organisation.
    Niveau Dossier S'applique à tous les projets du dossier spécifique.
    Niveau Projet ne s'applique qu'à ce projet spécifique.

    Pour illustrer l'application des paramètres de plancher lorsqu'ils sont définis à différents niveaux, prenons l'exemple suivant. Supposons que vous définissiez des paramètres de plancher semblables à ceux ci-dessous :

    • Paramètres de plancher au niveau du dossier (moins spécifiques) : tout le contenu de ce dossier doit activer un filtre d'URI malveillants.
    • Paramètres de plancher au niveau du projet (plus spécifiques) : votre projet, situé dans le dossier, doit utiliser la détection d'injection de prompt et de jailbreak, avec un niveau de confiance moyen.

    Dans ce scénario, les paramètres que vous définissez entraînent les événements suivants :

    • Tout modèle que vous créez dans votre projet doit inclure le filtre de détection d'injection d'invite et de jailbreak, car les paramètres au niveau du projet prévalent toujours sur ceux au niveau du dossier.

    • Un modèle créé dans un autre projet, même dans un autre dossier, n'est pas affecté par la règle de filtrage des URI malveillants du premier dossier.

    Les paramètres de plancher ne s'appliquent qu'à leur emplacement spécifique dans la hiérarchie, sauf s'ils sont définis au niveau de l'organisation, auquel cas ils s'appliquent à l'ensemble de l'organisation.

    Conformité des modèles et des paramètres de plancher

    Lorsqu'un modèle Model Armor est créé ou mis à jour, Model Armor vérifie si la configuration du modèle est conforme aux paramètres de plancher. Vous ne pouvez pas créer ni modifier un modèle moins strict que les paramètres de plancher.

    Les paramètres de plancher peuvent être définis au niveau de l'organisation, du dossier et du projet. L'interface utilisateur n'est disponible qu'au niveau du projet et vous permet d'hériter des paramètres au niveau de l'organisation ou du dossier. Pour définir les paramètres de plancher au niveau de l'organisation ou du dossier, vous devez utiliser l'API.

    Intégration aux serveurs Vertex AI et Google Cloud MCP

    Model Armor s'intègre aux serveurs Vertex AI et Google Cloud MCP pour filtrer les requêtes et les réponses des modèles Gemini et des serveurs MCPGoogle Cloud distants en fonction des paramètres de plancher que vous avez définis. Vous devez activer Cloud Logging pour obtenir de la visibilité sur les requêtes et les réponses. Pour en savoir plus, consultez Intégration de Model Armor à Vertex AI et Intégration de Model Armor aux serveurs MCP Google Cloud.

    Configurer les paramètres de plancher

    Vous utilisez les paramètres de plancher pour configurer les seuils de détection minimaux pour les modèles Model Armor. Ces paramètres permettent de vérifier que tous les modèles nouveaux et modifiés respectent certaines exigences.

    Pour configurer les paramètres de plancher :

    1. Dans la console Google Cloud , accédez à la page Model Armor.

      Accéder à Model Armor

    2. Sélectionnez un projet.
    3. Sur la page Model Armor, accédez à l'onglet Paramètres de plancher, puis cliquez sur Configurer les paramètres de plancher.
    4. Sur la page Configurer les paramètres de l'établissement, sélectionnez l'option de configuration.
    5. Dans la section Détections, configurez les paramètres de détection.
    6. Facultatif : Si vous sélectionnez la détection Sensitive Data Protection, vous devez configurer les paramètres Sensitive Data Protection.
    7. Dans la section IA responsable, définissez le niveau de confiance pour chaque filtre de contenu.

    8. Dans la section Services, choisissez les services auxquels ces paramètres de plancher s'appliqueront.

    9. Dans la section Journaux, sélectionnez Activer Cloud Logging pour consigner tous les prompts utilisateur, les réponses du modèle et les résultats du détecteur de paramètres de plancher.

    10. Sélectionnez Activer la compatibilité multilingue pour utiliser les paramètres de détection multilingue.

    11. Cliquez sur Enregistrer les paramètres du rez-de-chaussée.

    Attendez quelques minutes que les modifications apportées aux paramètres de l'étage prennent effet.

    Définir la façon dont les paramètres de plancher sont hérités

    Lorsque vous configurez les paramètres de plancher, sélectionnez l'option de configuration.

    • Hériter des paramètres de plancher du parent : hérite des paramètres de plancher définis plus haut dans la hiérarchie des ressources. Cliquez sur Enregistrer les paramètres du sol et ignorez les étapes suivantes. Pour afficher les paramètres hérités, accédez à l'onglet Paramètres du niveau.

    • Personnalisé : définissez les paramètres de plancher pour ce projet. Les paramètres personnalisés que vous définissez pour un projet remplacent tous les paramètres de plancher hérités.

    • Désactiver : désactive tous les paramètres de plancher hérités. Aucune règle de détection n'est donc appliquée aux modèles Model Armor ni à Vertex AI pour vos charges de travail Gemini. Cliquez sur Enregistrer les paramètres du sol et ignorez les étapes suivantes. Consultez l'état désactivé dans l'onglet Paramètres de l'étage.

    Définir où les paramètres de plancher sont appliqués

    Sélectionnez l'un des services suivants auxquels les paramètres de plancher configurés sont appliqués.

    • Model Armor : création et mise à jour de modèles : chaque modèle Model Armor nouveau ou modifié dans un projet est vérifié pour s'assurer que les paramètres minimaux sont spécifiés conformément aux paramètres de plancher.

    • Serveur MCP Google : les requêtes envoyées vers ou depuis les serveurs MCP Google ou Google Cloud distants sont vérifiées pour s'assurer qu'elles respectent les seuils des paramètres de plancher. Pour en savoir plus, consultez Intégration de Model Armor aux serveurs MCP Google Cloud (aperçu).

    • Vertex AI : examine les requêtes envoyées aux modèles Gemini et consigne ou bloque celles qui atteignent les seuils des paramètres de base.

      Si vous sélectionnez Vertex AI, la section Vertex AI s'affiche. Vous pouvez y choisir comment les paramètres de prix plancher sont appliqués.

      • Inspecter uniquement : détecte les requêtes qui ne respectent pas les paramètres de plancher, sans les bloquer.
      • Inspecter et bloquer les non-respects : détecter et bloquer les demandes qui ne respectent pas les paramètres de plancher.

    Afficher les paramètres de plancher Model Armor

    Affichez les paramètres de plancher de Model Armor pour vérifier les paramètres existants, identifier les exigences minimales pour vos applications d'IA ou résoudre les problèmes lorsqu'un modèle ne se comporte pas comme prévu.

    Exécutez la commande suivante pour afficher les paramètres de plancher Model Armor.

    Console

    1. Dans la console Google Cloud , accédez à la page Model Armor.

      Accéder à Model Armor

    2. Vérifiez que vous consultez le projet sur lequel vous avez activé Model Armor.

    3. Sur la page Model Armor, accédez à l'onglet Paramètres de base. Si des paramètres de plancher sont définis au niveau de l'organisation, vous pouvez les consulter ici. Si aucun paramètre de plancher n'est défini, vous devez les configurer. Pour en savoir plus, consultez Configurer les paramètres des étages.

    gcloud

    • Affichez le paramètre plancher Model Armor pour un projet donné.

        gcloud model-armor floorsettings describe \
            --full-uri='projects/PROJECT_ID/locations/global/floorSetting'
    • Affichez le paramètre de plancher Model Armor pour une organisation donnée.

        gcloud model-armor floorsettings describe \
            --full-uri='organizations/ORGANIZATION_ID/locations/global/floorSetting'
    • Affichez le paramètre de plancher Model Armor pour un dossier donné.

         gcloud model-armor floorsettings describe \
             --full-uri='folders/FOLDER_ID/locations/global/floorSetting'

      Remplacez les éléments suivants :

      • PROJECT_ID : ID du projet pour les paramètres de l'étage.
      • FOLDER_ID : ID du dossier pour les paramètres de plancher.
      • ORGANIZATION_ID : ID de l'organisation pour les paramètres de base.

    REST

    • Affichez le paramètre plancher Model Armor pour un projet donné.

      curl -X GET \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://modelarmor.googleapis.com/v1/projects/PROJECT_ID/locations/global/floorSetting"
    • Affichez le paramètre de plancher Model Armor pour un dossier donné.

      curl -X GET \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://modelarmor.googleapis.com/v1/folders/FOLDER_ID/locations/global/floorSetting"
    • Affichez le paramètre de plancher Model Armor pour une organisation donnée.

      curl -X GET \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://modelarmor.googleapis.com/v1/organizations/ORGANIZATION_ID/locations/global/floorSetting"

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet pour les paramètres de l'étage.
    • FOLDER_ID : ID du dossier pour les paramètres de plancher.
    • ORGANIZATION_ID : ID de l'organisation pour les paramètres de base.

    C#

    Pour exécuter ce code, commencez par configurer un environnement de développement C# et installez le SDK Model Armor pour C#.

    Go

    Pour exécuter ce code, commencez par configurer un environnement de développement Go et installez le SDK Model Armor pour Go.

    • Affichez le paramètre plancher Model Armor pour un projet donné.

      
      import (
      	"context"
      	"fmt"
      	"io"
      
      	modelarmor "cloud.google.com/go/modelarmor/apiv1"
      	modelarmorpb "cloud.google.com/go/modelarmor/apiv1/modelarmorpb"
      )
      
      // getProjectFloorSettings gets details of a single floor setting of a project.
      //
      // This method retrieves the details of a single floor setting of a project.
      //
      // w io.Writer: The writer to use for logging.
      // projectID string: The ID of the project.
      func getProjectFloorSettings(w io.Writer, projectID string) error {
      	ctx := context.Background()
      
      	// Create the Model Armor client.
      	client, err := modelarmor.NewClient(ctx)
      	if err != nil {
      		return fmt.Errorf("failed to create client: %w", err)
      	}
      	defer client.Close()
      
      	floorSettingsName := fmt.Sprintf("projects/%s/locations/global/floorSetting", projectID)
      
      	// Get the project floor setting.
      	req := &modelarmorpb.GetFloorSettingRequest{
      		Name: floorSettingsName,
      	}
      
      	response, err := client.GetFloorSetting(ctx, req)
      	if err != nil {
      		return fmt.Errorf("failed to get floor setting: %w", err)
      	}
      
      	// Print the retrieved floor setting using fmt.Fprintf with the io.Writer.
      	fmt.Fprintf(w, "Retrieved floor setting: %v\n", response)
      
      	return nil
      }
      
    • Affichez le paramètre de plancher Model Armor pour un dossier donné.

      
      import (
      	"context"
      	"fmt"
      	"io"
      
      	modelarmor "cloud.google.com/go/modelarmor/apiv1"
      	modelarmorpb "cloud.google.com/go/modelarmor/apiv1/modelarmorpb"
      )
      
      // getFolderFloorSettings gets details of a single floor setting of a folder.
      //
      // This method retrieves the details of a single floor setting of a folder.
      //
      // w io.Writer: The writer to use for logging.
      // folderID string: The ID of the folder.
      func getFolderFloorSettings(w io.Writer, folderID string) error {
      	ctx := context.Background()
      
      	// Create the Model Armor client.
      	client, err := modelarmor.NewClient(ctx)
      	if err != nil {
      		return fmt.Errorf("failed to create client: %w", err)
      	}
      	defer client.Close()
      
      	// Prepare folder floor setting path/name
      	floorSettingsName := fmt.Sprintf("folders/%s/locations/global/floorSetting", folderID)
      
      	// Get the folder floor setting.
      	req := &modelarmorpb.GetFloorSettingRequest{
      		Name: floorSettingsName,
      	}
      
      	response, err := client.GetFloorSetting(ctx, req)
      	if err != nil {
      		return fmt.Errorf("failed to get floor setting: %w", err)
      	}
      
      	// Print the retrieved floor setting using fmt.Fprintf with the io.Writer.
      	fmt.Fprintf(w, "Retrieved folder floor setting: %v\n", response)
      
      	return nil
      }
      
    • Affichez le paramètre de plancher Model Armor pour une organisation donnée.

      
      import (
      	"context"
      	"fmt"
      	"io"
      
      	modelarmor "cloud.google.com/go/modelarmor/apiv1"
      	modelarmorpb "cloud.google.com/go/modelarmor/apiv1/modelarmorpb"
      )
      
      // getOrganizationFloorSettings gets details of a single floor setting of an organization.
      //
      // This method retrieves the details of a single floor setting of an organization.
      //
      // w io.Writer: The writer to use for logging.
      // organizationID string: The ID of the organization.
      func getOrganizationFloorSettings(w io.Writer, organizationID string) error {
      	ctx := context.Background()
      
      	// Create the Model Armor client.
      	client, err := modelarmor.NewClient(ctx)
      	if err != nil {
      		return fmt.Errorf("failed to create client: %w", err)
      	}
      	defer client.Close()
      
      	floorSettingsName := fmt.Sprintf("organizations/%s/locations/global/floorSetting", organizationID)
      
      	// Get the organization floor setting.
      	req := &modelarmorpb.GetFloorSettingRequest{
      		Name: floorSettingsName,
      	}
      
      	response, err := client.GetFloorSetting(ctx, req)
      	if err != nil {
      		return fmt.Errorf("failed to get floor setting: %w", err)
      	}
      
      	// Print the retrieved floor setting using fmt.Fprintf with the io.Writer.
      	fmt.Fprintf(w, "Retrieved org floor setting: %v\n", response)
      
      	return nil
      }
      

    Java

    Pour exécuter ce code, commencez par configurer un environnement de développement Java et installez le SDK Model Armor pour Java.

    • Affichez le paramètre plancher Model Armor pour un projet donné.

      
      import com.google.cloud.modelarmor.v1.FloorSetting;
      import com.google.cloud.modelarmor.v1.FloorSettingName;
      import com.google.cloud.modelarmor.v1.GetFloorSettingRequest;
      import com.google.cloud.modelarmor.v1.ModelArmorClient;
      import java.io.IOException;
      
      public class GetProjectFloorSetting {
      
        public static void main(String[] args) throws IOException {
          // TODO(developer): Replace these variables before running the sample.
          String projectId = "your-project-id";
      
          getProjectFloorSetting(projectId);
        }
      
        public static FloorSetting getProjectFloorSetting(String projectId) throws IOException {
      
          // Initialize client that will be used to send requests. This client only
          // needs to be created once, and can be reused for multiple requests.
          try (ModelArmorClient client = ModelArmorClient.create()) {
            String name = FloorSettingName.of(projectId, "global").toString();
      
            GetFloorSettingRequest request = GetFloorSettingRequest.newBuilder().setName(name).build();
      
            FloorSetting floorSetting = client.getFloorSetting(request);
            System.out.println("Fetched floor setting for project: " + projectId);
      
            return floorSetting;
          }
        }
      }
    • Affichez le paramètre de plancher Model Armor pour un dossier donné.

      
      import com.google.cloud.modelarmor.v1.FloorSetting;
      import com.google.cloud.modelarmor.v1.FloorSettingName;
      import com.google.cloud.modelarmor.v1.GetFloorSettingRequest;
      import com.google.cloud.modelarmor.v1.ModelArmorClient;
      import java.io.IOException;
      
      public class GetFolderFloorSetting {
      
        public static void main(String[] args) throws IOException {
          // TODO(developer): Replace these variables before running the sample.
          String folderId = "your-folder-id";
      
          getFolderFloorSetting(folderId);
        }
      
        public static FloorSetting getFolderFloorSetting(String folderId) throws IOException {
      
          // Initialize client that will be used to send requests. This client only
          // needs to be created once, and can be reused for multiple requests.
          try (ModelArmorClient client = ModelArmorClient.create()) {
            String name = FloorSettingName.ofFolderLocationName(folderId, "global").toString();
      
            GetFloorSettingRequest request = GetFloorSettingRequest.newBuilder().setName(name).build();
      
            FloorSetting floorSetting = client.getFloorSetting(request);
            System.out.println("Fetched floor setting for folder: " + folderId);
      
            return floorSetting;
          }
        }
      }
    • Affichez le paramètre de plancher Model Armor pour une organisation donnée.

      
      import com.google.cloud.modelarmor.v1.FloorSetting;
      import com.google.cloud.modelarmor.v1.FloorSettingName;
      import com.google.cloud.modelarmor.v1.GetFloorSettingRequest;
      import com.google.cloud.modelarmor.v1.ModelArmorClient;
      import java.io.IOException;
      
      public class GetOrganizationFloorSetting {
      
        public static void main(String[] args) throws IOException {
          // TODO(developer): Replace these variables before running the sample.
          String organizationId = "your-organization-id";
      
          getOrganizationFloorSetting(organizationId);
        }
      
        public static FloorSetting getOrganizationFloorSetting(String organizationId) throws IOException {
      
          // Initialize client that will be used to send requests. This client only
          // needs to be created once, and can be reused for multiple requests.
          try (ModelArmorClient client = ModelArmorClient.create()) {
            String name = FloorSettingName.ofOrganizationLocationName(organizationId, "global")
                .toString();
      
            GetFloorSettingRequest request = GetFloorSettingRequest.newBuilder().setName(name).build();
      
            FloorSetting floorSetting = client.getFloorSetting(request);
            System.out.println("Fetched floor setting for organization: " + organizationId);
      
            return floorSetting;
          }
        }
      }

    Node.js

    Pour exécuter ce code, commencez par configurer un environnement de développement Node.js et installez le SDK Model Armor pour Node.js.

    • Affichez le paramètre plancher Model Armor pour un projet donné.

      /**
       * TODO(developer): Uncomment these variables before running the sample.
       */
      // const projectId = 'your-project-id';
      
      const name = `projects/${projectId}/locations/global/floorSetting`;
      
      // Imports the Modelarmor library
      const {ModelArmorClient} = require('@google-cloud/modelarmor').v1;
      
      // Instantiates a client
      const modelarmorClient = new ModelArmorClient();
      
      async function getProjectFloorSettings() {
        // Construct request
        const request = {
          name,
        };
      
        // Run request
        const [response] = await modelarmorClient.getFloorSetting(request);
        return response;
      }
      
      return await getProjectFloorSettings();
    • Affichez le paramètre de plancher Model Armor pour un dossier donné.

      /**
       * TODO(developer): Uncomment these variables before running the sample.
       */
      // const folderId = 'your-folder-id';
      
      const name = `folders/${folderId}/locations/global/floorSetting`;
      
      // Imports the Modelarmor library
      const {ModelArmorClient} = require('@google-cloud/modelarmor').v1;
      
      // Instantiates a client
      const modelarmorClient = new ModelArmorClient();
      
      async function getFolderFloorSettings() {
        // Construct request
        const request = {
          name,
        };
      
        const [response] = await modelarmorClient.getFloorSetting(request);
        return response;
      }
      
      return await getFolderFloorSettings();
    • Affichez le paramètre de plancher Model Armor pour une organisation donnée.

      /**
       * TODO(developer): Uncomment these variables before running the sample.
       */
      // const organizationId = 'your-organization-id';
      const name = `organizations/${organizationId}/locations/global/floorSetting`;
      
      // Imports the Modelarmor library
      const {ModelArmorClient} = require('@google-cloud/modelarmor').v1;
      
      // Instantiates a client
      const modelarmorClient = new ModelArmorClient();
      
      async function getOrganizationFloorSettings() {
        // Construct request
        const request = {
          name,
        };
      
        // Run request
        const [response] = await modelarmorClient.getFloorSetting(request);
        return response;
      }
      
      return await getOrganizationFloorSettings();

    PHP

    Pour exécuter ce code, commencez par configurer un environnement de développement PHP et installez le SDK Model Armor pour PHP.

    • Affichez le paramètre plancher Model Armor pour un projet donné.

      use Google\Cloud\ModelArmor\V1\Client\ModelArmorClient;
      use Google\Cloud\ModelArmor\V1\GetFloorSettingRequest;
      
      /**
       * Gets the floor settings for a given project.
       *
       * @param string $projectId The project Id for which the floor settings is to be retrieved.
       *
       */
      function get_project_floor_settings(string $projectId): void
      {
          $client = new ModelArmorClient();
      
          $floorSettingsName = sprintf('projects/%s/locations/global/floorSetting', $projectId);
      
          $response = $client->getFloorSetting((new GetFloorSettingRequest())->setName($floorSettingsName));
      
          printf("Floor settings retrieved successfully: %s\n", $response->serializeToJsonString());
      }
    • Affichez le paramètre de plancher Model Armor pour un dossier donné.

      use Google\Cloud\ModelArmor\V1\Client\ModelArmorClient;
      use Google\Cloud\ModelArmor\V1\GetFloorSettingRequest;
      
      /**
       * Gets the floor settings for a given folder.
       *
       * @param string $folderId The folder Id for which the floor settings is to be retrieved.
       *
       */
      function get_folder_floor_settings(string $folderId): void
      {
          $client = new ModelArmorClient();
      
          $floorSettingsName = sprintf('folders/%s/locations/global/floorSetting', $folderId);
      
          $response = $client->getFloorSetting((new GetFloorSettingRequest())->setName($floorSettingsName));
      
          printf("Floor settings retrieved successfully: %s\n", $response->serializeToJsonString());
      }
    • Affichez le paramètre de plancher Model Armor pour une organisation donnée.

      use Google\Cloud\ModelArmor\V1\Client\ModelArmorClient;
      use Google\Cloud\ModelArmor\V1\GetFloorSettingRequest;
      
      /**
       * Gets the floor settings for a given organization.
       *
       * @param string $organizationId The organization Id for which the floor settings is to be retrieved.
       *
       */
      function get_organization_floor_settings(string $organizationId): void
      {
          $client = new ModelArmorClient();
      
          $floorSettingsName = sprintf('organizations/%s/locations/global/floorSetting', $organizationId);
      
          $response = $client->getFloorSetting((new GetFloorSettingRequest())->setName($floorSettingsName));
      
          printf("Floor settings retrieved successfully: %s\n", $response->serializeToJsonString());
      }

    Python

    Pour exécuter ce code, commencez par configurer un environnement de développement Python et installez le SDK Model Armor pour Python.

    • Affichez le paramètre plancher Model Armor pour un projet donné.

      
      from google.cloud import modelarmor_v1
      
      # Create the Model Armor client.
      client = modelarmor_v1.ModelArmorClient(transport="rest")
      
      # TODO(Developer): Uncomment below variable.
      # project_id = "YOUR_PROJECT_ID"
      
      floor_settings_name = f"projects/{project_id}/locations/global/floorSetting"
      
      # Get the project floor setting.
      response = client.get_floor_setting(
          request=modelarmor_v1.GetFloorSettingRequest(name=floor_settings_name)
      )
      
      # Print the retrieved floor setting.
      print(response)
      
    • Affichez le paramètre de plancher Model Armor pour un dossier donné.

      
      from google.cloud import modelarmor_v1
      
      # Create the Model Armor client.
      client = modelarmor_v1.ModelArmorClient(transport="rest")
      
      # TODO(Developer): Uncomment below variable.
      # folder_id = "YOUR_FOLDER_ID"
      
      # Prepare folder floor setting path/name
      floor_settings_name = f"folders/{folder_id}/locations/global/floorSetting"
      
      # Get the folder floor setting.
      response = client.get_floor_setting(
          request=modelarmor_v1.GetFloorSettingRequest(name=floor_settings_name)
      )
      
      # Print the retrieved floor setting.
      print(response)
      
    • Affichez le paramètre de plancher Model Armor pour une organisation donnée.

      
      from google.cloud import modelarmor_v1
      
      # Create the Model Armor client.
      client = modelarmor_v1.ModelArmorClient(transport="rest")
      
      # TODO(Developer): Uncomment below variable.
      # organization_id = "YOUR_ORGANIZATION_ID"
      
      floor_settings_name = (
          f"organizations/{organization_id}/locations/global/floorSetting"
      )
      
      # Get the organization floor setting.
      response = client.get_floor_setting(
          request=modelarmor_v1.GetFloorSettingRequest(name=floor_settings_name)
      )
      
      # Print the retrieved floor setting.
      print(response)
      

    Mettre à jour les paramètres de plancher Model Armor

    Mettez à jour les paramètres de plancher de Model Armor pour modifier les exigences minimales des modèles afin de refléter les modifications apportées aux règles de sécurité, de corriger les erreurs de configuration ou de résoudre les conflits entre les paramètres de plancher.

    Exécutez la commande suivante pour mettre à jour les paramètres de Model Armor.

    Console

    1. Dans la console Google Cloud , accédez à la page Model Armor.

      Accéder à Model Armor

    2. Vérifiez que vous consultez le projet sur lequel vous avez activé Model Armor.

    3. Sur la page Model Armor, accédez à l'onglet Paramètres de plancher, puis cliquez sur Configurer les paramètres de plancher.

    4. Mettez à jour les champs requis, puis cliquez sur Enregistrer les paramètres de l'étage.

    gcloud

       gcloud model-armor floorsettings update --full-uri=<full-uri-of-the-floorsetting>
    

    Exemple de commande :

           gcloud model-armor floorsettings update \
               --malicious-uri-filter-settings-enforcement=ENABLED \
               --pi-and-jailbreak-filter-settings-enforcement=DISABLED \
               --pi-and-jailbreak-filter-settings-confidence-level=LOW_AND_ABOVE \
               --basic-config-filter-enforcement=ENABLED \
               --add-rai-settings-filters='[{"confidenceLevel": "low_and_above", "filterType": "HARASSMENT"}, {"confidenceLevel": "high", "filterType": "SEXUALLY_EXPLICIT"}]'
               --full-uri='folders/FOLDER_ID/locations/global/floorSetting' \
               --enable-floor-setting-enforcement=true
    

    Pour configurer les paramètres de plancher avec la détection multilingue activée, exécutez la commande suivante :

        gcloud model-armor floorsettings update \
            --full-uri=projects/PROJECT_ID/locations/global/floorSetting \
            --enable-multi-language-detection
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet pour les paramètres de l'étage.
    • FOLDER_ID : ID du dossier pour les paramètres de plancher.

    REST

    • Mettez à jour le paramètre de plancher Model Armor pour un projet donné.

      curl -X PATCH
        -d '{"filterConfig" :{"piAndJailbreakFilterSettings": { "filterEnforcement": "ENABLED"}, "maliciousUriFilterSettings": { "filterEnforcement": "ENABLED" }, "rai_settings":{"rai_filters":{"filter_type":"DANGEROUS", "confidence_level":"LOW_AND_ABOVE" }, \
        "rai_filters":{"filter_type":"HATE_SPEECH", "confidence_level":"LOW_AND_ABOVE" }, "rai_filters":{"filter_type":"HARASSMENT", "confidence_level":"LOW_AND_ABOVE" }, "rai_filters":{"filter_type":"SEXUALLY_EXPLICIT", "confidence_level":"LOW_AND_ABOVE" }}},"enableFloorSettingEnforcement":"true"}' \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $(gcloud auth print-access-token) \
        "https://modelarmor.googleapis.com/v1/projects/PROJECT_ID/locations/global/floorSetting"
    • Mettez à jour le paramètre plancher Model Armor pour un dossier donné.

      curl -X PATCH \
        -d '{"filterConfig" :{"piAndJailbreakFilterSettings": { "filterEnforcement": "ENABLED"}, "maliciousUriFilterSettings": {"filterEnforcement": "ENABLED" }},"enableFloorSettingEnforcement":"true"}' \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        "https://modelarmor.googleapis.com/v1/folders/FOLDER_ID/locations/global/floorSetting"
    • Mettez à jour le paramètre de plancher Model Armor pour une organisation donnée.

      curl -X PATCH \
        -d '{"filterConfig" :{"piAndJailbreakFilterSettings": { "filterEnforcement": "ENABLED"}, "maliciousUriFilterSettings": {
            "filterEnforcement": "ENABLED" }},"enableFloorSettingEnforcement":"true"}' \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
            "https://modelarmor.googleapis.com/v1/organizations/ORGANIZATION_ID/locations/global/floorSetting"

      Remplacez les éléments suivants :

      • PROJECT_ID : ID du projet pour les paramètres de l'étage.
      • FOLDER_ID : ID du dossier pour les paramètres de plancher.
      • ORGANIZATION_ID : ID de l'organisation pour les paramètres de base.

      La commande de mise à jour renvoie la réponse suivante :

      {
      "name": "projects/PROJECT_ID/locations/global/floorSetting",
      "updateTime": "2024-12-19T15:36:21.318191Z",
      "filterConfig": {
      "piAndJailbreakFilterSettings": {
        "filterEnforcement": "ENABLED"
      },
      "maliciousUriFilterSettings": {
      "filterEnforcement": "ENABLED"
      }
      }
      }

    C#

    Pour exécuter ce code, commencez par configurer un environnement de développement C# et installez le SDK Model Armor pour C#.

    • Mettez à jour le paramètre de plancher Model Armor pour un projet donné.

      using Google.Cloud.ModelArmor.V1;
      using System;
      
      public class UpdateProjectFloorSettings
      {
          public FloorSetting UpdateProjectFloorSetting(string projectId)
          {
              // Create the client
              ModelArmorClient client = ModelArmorClient.Create();
      
              // Construct the floor settings name
              string floorSettingsName = $"projects/{projectId}/locations/global/floorSetting";
      
              // Build the floor settings with your preferred filters
              // For more details on filters, please refer to the following doc:
              // https://cloud.google.com/security-command-center/docs/key-concepts-model-armor#ma-filters
              var raiFilter = new RaiFilterSettings.Types.RaiFilter
              {
                  FilterType = RaiFilterType.HateSpeech,
                  ConfidenceLevel = DetectionConfidenceLevel.High,
              };
      
              var raiFilterSettings = new RaiFilterSettings();
              raiFilterSettings.RaiFilters.Add(raiFilter);
      
              var filterConfig = new FilterConfig { RaiSettings = raiFilterSettings };
      
              var floorSetting = new FloorSetting
              {
                  Name = floorSettingsName,
                  FilterConfig = filterConfig,
                  EnableFloorSettingEnforcement = true,
              };
      
              // Create the update request
              var updateRequest = new UpdateFloorSettingRequest { FloorSetting = floorSetting };
      
              // Update the floor settings
              FloorSetting response = client.UpdateFloorSetting(updateRequest);
      
              Console.WriteLine($"Floor setting updated: {response.Name}");
      
              return response;
          }
      }
    • Mettez à jour le paramètre plancher Model Armor pour un dossier donné.

      using Google.Cloud.ModelArmor.V1;
      using System;
      
      public class UpdateFolderFloorSettings
      {
          public FloorSetting UpdateFolderFloorSetting(string folderId)
          {
              // Create the client
              ModelArmorClient client = ModelArmorClient.Create();
      
              // Construct the floor settings name
              string floorSettingsName = $"folders/{folderId}/locations/global/floorSetting";
      
              // Build the floor settings with your preferred filters
              // For more details on filters, please refer to the following doc:
              // https://cloud.google.com/security-command-center/docs/key-concepts-model-armor#ma-filters
              var raiFilter = new RaiFilterSettings.Types.RaiFilter
              {
                  FilterType = RaiFilterType.HateSpeech,
                  ConfidenceLevel = DetectionConfidenceLevel.High,
              };
      
              var raiFilterSettings = new RaiFilterSettings();
              raiFilterSettings.RaiFilters.Add(raiFilter);
      
              var filterConfig = new FilterConfig { RaiSettings = raiFilterSettings };
      
              var floorSetting = new FloorSetting
              {
                  Name = floorSettingsName,
                  FilterConfig = filterConfig,
                  EnableFloorSettingEnforcement = true,
              };
      
              // Create the update request
              var updateRequest = new UpdateFloorSettingRequest { FloorSetting = floorSetting };
      
              // Update the floor settings
              FloorSetting response = client.UpdateFloorSetting(updateRequest);
      
              Console.WriteLine($"Floor setting updated: {response.Name}");
      
              return response;
          }
      }
    • Mettez à jour le paramètre de plancher Model Armor pour une organisation donnée.

      using Google.Cloud.ModelArmor.V1;
      using System;
      
      public class UpdateOrganizationFloorSettings
      {
          public FloorSetting UpdateOrganizationFloorSetting(string organizationId)
          {
              // Create the client
              ModelArmorClient client = ModelArmorClient.Create();
      
              // Construct the floor settings name
              string floorSettingsName = $"organizations/{organizationId}/locations/global/floorSetting";
      
              // Build the floor settings with your preferred filters
              // For more details on filters, please refer to the following doc:
              // https://cloud.google.com/security-command-center/docs/key-concepts-model-armor#ma-filters
              var raiFilter = new RaiFilterSettings.Types.RaiFilter
              {
                  FilterType = RaiFilterType.HateSpeech,
                  ConfidenceLevel = DetectionConfidenceLevel.High,
              };
      
              var raiFilterSettings = new RaiFilterSettings();
              raiFilterSettings.RaiFilters.Add(raiFilter);
      
              var filterConfig = new FilterConfig { RaiSettings = raiFilterSettings };
      
              var floorSetting = new FloorSetting
              {
                  Name = floorSettingsName,
                  FilterConfig = filterConfig,
                  EnableFloorSettingEnforcement = true,
              };
      
              // Create the update request
              var updateRequest = new UpdateFloorSettingRequest { FloorSetting = floorSetting };
      
              // Update the floor settings
              FloorSetting response = client.UpdateFloorSetting(updateRequest);
      
              Console.WriteLine($"Floor setting updated: {response.Name}");
      
              return response;
          }
      }

    Go

    Pour exécuter ce code, commencez par configurer un environnement de développement Go et installez le SDK Model Armor pour Go.

    • Mettez à jour le paramètre de plancher Model Armor pour un projet donné.

      
      import (
      	"context"
      	"fmt"
      	"io"
      
      	modelarmor "cloud.google.com/go/modelarmor/apiv1"
      	modelarmorpb "cloud.google.com/go/modelarmor/apiv1/modelarmorpb"
      )
      
      // updateProjectFloorSettings updates the floor settings of a project.
      //
      // This method updates the floor settings of a project.
      //
      // w io.Writer: The writer to use for logging.
      // projectID string: The ID of the project.
      func updateProjectFloorSettings(w io.Writer, projectID string) error {
      	ctx := context.Background()
      
      	// Create the Model Armor client.
      	client, err := modelarmor.NewClient(ctx)
      	if err != nil {
      		return fmt.Errorf("failed to create client: %w", err)
      	}
      	defer client.Close()
      
      	// Prepare project floor setting path/name
      	floorSettingsName := fmt.Sprintf("projects/%s/locations/global/floorSetting", projectID)
      
      	// Update the project floor setting
      	// For more details on filters, please refer to the following doc:
      	// [https://cloud.google.com/security-command-center/docs/key-concepts-model-armor#ma-filters](https://cloud.google.com/security-command-center/docs/key-concepts-model-armor#ma-filters)
      	enableEnforcement := true
      	req := &modelarmorpb.UpdateFloorSettingRequest{
      		FloorSetting: &modelarmorpb.FloorSetting{
      			Name: floorSettingsName,
      			FilterConfig: &modelarmorpb.FilterConfig{
      				RaiSettings: &modelarmorpb.RaiFilterSettings{
      					RaiFilters: []*modelarmorpb.RaiFilterSettings_RaiFilter{
      						{
      							FilterType:      modelarmorpb.RaiFilterType_HATE_SPEECH,
      							ConfidenceLevel: modelarmorpb.DetectionConfidenceLevel_HIGH,
      						},
      					},
      				},
      			},
      			EnableFloorSettingEnforcement: &enableEnforcement,
      		},
      	}
      
      	response, err := client.UpdateFloorSetting(ctx, req)
      	if err != nil {
      		return fmt.Errorf("failed to update floor setting: %w", err)
      	}
      
      	// Print the updated config
      	fmt.Fprintf(w, "Updated project floor setting: %+v\n", response)
      
      	return nil
      }
      
    • Mettez à jour le paramètre plancher Model Armor pour un dossier donné.

      
      import (
      	"context"
      	"fmt"
      	"io"
      
      	modelarmor "cloud.google.com/go/modelarmor/apiv1"
      	modelarmorpb "cloud.google.com/go/modelarmor/apiv1/modelarmorpb"
      )
      
      // updateFolderFloorSettings updates floor settings of a folder.
      //
      // This method updates the floor settings of a folder.
      //
      // w io.Writer: The writer to use for logging.
      // folderID string: The ID of the folder.
      func updateFolderFloorSettings(w io.Writer, folderID string) error {
      	ctx := context.Background()
      
      	// Create the Model Armor client.
      	client, err := modelarmor.NewClient(ctx)
      	if err != nil {
      		return fmt.Errorf("failed to create client: %w", err)
      	}
      	defer client.Close()
      
      	// Prepare folder floor settings path/name
      	floorSettingsName := fmt.Sprintf("folders/%s/locations/global/floorSetting", folderID)
      
      	// Prepare the floor setting update
      	enableEnforcement := true
      	floorSetting := &modelarmorpb.FloorSetting{
      		Name: floorSettingsName,
      		FilterConfig: &modelarmorpb.FilterConfig{
      			RaiSettings: &modelarmorpb.RaiFilterSettings{
      				RaiFilters: []*modelarmorpb.RaiFilterSettings_RaiFilter{
      					{
      						FilterType:      modelarmorpb.RaiFilterType_HATE_SPEECH,
      						ConfidenceLevel: modelarmorpb.DetectionConfidenceLevel_HIGH,
      					},
      				},
      			},
      		},
      		EnableFloorSettingEnforcement: &enableEnforcement,
      	}
      
      	// Prepare request for updating the floor setting.
      	req := &modelarmorpb.UpdateFloorSettingRequest{
      		FloorSetting: floorSetting,
      	}
      
      	// Update the floor setting.
      	response, err := client.UpdateFloorSetting(ctx, req)
      	if err != nil {
      		return fmt.Errorf("failed to update floor setting: %w", err)
      	}
      
      	// Print the updated config
      	fmt.Fprintf(w, "Updated folder floor setting: %v\n", response)
      
      	return nil
      
      }
      
    • Mettez à jour le paramètre de plancher Model Armor pour une organisation donnée.

      
      import (
      	"context"
      	"fmt"
      	"io"
      
      	modelarmor "cloud.google.com/go/modelarmor/apiv1"
      	modelarmorpb "cloud.google.com/go/modelarmor/apiv1/modelarmorpb"
      )
      
      // updateOrganizationFloorSettings updates floor settings of an organization.
      //
      // This method updates the floor settings of an organization.
      //
      // w io.Writer: The writer to use for logging.
      // organizationID string: The ID of the organization.
      func updateOrganizationFloorSettings(w io.Writer, organizationID string) error {
      	ctx := context.Background()
      
      	// Create the Model Armor client.
      	client, err := modelarmor.NewClient(ctx)
      	if err != nil {
      		return fmt.Errorf("failed to create client: %w", err)
      	}
      	defer client.Close()
      
      	// Prepare organization floor setting path/name
      	floorSettingsName := fmt.Sprintf("organizations/%s/locations/global/floorSetting", organizationID)
      
      	// Update the organization floor setting
      	// For more details on filters, please refer to the following doc:
      	// [https://cloud.google.com/security-command-center/docs/key-concepts-model-armor#ma-filters](https://cloud.google.com/security-command-center/docs/key-concepts-model-armor#ma-filters)
      	enableEnforcement := true
      	req := &modelarmorpb.UpdateFloorSettingRequest{
      		FloorSetting: &modelarmorpb.FloorSetting{
      			Name: floorSettingsName,
      			FilterConfig: &modelarmorpb.FilterConfig{
      				RaiSettings: &modelarmorpb.RaiFilterSettings{
      					RaiFilters: []*modelarmorpb.RaiFilterSettings_RaiFilter{
      						{
      							FilterType:      modelarmorpb.RaiFilterType_HATE_SPEECH,
      							ConfidenceLevel: modelarmorpb.DetectionConfidenceLevel_HIGH,
      						},
      					},
      				},
      			},
      			EnableFloorSettingEnforcement: &enableEnforcement,
      		},
      	}
      
      	response, err := client.UpdateFloorSetting(ctx, req)
      	if err != nil {
      		return fmt.Errorf("failed to update floor setting: %w", err)
      	}
      
      	// Print the updated config
      	fmt.Fprintf(w, "Updated org floor setting: %+v\n", response)
      

    Java

    Pour exécuter ce code, commencez par configurer un environnement de développement Java et installez le SDK Model Armor pour Java.

    Node.js

    Pour exécuter ce code, commencez par configurer un environnement de développement Node.js et installez le SDK Model Armor pour Node.js.

    • Mettez à jour le paramètre de plancher Model Armor pour un projet donné.

      /**
       * TODO(developer): Uncomment these variables before running the sample.
       */
      // const projectId = 'your-project-id';
      
      const modelarmor = require('@google-cloud/modelarmor');
      const {ModelArmorClient} = modelarmor.v1;
      const {protos} = modelarmor;
      
      // Initiate client
      const client = new ModelArmorClient();
      
      async function updateProjectFloorSettings() {
        const floorSettingsName = `projects/${projectId}/locations/global/floorSetting`;
      
        // Build the floor settings with your preferred filters
        // For more details on filters, please refer to the following doc:
        // https://cloud.google.com/security-command-center/docs/key-concepts-model-armor#ma-filters
        const floorSetting = {
          name: floorSettingsName,
          filterConfig: {
            raiSettings: {
              raiFilters: [
                {
                  filterType:
                    protos.google.cloud.modelarmor.v1.RaiFilterType.HARASSMENT,
                  confidenceLevel:
                    protos.google.cloud.modelarmor.v1.DetectionConfidenceLevel
                      .LOW_AND_ABOVE,
                },
                {
                  filterType:
                    protos.google.cloud.modelarmor.v1.RaiFilterType
                      .SEXUALLY_EXPLICIT,
                  confidenceLevel:
                    protos.google.cloud.modelarmor.v1.DetectionConfidenceLevel
                      .LOW_AND_ABOVE,
                },
              ],
            },
          },
          enableFloorSettingEnforcement: true,
        };
      
        const request = {
          floorSetting: floorSetting,
        };
      
        const [response] = await client.updateFloorSetting(request);
        return response;
      }
      
      return await updateProjectFloorSettings();
    • Mettez à jour le paramètre plancher Model Armor pour un dossier donné.

      /**
       * TODO(developer): Uncomment these variables before running the sample.
       */
      // const folderId = 'your-folder-id';
      
      // Imports the Model Armor library
      const modelarmor = require('@google-cloud/modelarmor');
      const {ModelArmorClient} = modelarmor.v1;
      const {protos} = modelarmor;
      
      // Instantiates a client
      const client = new ModelArmorClient();
      
      async function updateFolderFloorSettings() {
        const floorSettingsName = `folders/${folderId}/locations/global/floorSetting`;
      
        // Build the floor settings with your preferred filters
        // For more details on filters, please refer to the following doc:
        // https://cloud.google.com/security-command-center/docs/key-concepts-model-armor#ma-filters
        const floorSetting = {
          name: floorSettingsName,
          filterConfig: {
            raiSettings: {
              raiFilters: [
                {
                  filterType:
                    protos.google.cloud.modelarmor.v1.RaiFilterType.HARASSMENT,
                  confidenceLevel:
                    protos.google.cloud.modelarmor.v1.DetectionConfidenceLevel
                      .LOW_AND_ABOVE,
                },
                {
                  filterType:
                    protos.google.cloud.modelarmor.v1.RaiFilterType
                      .SEXUALLY_EXPLICIT,
                  confidenceLevel:
                    protos.google.cloud.modelarmor.v1.DetectionConfidenceLevel
                      .LOW_AND_ABOVE,
                },
              ],
            },
          },
          enableFloorSettingEnforcement: true,
        };
      
        const request = {
          floorSetting: floorSetting,
        };
      
        const [response] = await client.updateFloorSetting(request);
        return response;
      }
      
      return await updateFolderFloorSettings();
    • Mettez à jour le paramètre de plancher Model Armor pour une organisation donnée.

      /**
       * TODO(developer): Uncomment these variables before running the sample.
       */
      // const organizationId = 'your-organization-id';
      
      const modelarmor = require('@google-cloud/modelarmor');
      const {ModelArmorClient} = modelarmor.v1;
      const {protos} = modelarmor;
      
      const client = new ModelArmorClient();
      
      async function updateOrganizationFloorSettings() {
        const floorSettingsName = `organizations/${organizationId}/locations/global/floorSetting`;
      
        // Build the floor settings with your preferred filters
        // For more details on filters, please refer to the following doc:
        // https://cloud.google.com/security-command-center/docs/key-concepts-model-armor#ma-filters
        const floorSetting = {
          name: floorSettingsName,
          filterConfig: {
            raiSettings: {
              raiFilters: [
                {
                  filterType:
                    protos.google.cloud.modelarmor.v1.RaiFilterType.HARASSMENT,
                  confidenceLevel:
                    protos.google.cloud.modelarmor.v1.DetectionConfidenceLevel
                      .LOW_AND_ABOVE,
                },
                {
                  filterType:
                    protos.google.cloud.modelarmor.v1.RaiFilterType
                      .SEXUALLY_EXPLICIT,
                  confidenceLevel:
                    protos.google.cloud.modelarmor.v1.DetectionConfidenceLevel
                      .LOW_AND_ABOVE,
                },
              ],
            },
          },
          enableFloorSettingEnforcement: true,
        };
      
        const request = {
          floorSetting: floorSetting,
        };
      
        const [response] = await client.updateFloorSetting(request);
        return response;
      }
      
      return await updateOrganizationFloorSettings();

    PHP

    Pour exécuter ce code, commencez par configurer un environnement de développement PHP et installez le SDK Model Armor pour PHP.

    • Mettez à jour le paramètre de plancher Model Armor pour un projet donné.

      use Google\Cloud\ModelArmor\V1\Client\ModelArmorClient;
      use Google\Cloud\ModelArmor\V1\RaiFilterType;
      use Google\Cloud\ModelArmor\V1\DetectionConfidenceLevel;
      use Google\Cloud\ModelArmor\V1\UpdateFloorSettingRequest;
      use Google\Cloud\ModelArmor\V1\FilterConfig;
      use Google\Cloud\ModelArmor\V1\FloorSetting;
      use Google\Cloud\ModelArmor\V1\RaiFilterSettings;
      use Google\Cloud\ModelArmor\V1\RaiFilterSettings\RaiFilter;
      
      /**
       * Updates the floor settings for a given project.
       *
       * @param string $projectId The project Id for which the floor settings is to be updated.
       *
       */
      function update_project_floor_settings(string $projectId): void
      {
          $client = new ModelArmorClient();
      
          $floorSettingsName = sprintf('projects/%s/locations/global/floorSetting', $projectId);
      
          // Build the floor settings with your preferred filters
          // For more details on filters, please refer to the following doc:
          // https://cloud.google.com/security-command-center/docs/key-concepts-model-armor#ma-filters
      
          $raiFilterSetting = (new RaiFilterSettings())
              ->setRaiFilters([
                  (new RaiFilter())
                      ->setFilterType(RaiFilterType::HATE_SPEECH)
                      ->setConfidenceLevel(DetectionConfidenceLevel::HIGH)
              ]);
      
          $filterConfig = (new FilterConfig())->setRaiSettings($raiFilterSetting);
          $floorSetting = (new FloorSetting())
              ->setName($floorSettingsName)
              ->setFilterConfig($filterConfig)
              ->setEnableFloorSettingEnforcement(true);
      
          $updateRequest = (new UpdateFloorSettingRequest())->setFloorSetting($floorSetting);
      
          $response = $client->updateFloorSetting($updateRequest);
      
          printf("Floor setting updated: %s\n", $response->getName());
      }
    • Mettez à jour le paramètre plancher Model Armor pour un dossier donné.

      use Google\Cloud\ModelArmor\V1\Client\ModelArmorClient;
      use Google\Cloud\ModelArmor\V1\RaiFilterType;
      use Google\Cloud\ModelArmor\V1\DetectionConfidenceLevel;
      use Google\Cloud\ModelArmor\V1\UpdateFloorSettingRequest;
      use Google\Cloud\ModelArmor\V1\FilterConfig;
      use Google\Cloud\ModelArmor\V1\FloorSetting;
      use Google\Cloud\ModelArmor\V1\RaiFilterSettings;
      use Google\Cloud\ModelArmor\V1\RaiFilterSettings\RaiFilter;
      
      /**
       * Updates the floor settings for a given folder.
       *
       * @param string $folderId The folder Id for which the floor settings is to be updated.
       *
       */
      function update_folder_floor_settings(string $folderId): void
      {
          $client = new ModelArmorClient();
      
          $floorSettingsName = sprintf('folders/%s/locations/global/floorSetting', $folderId);
      
          // Build the floor settings with your preferred filters
          // For more details on filters, please refer to the following doc:
          // https://cloud.google.com/security-command-center/docs/key-concepts-model-armor#ma-filters
      
          $raiFilterSetting = (new RaiFilterSettings())
              ->setRaiFilters([
                  (new RaiFilter())
                      ->setFilterType(RaiFilterType::HATE_SPEECH)
                      ->setConfidenceLevel(DetectionConfidenceLevel::HIGH)
              ]);
      
          $filterConfig = (new FilterConfig())->setRaiSettings($raiFilterSetting);
          $floorSetting = (new FloorSetting())
              ->setName($floorSettingsName)
              ->setFilterConfig($filterConfig)
              ->setEnableFloorSettingEnforcement(true);
      
          $updateRequest = (new UpdateFloorSettingRequest())->setFloorSetting($floorSetting);
      
          $response = $client->updateFloorSetting($updateRequest);
      
          printf("Floor setting updated: %s\n", $response->getName());
      }
    • Mettez à jour le paramètre de plancher Model Armor pour une organisation donnée.

      use Google\Cloud\ModelArmor\V1\Client\ModelArmorClient;
      use Google\Cloud\ModelArmor\V1\RaiFilterType;
      use Google\Cloud\ModelArmor\V1\DetectionConfidenceLevel;
      use Google\Cloud\ModelArmor\V1\UpdateFloorSettingRequest;
      use Google\Cloud\ModelArmor\V1\FilterConfig;
      use Google\Cloud\ModelArmor\V1\FloorSetting;
      use Google\Cloud\ModelArmor\V1\RaiFilterSettings;
      use Google\Cloud\ModelArmor\V1\RaiFilterSettings\RaiFilter;
      
      /**
       * Updates the floor settings for a given organization.
       *
       * @param string $organizationId The organization Id for which the floor settings is to be updated.
       *
       */
      function update_organization_floor_settings(string $organizationId)
      {
          $client = new ModelArmorClient();
      
          $floorSettingsName = sprintf('organizations/%s/locations/global/floorSetting', $organizationId);
      
          // Build the floor settings with your preferred filters
          // For more details on filters, please refer to the following doc:
          // https://cloud.google.com/security-command-center/docs/key-concepts-model-armor#ma-filters
      
          $raiFilterSetting = (new RaiFilterSettings())
              ->setRaiFilters([
                  (new RaiFilter())
                      ->setFilterType(RaiFilterType::HATE_SPEECH)
                      ->setConfidenceLevel(DetectionConfidenceLevel::HIGH)
              ]);
      
          $filterConfig = (new FilterConfig())->setRaiSettings($raiFilterSetting);
          $floorSetting = (new FloorSetting())
              ->setName($floorSettingsName)
              ->setFilterConfig($filterConfig)
              ->setEnableFloorSettingEnforcement(true);
      
          $updateRequest = (new UpdateFloorSettingRequest())->setFloorSetting($floorSetting);
      
          $response = $client->updateFloorSetting($updateRequest);
      
          printf("Floor setting updated: %s\n", $response->getName());
      }

    Python

    Pour exécuter ce code, commencez par configurer un environnement de développement Python et installez le SDK Model Armor pour Python.

    Examiner les résultats concernant les cas de non-respect des paramètres de plancher

    Chaque résultat Model Armor identifie une violation du paramètre de plancher. Un cas de non-respect survient lorsqu'un modèle Model Armor ne respecte pas les normes de sécurité minimales définies par les paramètres de plancher de la hiérarchie des ressources. Les paramètres de plancher définissent les exigences minimales pour les modèles.

    Les résultats sont générés lorsque l'un des cas de non-respect des paramètres de plancher suivants se produit :

    • Un modèle avec des paramètres moins restrictifs est créé avant la configuration des paramètres de plancher.
    • Il manque des filtres obligatoires dans un modèle.
    • Un modèle ne respecte pas le niveau de confiance minimal pour les filtres.

    Lorsqu'une infraction est détectée, un résultat de gravité élevée est généré dans Security Command Center (uniquement si vous utilisez le niveau de service Premium ou Enterprise de Security Command Center). Le résultat indique le paramètre de plancher enfreint, le modèle non conforme et des informations sur le non-respect.

    L'exemple suivant montre le champ sourceProperties du résultat. Ce non-respect, lié au filtre d'URI malveillants, s'est produit parce que le paramètre de modèle pour maliciousUriFilterSettings est DISABLED, mais que les paramètres de plancher exigent qu'il soit ENABLED.

    {
      "filterConfig": {
        "raiSettings": {
          "raiFilters": [
            {
              "filterType": "HATE_SPEECH",
              "confidenceLevel": {
                "floorSettings": "LOW_AND_ABOVE",
                "template": "MEDIUM_AND_ABOVE"
              }
            },
            {
              "filterType": "HARASSMENT",
              "confidenceLevel": {
                "floorSettings": "MEDIUM_AND_ABOVE",
                "template": "HIGH"
              }
            }
          ]
        },
        "piAndJailbreakFilterSettings": {
          "confidenceLevel": {
            "floorSettings": "LOW_AND_ABOVE",
            "template": "HIGH"
          }
        },
        "maliciousUriFilterSettings": {
          "floorSettings": "ENABLED",
          "template": "DISABLED"
        }
      }
    }

    Étape suivante