Vorlagen erstellen und verwalten

Mit Model Armor-Vorlagen konfigurieren Sie die Überprüfung von Prompts und Antworten für Ihre KI-Anwendungen. Die Vorlagen enthalten benutzerdefinierte Filter und Schwellenwerte für mehrere Sicherheitskategorien. In diesem Dokument wird beschrieben, wie Sie Model Armor-Vorlagen erstellen und verwalten. Weitere Informationen finden Sie unter Model Armor-Vorlagen.

Regionalen oder multiregionalen Endpunkt verwenden

Wenn Sie mit einer Model Armor-Vorlage arbeiten, müssen Sie einen regionalen oder multiregionalen Endpunkt (modelarmor.LOCATION.rep.googleapis.com) verwenden, der dem Standort der Vorlage entspricht. Informationen dazu, wie die Datenstandortvorgabe für jede Region oder Multiregion erzwungen wird, finden Sie unter Erzwingung der Datenstandortvorgabe für Vorlagen.

Der globale Endpunkt (modelarmor.googleapis.com) unterstützt nicht die Verwaltung von Model Armor-Vorlagen oder die Bereinigung von Prompts und Antworten.

Wann Model Armor-Vorlagen verwendet werden sollten

Im Folgenden sind einige gängige Anwendungsfälle aufgeführt:

  • Standardisierung der Überprüfung in allen Anwendungen: Definieren Sie zentrale Filterkonfigurationen und Schwellenwerte, auf die mehrere Arbeitslasten verweisen können.
  • Erkennungsschwellenwerte und Konfigurationen anpassen: Passen Sie die Filterempfindlichkeit an, z. B. durch Festlegen von niedrigen, mittleren oder hohen Konfidenzschwellenwerten, und konfigurieren Sie Filter für bestimmte Anwendungsfälle oder Umgebungen.
  • Schutz für mehrere Kategorien konfigurieren: Kombinieren Sie Sensitive Data Protection, Jailbreak-Erkennung, Prüfung auf schädliche URIs und Prompt-Injection-Filter in einer einzigen Richtlinie.
  • Entwicklungs- und Produktionsrichtlinien isolieren: Verwenden Sie separate Vorlagen, um strengere Filterregeln in der Staging-Umgebung zu testen, bevor Sie sie in Produktionsdiensten einführen.

Hinweis

Führen Sie zuerst die folgenden Aufgaben aus.

Erforderliche Berechtigungen einholen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Model Armor Admin (roles/modelarmor.admin) für das Projekt zuzuweisen, das die Model Armor-Vorlage enthält, um die Berechtigungen zu erhalten, die Sie zum Verwalten von Model Armor-Vorlagen benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

APIs aktivieren

Sie müssen die Model Armor API aktivieren, bevor Sie Model Armor verwenden können.

Console

  1. Aktivieren Sie die Model Armor API, falls sie noch nicht aktiviert ist.

    Erforderliche Rollen zum Aktivieren von APIs

    Zum Aktivieren von APIs benötigen Sie die Berechtigung serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Inhaberrolle (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen

    API aktivieren

  2. Wählen Sie das Projekt aus, in dem Sie Model Armor aktivieren möchten.

gcloud

Führen Sie die folgenden Schritte mit der Google Cloud CLI und der Model Armor API aus, bevor Sie beginnen:

  1. Aktivieren Sie Cloud Shell in der Google Cloud Console.

    Cloud Shell aktivieren

    Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.

  2. Aktivieren Sie die Model Armor API, falls sie noch nicht aktiviert ist:

    Erforderliche Rollen zum Aktivieren von APIs

    Zum Aktivieren von APIs benötigen Sie die Berechtigung serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Inhaberrolle (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen

    gcloud services enable modelarmor.googleapis.com

  3. API-Endpunktüberschreibung mit der gcloud CLI festlegen

API-Endpunktüberschreibung mit der gcloud CLI festlegen

Dieser Schritt ist nur erforderlich, wenn Sie die gcloud CLI mit Model Armor verwenden und eine andere Region oder Multiregion als die standardmäßige Multiregion us verwenden möchten. Sie müssen die API-Endpunktüberschreibung manuell festlegen, damit die gcloud CLI Anfragen korrekt an den Model Armor-Dienst weiterleitet.

Führen Sie den folgenden Befehl aus, um den API-Endpunkt für den Model Armor-Dienst festzulegen.

gcloud config set api_endpoint_overrides/modelarmor "https://modelarmor.LOCATION.rep.googleapis.com/"

Ersetzen Sie LOCATION durch die Region oder Multiregion, in der Sie Model Armor verwenden möchten.

Model Armor-Vorlage erstellen

Model Armor-Vorlagen definieren die spezifischen Filter und Schwellenwerte, die Model Armor verwendet, um Prompts und Antworten auf Sicherheitsrisiken zu prüfen. So erstellen Sie eine Model Armor-Vorlage:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Model Armor auf.

    Zu Model Armor

  2. Prüfen Sie, ob Sie das Projekt aufrufen, für das Sie Model Armor aktiviert haben.

  3. Klicken Sie auf der Seite Model Armor auf Vorlage erstellen. Die Seite Vorlage erstellen wird angezeigt.

  4. Geben Sie die Vorlagen-ID an. Die Vorlagen-ID kann Buchstaben, Ziffern, Unterstriche oder Bindestriche enthalten. Er darf nicht länger als 63 Zeichen sein, keine Leerzeichen enthalten und nicht mit einem Bindestrich beginnen.

  5. Wählen Sie im Bereich Standorttyp eine Region oder eine Multiregion aus, in der die Model Armor-Vorgänge ausgeführt werden sollen. Sie können den Standort später nicht mehr ändern.

  6. Optional: Wählen Sie im Abschnitt Compliance für Datenstandort aus, ob die Erzwingung des Datenstandorts aktiviert werden soll. Standardmäßig sind alle Model Armor-Funktionen, die nicht lokal am ausgewählten Standort gehostet werden, deaktiviert, um zu verhindern, dass Ihre Daten in andere Gerichtsbarkeiten übertragen werden. In diesem Abschnitt sind die deaktivierten Funktionen aufgeführt.

    Sie können die Funktionen, die durch die Erzwingung des Datenstandorts eingeschränkt sind, aktivieren, indem Sie die Option Datenstandort erzwingen deaktivieren. Diese Aktion ermöglicht die Weiterleitung Ihrer Daten über verschiedene Gerichtsbarkeiten hinweg.

  7. Optional: Fügen Sie im Bereich Labels alle Schlüssel/Wert-Paare hinzu, die Sie zum Gruppieren ähnlicher Vorlagen verwenden möchten.

  8. Wählen Sie im Bereich Filterversion entweder die Filterversionsnummer oder den Filterversionsalias aus.

  9. Wählen Sie die Modalität aus, um anzugeben, ob Sie Text, Bilder oder beides prüfen möchten.

  10. Konfigurieren Sie im Abschnitt Erkennungen die Erkennungseinstellungen.

  11. Optional: Wenn Sie die Sensitive Data Protection-Erkennung auswählen, müssen Sie die Sensitive Data Protection-Einstellungen konfigurieren.

  12. Legen Sie im Abschnitt Verantwortungsbewusste Anwendung von KI das Konfidenzniveau für jeden Inhaltsfilter fest.

  13. Optional: Maximieren Sie den Abschnitt Zusätzliche Konfigurationen (optional) und konfigurieren Sie die folgenden Einstellungen:

    • Wählen Sie im Abschnitt Logging konfigurieren die Vorgänge aus, für die Sie das Logging konfigurieren möchten.
    • Wählen Sie im Abschnitt Unterstützung mehrerer Sprachen die Option Unterstützung mehrerer Sprachen aktivieren aus, um die Erkennung mehrerer Sprachen zu verwenden.
    • Wählen Sie im Abschnitt Erzwingungsmodus einen Erzwingungstyp aus.
  14. Klicken Sie auf Erstellen.

gcloud

Führen Sie dazu diesen Befehl aus:

 gcloud model-armor templates create TEMPLATE_ID --project=PROJECT_ID --location=LOCATION \
     --rai-settings-filters='[{ "filterType": "HATE_SPEECH", "confidenceLevel": "MEDIUM_AND_ABOVE" },{ "filterType": "HARASSMENT", "confidenceLevel": "MEDIUM_AND_ABOVE" },{ "filterType": "SEXUALLY_EXPLICIT", "confidenceLevel": "MEDIUM_AND_ABOVE" }]' \
     --basic-config-filter-enforcement=enabled  \
     --pi-and-jailbreak-filter-settings-enforcement=enabled \
     --pi-and-jailbreak-filter-settings-confidence-level=HIGH \
     --malicious-uri-filter-settings-enforcement=enabled \
     --template-metadata-custom-llm-response-safety-error-code=798 \
     --template-metadata-custom-llm-response-safety-error-message="test template llm response evaluation failed" \
     --template-metadata-custom-prompt-safety-error-code=799 \
     --template-metadata-custom-prompt-safety-error-message="test template prompt evaluation failed" \
     --template-metadata-ignore-partial-invocation-failures \
     --template-metadata-log-operations \
     --template-metadata-log-sanitize-operations

Ersetzen Sie Folgendes:

  • LOCATION: der Standort der Vorlage.
  • TEMPLATE_ID: die ID der Vorlage.
  • PROJECT_ID: die ID des Projekts, zu dem die Vorlage gehört.

REST

Verwenden Sie den folgenden Befehl, um eine neue Model Armor-Vorlage zu erstellen.

  curl -X POST \
    -d "FILTER_CONFIG" \
    -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=TEMPLATE_ID"

Ersetzen Sie Folgendes:

  • FILTER_CONFIG: die Filterkonfiguration für die Vorlage im JSON-Format.
  • PROJECT_ID: die ID des Projekts, zu dem die Vorlage gehört.
  • TEMPLATE_ID: die ID der zu erstellenden Vorlage.
  • LOCATION: der Standort der Vorlage.

Das folgende Beispiel zeigt die Model Armor-Filterkonfiguration (FilterConfig), in der Sie definieren, was erkannt werden soll. In diesem Beispiel sind die Filter für verantwortungsbewusste KI für Hassrede, Belästigung, gefährliche Inhalte und sexuell explizite Inhalte mit unterschiedlichen Konfidenzniveaus konfiguriert. Der Filter für die Erkennung von Prompt Injection und Jailbreaking ist mit einem Konfidenzniveau von HIGH aktiviert. Das bedeutet, dass nur Inhalte mit einer hohen Wahrscheinlichkeit gekennzeichnet werden. Der Filter für schädliche URIs ist aktiviert.

  export FILTER_CONFIG='{
   "filterConfig": {
    "raiSettings": {
     "raiFilters": [{
       "filterType": "HATE_SPEECH",
       "confidenceLevel": "MEDIUM_AND_ABOVE"
      }, {
      "filterType": "HARASSMENT",
      "confidenceLevel": "HIGH"
    }, {
      "filterType": "DANGEROUS",
      "confidenceLevel": "MEDIUM_AND_ABOVE"
    },{
      "filterType": "SEXUALLY_EXPLICIT",
      "confidenceLevel": "MEDIUM_AND_ABOVE"
    }]
  },

  "piAndJailbreakFilterSettings": {
    "filterEnforcement": "ENABLED",
    "confidenceLevel": "HIGH"
  },
  "maliciousUriFilterSettings": {
    "filterEnforcement": "ENABLED"
  }
 }
}'

curl -X POST \
 -d "$FILTER_CONFIG" \
 -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=TEMPLATE_ID"

Wenn Sie festlegen möchten, wie Model Armor Vorgänge, Fehler und Logs verarbeitet, legen Sie die Vorlagenmetadaten (TemplateMetadata) in Ihrem Befehl fest. Die Vorlagenmetadaten enthalten Einstellungen für die Spracherkennung, Modalitäten und die Einhaltung der Datenstandortanforderungen.

Im folgenden Beispiel wird eine Model Armor-Vorlagenkonfiguration erstellt, bei der die Erkennung mehrerer Sprachen und Modalitäten (Bild und Text) aktiviert ist.

  export TEMPLATE_CONFIG='{
   "filterConfig": {
    "raiSettings": {
     "raiFilters": [{
       "filterType": "HATE_SPEECH",
       "confidenceLevel": "MEDIUM_AND_ABOVE"
      }, {
      "filterType": "HARASSMENT",
      "confidenceLevel": "HIGH"
    }, {
      "filterType": "DANGEROUS",
      "confidenceLevel": "MEDIUM_AND_ABOVE"
    },{
      "filterType": "SEXUALLY_EXPLICIT",
      "confidenceLevel": "MEDIUM_AND_ABOVE"
    }]
  },

  "piAndJailbreakFilterSettings": {
    "filterEnforcement": "ENABLED",
    "confidenceLevel": "HIGH"
  },
  "maliciousUriFilterSettings": {
    "filterEnforcement": "ENABLED"
  }
 },
 "templateMetadata": {
    "multiLanguageDetection": {
      "enableMultiLanguageDetection": true
    },
    "modalities": ["MODALITY_IMAGE", "MODALITY_TEXT"]
  }
}'

curl -X POST \
 -d "$TEMPLATE_CONFIG"  \
 -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=TEMPLATE_ID"

C#

Wenn Sie diesen Code ausführen möchten, müssen Sie zuerst eine C#-Entwicklungsumgebung einrichten und das Model Armor C# SDK installieren.

using Google.Api.Gax.ResourceNames;
using Google.Cloud.ModelArmor.V1;
using System.Collections.Generic;

public class CreateTemplateSample
{
    public Template CreateTemplate(
        string projectId = "my-project",
        string locationId = "us-central1",
        string templateId = "my-template"
    )
    {
        ModelArmorClient client = new ModelArmorClientBuilder
        {
            Endpoint = $"modelarmor.{locationId}.rep.googleapis.com",
        }.Build();

        // Build the Model Armor template 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

        // Configure Responsible AI filter with multiple categories and their confidence
        // levels.
        RaiFilterSettings raiFilterSettings = new RaiFilterSettings();
        List<RaiFilterSettings.Types.RaiFilter> filters =
            new List<RaiFilterSettings.Types.RaiFilter>
            {
                new RaiFilterSettings.Types.RaiFilter
                {
                    FilterType = RaiFilterType.Dangerous,
                    ConfidenceLevel = DetectionConfidenceLevel.High,
                },
                new RaiFilterSettings.Types.RaiFilter
                {
                    FilterType = RaiFilterType.HateSpeech,
                    ConfidenceLevel = DetectionConfidenceLevel.High,
                },
                new RaiFilterSettings.Types.RaiFilter
                {
                    FilterType = RaiFilterType.SexuallyExplicit,
                    ConfidenceLevel = DetectionConfidenceLevel.LowAndAbove,
                },
                new RaiFilterSettings.Types.RaiFilter
                {
                    FilterType = RaiFilterType.Harassment,
                    ConfidenceLevel = DetectionConfidenceLevel.MediumAndAbove,
                },
            };

        raiFilterSettings.RaiFilters.Add(filters);

        Template template = new Template
        {
            FilterConfig = new FilterConfig { RaiSettings = raiFilterSettings },
        };

        CreateTemplateRequest request = new CreateTemplateRequest
        {
            ParentAsLocationName = LocationName.FromProjectLocation(projectId, locationId),
            TemplateId = templateId,
            Template = template,
        };

        Template createdTemplate = client.CreateTemplate(request);
        System.Console.WriteLine($"Created template: {createdTemplate.Name}");

        return createdTemplate;
    }
}

Go

Wenn Sie diesen Code ausführen möchten, müssen Sie zuerst eine Go-Entwicklungsumgebung einrichten und das Model Armor Go SDK installieren.


import (
	"context"
	"fmt"
	"io"

	modelarmor "cloud.google.com/go/modelarmor/apiv1"
	modelarmorpb "cloud.google.com/go/modelarmor/apiv1/modelarmorpb"
	"google.golang.org/api/option"
)

// createModelArmorTemplate method creates a new
// Model Armor template with the provided settings.
//
// w io.Writer: The writer to use for logging.
// projectID string: The ID of the Google Cloud project.
// locationID string: The ID of the Google Cloud location.
// templateID string: The ID of the template to create.
func createModelArmorTemplate(w io.Writer, projectID, locationID, templateID string) error {
	ctx := context.Background()

	// Create the call options
	opts := option.WithEndpoint(fmt.Sprintf("modelarmor.%s.rep.googleapis.com:443", locationID))
	// Create the Model Armor client.
	client, err := modelarmor.NewClient(ctx, opts)
	if err != nil {
		return fmt.Errorf("failed to create client for project %s, location %s: %w", projectID, locationID, err)
	}
	defer client.Close()

	// Build the Model Armor template 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](https://cloud.google.com/security-command-center/docs/key-concepts-model-armor#ma-filters)
	template := &modelarmorpb.Template{
		FilterConfig: &modelarmorpb.FilterConfig{
			PiAndJailbreakFilterSettings: &modelarmorpb.PiAndJailbreakFilterSettings{
				FilterEnforcement: modelarmorpb.PiAndJailbreakFilterSettings_ENABLED,
				ConfidenceLevel:   modelarmorpb.DetectionConfidenceLevel_MEDIUM_AND_ABOVE,
			},
			MaliciousUriFilterSettings: &modelarmorpb.MaliciousUriFilterSettings{
				FilterEnforcement: modelarmorpb.MaliciousUriFilterSettings_ENABLED,
			},
		},
	}
	parent := fmt.Sprintf("projects/%s/locations/%s", projectID, locationID)

	// Prepare the request for creating the template.
	req := &modelarmorpb.CreateTemplateRequest{
		Parent:     parent,
		TemplateId: templateID,
		Template:   template,
	}

	// Create the template.
	response, err := client.CreateTemplate(ctx, req)
	if err != nil {
		return fmt.Errorf("failed to create template: %v", err)
	}

	// Print the new template name using fmt.Fprintf with the io.Writer.
	fmt.Fprintf(w, "Created template: %s\n", response.Name)

	return err
}

Java

Wenn Sie diesen Code ausführen möchten, müssen Sie zuerst eine Java-Entwicklungsumgebung einrichten und das Model Armor Java SDK installieren.


import com.google.cloud.modelarmor.v1.CreateTemplateRequest;
import com.google.cloud.modelarmor.v1.DetectionConfidenceLevel;
import com.google.cloud.modelarmor.v1.FilterConfig;
import com.google.cloud.modelarmor.v1.LocationName;
import com.google.cloud.modelarmor.v1.ModelArmorClient;
import com.google.cloud.modelarmor.v1.ModelArmorSettings;
import com.google.cloud.modelarmor.v1.RaiFilterSettings;
import com.google.cloud.modelarmor.v1.RaiFilterSettings.RaiFilter;
import com.google.cloud.modelarmor.v1.RaiFilterType;
import com.google.cloud.modelarmor.v1.Template;
import java.io.IOException;
import java.util.List;

public class CreateTemplate {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.

    // Specify the Google Project ID.
    String projectId = "your-project-id";
    // Specify the location ID. For example, us-central1. 
    String locationId = "your-location-id";
    // Specify the template ID.
    String templateId = "your-template-id";

    createTemplate(projectId, locationId, templateId);
  }

  public static Template createTemplate(String projectId, String locationId, String templateId)
      throws IOException {
    // Construct the API endpoint URL.
    String apiEndpoint = String.format("modelarmor.%s.rep.googleapis.com:443", locationId);
    ModelArmorSettings modelArmorSettings = ModelArmorSettings.newBuilder().setEndpoint(apiEndpoint)
        .build();

    // Initialize the 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(modelArmorSettings)) {
      String parent = LocationName.of(projectId, locationId).toString();

      // Build the Model Armor template 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

      // Configure Responsible AI filter with multiple categories and their confidence
      // levels.
      RaiFilterSettings raiFilterSettings = RaiFilterSettings.newBuilder()
          .addAllRaiFilters(
              List.of(
                  RaiFilter.newBuilder()
                      .setFilterType(RaiFilterType.DANGEROUS)
                      .setConfidenceLevel(DetectionConfidenceLevel.HIGH)
                      .build(),
                  RaiFilter.newBuilder()
                      .setFilterType(RaiFilterType.HATE_SPEECH)
                      .setConfidenceLevel(DetectionConfidenceLevel.HIGH)
                      .build(),
                  RaiFilter.newBuilder()
                      .setFilterType(RaiFilterType.SEXUALLY_EXPLICIT)
                      .setConfidenceLevel(DetectionConfidenceLevel.LOW_AND_ABOVE)
                      .build(),
                  RaiFilter.newBuilder()
                      .setFilterType(RaiFilterType.HARASSMENT)
                      .setConfidenceLevel(DetectionConfidenceLevel.MEDIUM_AND_ABOVE)
                      .build()))
          .build();

      FilterConfig modelArmorFilter = FilterConfig.newBuilder()
          .setRaiSettings(raiFilterSettings)
          .build();

      Template template = Template.newBuilder()
          .setFilterConfig(modelArmorFilter)
          .build();

      CreateTemplateRequest request = CreateTemplateRequest.newBuilder()
          .setParent(parent)
          .setTemplateId(templateId)
          .setTemplate(template)
          .build();

      Template createdTemplate = client.createTemplate(request);
      System.out.println("Created template: " + createdTemplate.getName());

      return createdTemplate;
    }
  }
}

Node.js

Wenn Sie diesen Code ausführen möchten, müssen Sie zuerst eine Node.js-Entwicklungsumgebung einrichten und das Model Armor Node.js SDK installieren.

/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
// const projectId = 'your-project-id';
// const locationId = 'us-central1';
// const templateId = 'your-template-id';

const parent = `projects/${projectId}/locations/${locationId}`;

// 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({
  apiEndpoint: `modelarmor.${locationId}.rep.googleapis.com`,
});

/**  Build the Model Armor template 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 templateConfig = {
  filterConfig: {
    raiSettings: {
      raiFilters: [
        {
          filterType:
            protos.google.cloud.modelarmor.v1.RaiFilterType.HATE_SPEECH,
          confidenceLevel:
            protos.google.cloud.modelarmor.v1.DetectionConfidenceLevel.HIGH,
        },
        {
          filterType:
            protos.google.cloud.modelarmor.v1.RaiFilterType.SEXUALLY_EXPLICIT,
          confidenceLevel:
            protos.google.cloud.modelarmor.v1.DetectionConfidenceLevel
              .MEDIUM_AND_ABOVE,
        },
      ],
    },
  },
};

// Construct request
const request = {
  parent,
  templateId,
  template: templateConfig,
};

// Create the template
const [response] = await client.createTemplate(request);
return response;

PHP

Wenn Sie diesen Code ausführen möchten, müssen Sie zuerst eine PHP-Entwicklungsumgebung einrichten und das Model Armor PHP SDK installieren.

use Google\Cloud\ModelArmor\V1\Client\ModelArmorClient;
use Google\Cloud\ModelArmor\V1\Template;
use Google\Cloud\ModelArmor\V1\CreateTemplateRequest;
use Google\Cloud\ModelArmor\V1\FilterConfig;
use Google\Cloud\ModelArmor\V1\RaiFilterType;
use Google\Cloud\ModelArmor\V1\RaiFilterSettings;
use Google\Cloud\ModelArmor\V1\RaiFilterSettings\RaiFilter;
use Google\Cloud\ModelArmor\V1\DetectionConfidenceLevel;

/**
 * Create a Model Armor template.
 *
 * @param string $projectId The ID of the project (e.g. 'my-project').
 * @param string $locationId The ID of the location (e.g. 'us-central1').
 * @param string $templateId The ID of the template (e.g. 'my-template').
 */
function create_template(string $projectId, string $locationId, string $templateId): void
{
    $options = ['apiEndpoint' => "modelarmor.$locationId.rep.googleapis.com"];
    $client = new ModelArmorClient($options);
    $parent = $client->locationName($projectId, $locationId);

    /**
     * Build the Model Armor template with preferred filters.
     * For more details on filters, refer to:
     * https://cloud.google.com/security-command-center/docs/key-concepts-model-armor#ma-filters
     */

    $raiFilters = [
        (new RaiFilter())
            ->setFilterType(RaiFilterType::DANGEROUS)
            ->setConfidenceLevel(DetectionConfidenceLevel::HIGH),
        (new RaiFilter())
            ->setFilterType(RaiFilterType::HATE_SPEECH)
            ->setConfidenceLevel(DetectionConfidenceLevel::HIGH),
        (new RaiFilter())
            ->setFilterType(RaiFilterType::SEXUALLY_EXPLICIT)
            ->setConfidenceLevel(DetectionConfidenceLevel::LOW_AND_ABOVE),
        (new RaiFilter())
            ->setFilterType(RaiFilterType::HARASSMENT)
            ->setConfidenceLevel(DetectionConfidenceLevel::MEDIUM_AND_ABOVE),
    ];

    $raiFilterSetting = (new RaiFilterSettings())->setRaiFilters($raiFilters);

    $templateFilterConfig = (new FilterConfig())->setRaiSettings($raiFilterSetting);

    $template = (new Template())->setFilterConfig($templateFilterConfig);

    $request = (new CreateTemplateRequest)
        ->setParent($parent)
        ->setTemplateId($templateId)
        ->setTemplate($template);

    $response = $client->createTemplate($request);

    printf('Template created: %s' . PHP_EOL, $response->getName());
}

Python

Wenn Sie diesen Code ausführen möchten, müssen Sie zuerst eine Python-Entwicklungsumgebung einrichten und das Model Armor Python SDK installieren.


from google.api_core.client_options import ClientOptions
from google.cloud import modelarmor_v1

# TODO(Developer): Uncomment these variables.
# project_id = "your-google-cloud-project-id"
# location_id = "us-central1"
# template_id = "template_id"

# Create the Model Armor client.
client = modelarmor_v1.ModelArmorClient(
    transport="rest",
    client_options=ClientOptions(
        api_endpoint=f"modelarmor.{location_id}.rep.googleapis.com"
    ),
)

# Build the Model Armor template 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
template = modelarmor_v1.Template(
    filter_config=modelarmor_v1.FilterConfig(
        pi_and_jailbreak_filter_settings=modelarmor_v1.PiAndJailbreakFilterSettings(
            filter_enforcement=modelarmor_v1.PiAndJailbreakFilterSettings.PiAndJailbreakFilterEnforcement.ENABLED,
            confidence_level=modelarmor_v1.DetectionConfidenceLevel.MEDIUM_AND_ABOVE,
        ),
        malicious_uri_filter_settings=modelarmor_v1.MaliciousUriFilterSettings(
            filter_enforcement=modelarmor_v1.MaliciousUriFilterSettings.MaliciousUriFilterEnforcement.ENABLED,
        ),
    ),
)

# Prepare the request for creating the template.
request = modelarmor_v1.CreateTemplateRequest(
    parent=f"projects/{project_id}/locations/{location_id}",
    template_id=template_id,
    template=template,
)

# Create the template.
response = client.create_template(request=request)

# Print the new template name.
print(f"Created template: {response.name}")

Compliance mit Datenstandort festlegen

Standardmäßig wird bei jeder von Ihnen erstellten Vorlage die Einhaltung der Datenstandortanforderungen strikt erzwungen. Das bedeutet, dass alle Model Armor-Funktionen, die nicht in der Rechtsprechung für die Region der Vorlage gehostet werden, deaktiviert sind. Durch die Durchsetzung der Compliance für den Datenstandort wird verhindert, dass Ihre Daten die Gerichtsbarkeit verlassen.

Bei Vorlagen, die umfassende Sicherheitsfilter gegenüber strengen Datenstandortanforderungen priorisieren, können Sie die Erzwingung des Datenstandorts für verwendete und übertragene Daten deaktivieren. Deaktivieren Sie dazu die Option Datenstandort erzwingen über dieGoogle Cloud Console oder setzen Sie data_residency_compliant über die Model Armor API auf false. Ihre ruhenden Daten bleiben unabhängig vom Status dieser Option datenstandortkonform.

Wenn Sie die Compliance mit dem Datenstandort in einer Vorlage deaktivieren, erlauben Sie die Weiterleitung Ihrer Daten über mehrere Gerichtsbarkeiten hinweg. Das bedeutet, dass Model Armor Anfragen an andere Gerichtsbarkeiten weiterleiten kann, wenn bestimmte Funktionen in der Gerichtsbarkeit der Vorlage nicht lokal verfügbar sind.

Wenn Sie die Compliance mit dem Datenstandort deaktivieren, werden alle Model Armor-Funktionen aktiviert, mit Ausnahme des Bildmodus, der auf die multiregionalen Standorte us und eu beschränkt bleibt.

Filterversion auswählen

Model Armor-Filterversionen bieten ein Gleichgewicht zwischen Stabilität für Produktionsarbeitslasten und Zugriff auf die aktualisierten Modelle zur Bedrohungserkennung. Sie konfigurieren die Filterversion auf Vorlagenebene. Die Filterversion gilt für alle Filter in dieser Vorlage, mit Ausnahme der Filter, die unter Filter, die keine Filterversionen verwenden aufgeführt sind. Weitere Informationen finden Sie unter Filterversion für eine Vorlage festlegen.

Modalität auswählen

Geben Sie mit der Modalität an, ob Sie Folgendes scannen möchten:

  • Alle: Text und Bilder werden gescannt.
  • Spezifische Modalitäten:

Weitere Informationen finden Sie unter Bildprüfung und Prompts mit Bildern bereinigen.

Erkennungen konfigurieren

Erkennungen sind die spezifischen Prüfungen, die Model Armor für Prompts und Antworten durchführt. Model Armor bietet ein flexibles System zum Konfigurieren von Erkennungen, mit dem Sie das Schutzniveau für Ihre KI-Anwendungen anpassen können. Sie konfigurieren Erkennungen, wenn Sie Vorlagen erstellen. Model Armor führt die folgenden Erkennungsprüfungen für Prompts und Antworten durch:

  • Erkennung schädlicher URLs: Identifiziert Webadressen (URLs), die Nutzern oder Systemen schaden sollen. Diese URLs können zu Phishing-Websites, Malware-Downloads oder anderen Cyberangriffen führen. Weitere Informationen finden Sie unter Erkennung schädlicher URLs.

  • Erkennung von Prompt Injection und Jailbreaking: Erkennt schädliche Inhalte und Jailbreak-Versuche in einem Prompt. Wir empfehlen, das Konfidenzniveau auf Hoch festzulegen, um falsch positive Ergebnisse zu minimieren und ein konsistentes Erkennungsverhalten zu gewährleisten. Auch wenn Sie das Konfidenzniveau auf Hoch festlegen, kann es in seltenen Fällen zu falsch positiven Ergebnissen kommen. Weitere Informationen finden Sie unter Erkennung von Prompt Injection und Jailbreaking.

  • Sensitive Data Protection: Erkennt sensible Daten und hilft, deren versehentliche Offenlegung durch Angriffe wie Prompt Injection zu verhindern. Weitere Informationen finden Sie unter Sensitive Data Protection.

Einstellungen für Sensitive Data Protection festlegen

Model Armor verwendet Sensitive Data Protection, um sensible Informationen in Ihren LLM-Interaktionen zu identifizieren und zu verhindern, dass sie offengelegt werden. Weitere Informationen finden Sie unter Sensitive Data Protection.

Model Armor bietet zwei Modi zum Konfigurieren von Sensitive Data Protection:

  • Basic: Ein einfacherer Ansatz, bei dem vordefinierte infoTypes verwendet werden, um sensible Daten zu erkennen. Weitere Informationen zu den vordefinierten infoTypes finden Sie unter Grundlegende Konfiguration für Sensitive Data Protection.

  • Erweitert: Eine konfigurierbare Option, bei der in Sensitive Data Protection definierte Vorlagen verwendet werden, um sensible Daten zu prüfen oder zu de-identifizieren.

Wenn Sie den Modus Erweitert auswählen, geben Sie die folgenden Parameter an:

  • Inspektionsvorlage: Vorlagen zum Speichern von Konfigurationsinformationen für Inspektionsscanjobs, einschließlich der zu verwendenden vordefinierten oder benutzerdefinierten infoType-Detektoren. Geben Sie den Vorlagennamen im folgenden Format ein: projects/PROJECT_ID/locations/LOCATION/inspectTemplates/TEMPLATE_ID

  • Optional: De-Identifikationsvorlage: Vorlagen zum Speichern von Konfigurationsinformationen für De-Identifikationsjobs, einschließlich infoType- und strukturierter Dataset-Transformationen. Geben Sie eine Kennung für die De-Identifikationsvorlage im folgenden Format ein: projects/PROJECT_ID/locations/LOCATION/deidentifyTemplates/TEMPLATE_ID

Prüfen Sie, ob die Inspektionsvorlage und die De-Identifikationsvorlage in Sensitive Data Protection vorhanden sind. Wenn sich die Vorlage in einem anderen Projekt befindet, muss dem Model Armor-Dienst-Agent die Rolle DLP-Nutzer (roles/dlp.user) und die Rolle DLP-Leser (roles/dlp.reader) für dieses Projekt zugewiesen werden.

Model Armor verarbeitet Anfragen unterschiedlich, je nachdem, ob Sie nur eine Prüfvorlage oder sowohl eine Prüf- als auch eine De-Identifikationsvorlage angeben:

  • Nur Prüfvorlage: Model Armor sucht im Inhalt nach den infoTypes, die in Ihrer Prüfvorlage angegeben sind, und meldet die Ergebnisse.

  • Prüf- und De-Identifikationsvorlage: Model Armor de-identifiziert die infoTypes, die sowohl in der Prüf- als auch in der De-Identifikationsvorlage angegeben sind.

Model Armor de-identifiziert nur die infoTypes, die Sie sowohl in Ihren Prüf- als auch in Ihren De-Identifikationsvorlagen angeben. Wenn Sie beispielsweise CREDIT_CARD_NUMBER nicht sowohl in der Inspektions- als auch in der De-Identifikationsvorlage angeben, werden von Model Armor keine Kreditkartennummern gekennzeichnet oder de-identifiziert, die in Prompts und Antworten übergeben werden.

Konfidenzniveau festlegen

Das Konfidenzniveau gibt an, wie wahrscheinlich es ist, dass die Ergebnisse einem Inhaltsfiltertyp entsprechen. Sie können das Konfidenzniveau für jeden Inhaltsfilter festlegen. Folgende Werte sind möglich:

  • Keine: Es werden keine Inhalte erkannt.
  • Niedrig und höher: Inhalte werden mit einem niedrigen, mittleren oder hohen Konfidenzniveau erkannt.
  • Mittel und höher: Inhalte werden mit einem mittleren oder hohen Konfidenzniveau erkannt.
  • Hoch: Inhalte werden mit einem hohen Konfidenzniveau erkannt.

Wenn Sie eine strengere Erzwingung wünschen, legen Sie das Konfidenzniveau auf Niedrig und höher fest. Damit werden die meisten Inhalte erkannt, die in einen bestimmten Inhaltsfiltertyp fallen.

Informationen zum Aktivieren des umfassenden Loggings für eine Vorlage finden Sie unter Model Armor-Audit- und Plattform-Logging.

Erzwingungstyp für Vorlagen definieren

Wenn Sie konfigurieren möchten, wie Model Armor mit Erkennungen umgeht, legen Sie den Erzwingungstyp fest.

Legen Sie im Feld template_metadata der Vorlagenkonfiguration enforcement_type auf INSPECT_ONLY oder INSPECT_AND_BLOCK fest.

export TEMPLATE_CONFIG='{
   "filter_config": {
    "rai_settings": {
     "rai_filters": [{
       "filter_type": "HATE_SPEECH",
       "confidence_level": "MEDIUM_AND_ABOVE"
      }, {
      "filter_type": "HARASSMENT",
      "confidence_level": "MEDIUM_AND_ABOVE"
    }, {
      "filter_type": "DANGEROUS",
      "confidence_level": "MEDIUM_AND_ABOVE"
    },{
      "filter_type": "SEXUALLY_EXPLICIT",
      "confidence_level": "MEDIUM_AND_ABOVE"
    }]
  },
  "pi_and_jailbreak_filter_settings": {
    "filter_enforcement": "ENABLED",
    "confidence_level": "HIGH"
  },
  "malicious_uri_filter_settings": {
    "filter_enforcement": "ENABLED"
  }
 },
 "template_metadata": {
    "enforcement_type": "INSPECT_ONLY",
    "multi_language_detection": {
      "enableMultiLanguageDetection": true
    }
  }
}'

curl -X POST \
    -d "$TEMPLATE_CONFIG"  \
    -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=TEMPLATE_ID"

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID des Projekts, zu dem die Vorlage gehört.
  • TEMPLATE_ID: die ID der zu erstellenden Vorlage.
  • LOCATION: der Standort der Vorlage.

Vorlagenspezifische Ausschlussregeln konfigurieren

Mit Ausschlussregeln in Model Armor können Sie falsch positive Erkennungen für genehmigte domainspezifische Begriffe, eindeutige Geschäftskontexte oder temporäre operative Problemumgehungen reduzieren. Sie konfigurieren diese Regeln auf Vorlagenebene für unterstützte Filter, um zu verhindern, dass harmlose Inhalte Erkennungen auslösen. Weitere Informationen finden Sie unter Vorlagenspezifische Ausschlussregeln konfigurieren.

Model Armor-Vorlage ansehen

Sehen Sie sich vorhandene Vorlagen an, um zu verstehen, welche Konfigurationen verfügbar sind, und um Probleme mit der Überprüfung von Prompts und Antworten zu beheben.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Model Armor auf.

    Zu Model Armor

  2. Prüfen Sie, ob Sie das Projekt aufrufen, für das Sie Model Armor aktiviert haben. Die Seite Model Armor wird angezeigt. Dort sind die für Ihr Projekt erstellten Vorlagen aufgeführt.

  3. Klicken Sie auf eine Vorlage in der Liste, um die Details aufzurufen.

gcloud

Führen Sie dazu diesen Befehl aus:

gcloud model-armor templates describe TEMPLATE_ID --project=PROJECT_ID --location=LOCATION

Ersetzen Sie Folgendes:

  • LOCATION: der Standort der Vorlage.
  • TEMPLATE_ID: die ID der Vorlage.
  • PROJECT_ID: die ID des Projekts, zu dem die Vorlage gehört.

REST

Führen Sie dazu diesen Befehl aus:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID"

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID des Projekts, zu dem die Vorlage gehört.
  • TEMPLATE_ID: die ID der Vorlage, die angezeigt werden soll.
  • LOCATION: der Standort der Vorlage.

C#

Wenn Sie diesen Code ausführen möchten, müssen Sie zuerst eine C#-Entwicklungsumgebung einrichten und das Model Armor C# SDK installieren.

using Google.Cloud.ModelArmor.V1;
using System;

public class GetTemplateSample
{
    public Template GetTemplate(
        string projectId = "my-project",
        string locationId = "us-central1",
        string templateId = "my-template"
    )
    {
        ModelArmorClient client = new ModelArmorClientBuilder
        {
            Endpoint = $"modelarmor.{locationId}.rep.googleapis.com",
        }.Build();

        GetTemplateRequest request = new GetTemplateRequest
        {
            TemplateName = TemplateName.FromProjectLocationTemplate(projectId, locationId, templateId),
        };

        Template template = client.GetTemplate(request);
        Console.WriteLine($"Retrieved template: {template.Name}");

        return template;
    }
}

Go

Wenn Sie diesen Code ausführen möchten, müssen Sie zuerst eine Go-Entwicklungsumgebung einrichten und das Model Armor Go SDK installieren.


import (
	"context"
	"fmt"
	"io"

	modelarmor "cloud.google.com/go/modelarmor/apiv1"
	modelarmorpb "cloud.google.com/go/modelarmor/apiv1/modelarmorpb"
	"google.golang.org/api/option"
)

// getModelArmorTemplate method retrieves a Model Armor template.
//
// w io.Writer: The writer to use for logging.
// projectID string: The ID of the project.
// locationID string: The location of the template.
// templateID string: The ID of the template.
func getModelArmorTemplate(w io.Writer, projectID, locationID, templateID string) error {
	ctx := context.Background()

	// Create options for the Model Armor client
	opts := option.WithEndpoint(fmt.Sprintf("modelarmor.%s.rep.googleapis.com:443", locationID))
	// Create the Model Armor client.
	client, err := modelarmor.NewClient(ctx, opts)
	if err != nil {
		return fmt.Errorf("failed to create client for project %s, location %s: %w", projectID, locationID, err)
	}
	defer client.Close()

	// Initialize request arguments.
	req := &modelarmorpb.GetTemplateRequest{
		Name: fmt.Sprintf("projects/%s/locations/%s/templates/%s", projectID, locationID, templateID),
	}

	// Get the template.
	response, err := client.GetTemplate(ctx, req)
	if err != nil {
		return fmt.Errorf("failed to get template: %w", err)
	}

	// Print the template name using fmt.Fprintf with the io.Writer.
	fmt.Fprintf(w, "Retrieved template: %s\n", response.Name)

	return nil
}

Java

Wenn Sie diesen Code ausführen möchten, müssen Sie zuerst eine Java-Entwicklungsumgebung einrichten und das Model Armor Java SDK installieren.


import com.google.cloud.modelarmor.v1.ModelArmorClient;
import com.google.cloud.modelarmor.v1.ModelArmorSettings;
import com.google.cloud.modelarmor.v1.Template;
import com.google.cloud.modelarmor.v1.TemplateName;
import java.io.IOException;

public class GetTemplate {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-project-id";
    String locationId = "your-location-id";
    String templateId = "your-template-id";

    getTemplate(projectId, locationId, templateId);
  }

  public static Template getTemplate(String projectId, String locationId, String templateId)
      throws IOException {
    // Construct the API endpoint URL.
    String apiEndpoint = String.format("modelarmor.%s.rep.googleapis.com:443", locationId);

    ModelArmorSettings modelArmorSettings = ModelArmorSettings.newBuilder().setEndpoint(apiEndpoint)
        .build();

    // Initialize the 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(modelArmorSettings)) {
      // Build the template name.
      String name = TemplateName.of(projectId, locationId, templateId).toString();

      // Get the template.
      Template template = client.getTemplate(name);

      // Find more details about Template object here:
      // https://cloud.google.com/security-command-center/docs/reference/model-armor/rest/v1/projects.locations.templates#Template
      System.out.printf("Retrieved template: %s\n", template.getName());

      return template;
    }
  }
}

Node.js

Wenn Sie diesen Code ausführen möchten, müssen Sie zuerst eine Node.js-Entwicklungsumgebung einrichten und das Model Armor Node.js SDK installieren.

/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
// const projectId = 'my-project';
// const locationId = 'my-location';
// const templateId = 'my-template';

const name = `projects/${projectId}/locations/${locationId}/templates/${templateId}`;

// Imports the Model Armor library
const {ModelArmorClient} = require('@google-cloud/modelarmor').v1;

// Instantiates a client
const client = new ModelArmorClient({
  apiEndpoint: `modelarmor.${locationId}.rep.googleapis.com`,
});

const request = {
  name: name,
};

// Run request
const [response] = await client.getTemplate(request);
return response;

PHP

Wenn Sie diesen Code ausführen möchten, müssen Sie zuerst eine PHP-Entwicklungsumgebung einrichten und das Model Armor PHP SDK installieren.

use Google\Cloud\ModelArmor\V1\Client\ModelArmorClient;
use Google\Cloud\ModelArmor\V1\GetTemplateRequest;

/**
 * Gets a Model Armor template.
 *
 * @param string $projectId The ID of your Google Cloud Platform project (e.g. 'my-project').
 * @param string $locationId The ID of the location where the template is stored (e.g. 'us-central1').
 * @param string $templateId The ID of the template (e.g. 'my-template').
 */
function get_template(string $projectId, string $locationId, string $templateId): void
{
    $options = ['apiEndpoint' => "modelarmor.$locationId.rep.googleapis.com"];
    $client = new ModelArmorClient($options);
    $name = sprintf('projects/%s/locations/%s/templates/%s', $projectId, $locationId, $templateId);

    $getTemplateRequest = (new GetTemplateRequest())->setName($name);

    $response = $client->getTemplate($getTemplateRequest);

    printf('Template retrieved: %s' . PHP_EOL, $response->getName());
}

Python

Wenn Sie diesen Code ausführen möchten, müssen Sie zuerst eine Python-Entwicklungsumgebung einrichten und das Model Armor Python SDK installieren.


from google.api_core.client_options import ClientOptions
from google.cloud import modelarmor_v1

# TODO(Developer): Uncomment these variables.
# project_id = "YOUR_PROJECT_ID"
# location_id = "us-central1"
# template_id = "template_id"

# Create the Model Armor client.
client = modelarmor_v1.ModelArmorClient(
    transport="rest",
    client_options=ClientOptions(
        api_endpoint=f"modelarmor.{location_id}.rep.googleapis.com"
    ),
)

# Initialize request arguments.
request = modelarmor_v1.GetTemplateRequest(
    name=f"projects/{project_id}/locations/{location_id}/templates/{template_id}",
)

# Get the template.
response = client.get_template(request=request)
print(response.name)

Model Armor-Vorlage aktualisieren

Aktualisieren Sie Ihre Vorlagen regelmäßig, um einen robusten und effektiven Sicherheitsstatus für Ihre KI-Anwendungen aufrechtzuerhalten.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Model Armor auf.

    Zu Model Armor

  2. Prüfen Sie, ob Sie das Projekt aufrufen, für das Sie Model Armor aktiviert haben. Die Seite Model Armor wird angezeigt. Dort sind die für Ihre Organisation erstellten Vorlagen aufgeführt.

  3. Klicken Sie in der Liste auf die Vorlage, die Sie aktualisieren möchten. Die Seite Vorlagendetails wird angezeigt.

  4. Klicken Sie auf Bearbeiten.

  5. Aktualisieren Sie die erforderlichen Parameter und klicken Sie auf Speichern.

gcloud

Führen Sie den Befehl gcloud model-armor templates update aus, um eine Vorlage zu aktualisieren, und fügen Sie die Flags für die Einstellungen hinzu, die Sie ändern möchten.

Mit dem folgenden Befehl werden beispielsweise die Filtereinstellungen und Metadaten einer Vorlage aktualisiert:

gcloud model-armor templates update TEMPLATE_ID \
    --project=PROJECT_ID \
    --location=LOCATION \
    --rai-settings-filters='[{ "filterType": "HATE_SPEECH", "confidenceLevel": "MEDIUM_AND_ABOVE" },{ "filterType": "HARASSMENT", "confidenceLevel": "MEDIUM_AND_ABOVE" },{ "filterType": "DANGEROUS", "confidenceLevel": "MEDIUM_AND_ABOVE" },{ "filterType": "SEXUALLY_EXPLICIT", "confidenceLevel": "MEDIUM_AND_ABOVE" }]' \
    --basic-config-filter-enforcement=enabled \
    --pi-and-jailbreak-filter-settings-enforcement=enabled \
    --pi-and-jailbreak-filter-settings-confidence-level=HIGH \
    --malicious-uri-filter-settings-enforcement=enabled \
    --template-metadata-custom-llm-response-safety-error-code=798 \
    --template-metadata-custom-llm-response-safety-error-message="test template llm response evaluation failed" \
    --template-metadata-custom-prompt-safety-error-code=799 \
    --template-metadata-custom-prompt-safety-error-message="test template prompt evaluation failed" \
    --template-metadata-ignore-partial-invocation-failures \
    --template-metadata-log-operations \
    --template-metadata-log-sanitize-operations

Ersetzen Sie Folgendes:

  • TEMPLATE_ID: die ID der Vorlage.
  • PROJECT_ID: die ID des Projekts, zu dem die Vorlage gehört.
  • LOCATION: der Standort der Vorlage.

REST

Führen Sie dazu diesen Befehl aus:

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

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID des Projekts, zu dem die Vorlage gehört.
  • LOCATION: der Standort der Vorlage.
  • TEMPLATE_ID: die ID der Vorlage.
  • UPDATE_MASK: die Felder, die Sie aktualisieren möchten, z. B. filterConfig, filterConfig.piAndJailbreakFilterSettings oder filterConfig.filterRuleSettings. Weitere Informationen finden Sie unter Ausschlussregeln in einer Vorlage aktualisieren. Wenn Sie dieses Feld leer lassen, wird die gesamte Filterkonfiguration aktualisiert.

Alle anderen Felder sind unveränderlich. Versuche, andere Felder zu aktualisieren (z. B. den Vorlagennamen), führen zu einem Fehler.

C#

Wenn Sie diesen Code ausführen möchten, müssen Sie zuerst eine C#-Entwicklungsumgebung einrichten und das Model Armor C# SDK installieren.

using Google.Cloud.ModelArmor.V1;
using Google.Protobuf.WellKnownTypes;
using System;
using System.Collections.Generic;

namespace ModelArmor.Samples
{
    public class UpdateTemplateSample
    {
        public Template UpdateTemplate(
            string projectId = "my-project",
            string locationId = "us-central1",
            string templateId = "my-template"
        )
        {
            // Construct the API endpoint URL.
            ModelArmorClientBuilder clientBuilder = new ModelArmorClientBuilder
            {
                Endpoint = $"modelarmor.{locationId}.rep.googleapis.com",
            };

            // Create the client.
            ModelArmorClient client = clientBuilder.Build();

            // Get the template name.
            TemplateName name = TemplateName.FromProjectLocationTemplate(projectId, locationId, templateId);

            // Build the updated Model Armor template with modified 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
            RaiFilterSettings raiFilterSettings = new RaiFilterSettings();
            List<RaiFilterSettings.Types.RaiFilter> filters =
                new List<RaiFilterSettings.Types.RaiFilter>
                {
                    new RaiFilterSettings.Types.RaiFilter
                    {
                        FilterType = RaiFilterType.Dangerous,
                        ConfidenceLevel = DetectionConfidenceLevel.High,
                    },
                    new RaiFilterSettings.Types.RaiFilter
                    {
                        FilterType = RaiFilterType.HateSpeech,
                        ConfidenceLevel = DetectionConfidenceLevel.MediumAndAbove,
                    },
                    new RaiFilterSettings.Types.RaiFilter
                    {
                        FilterType = RaiFilterType.SexuallyExplicit,
                        ConfidenceLevel = DetectionConfidenceLevel.MediumAndAbove,
                    },
                    new RaiFilterSettings.Types.RaiFilter
                    {
                        FilterType = RaiFilterType.Harassment,
                        ConfidenceLevel = DetectionConfidenceLevel.MediumAndAbove,
                    },
                };

            raiFilterSettings.RaiFilters.Add(filters);

            Template template = new Template
            {
                TemplateName = name,
                FilterConfig = new FilterConfig { RaiSettings = raiFilterSettings },
            };

            // Create a field mask to specify which fields to update.
            // Ref: https://protobuf.dev/reference/protobuf/google.protobuf/#field-mask
            FieldMask updateMask = new FieldMask { Paths = { "filter_config.rai_settings" } };

            // Prepare the request.
            UpdateTemplateRequest request = new UpdateTemplateRequest
            {
                Template = template,
                UpdateMask = updateMask,
            };

            // Send the request.
            Template updatedTemplate = client.UpdateTemplate(request);
            Console.WriteLine($"Updated template: {updatedTemplate.Name}");

            return updatedTemplate;
        }
    }
}

Go

Wenn Sie diesen Code ausführen möchten, müssen Sie zuerst eine Go-Entwicklungsumgebung einrichten und das Model Armor Go SDK installieren.


import (
	"context"
	"fmt"
	"io"

	modelarmor "cloud.google.com/go/modelarmor/apiv1"
	modelarmorpb "cloud.google.com/go/modelarmor/apiv1/modelarmorpb"
	"google.golang.org/api/option"
)

// updateModelArmorTemplate updates a Model Armor template.
//
// updateModelArmorTemplate method updates a Model Armor template.
//
// w io.Writer: The writer to use for logging.
// projectID string: The ID of the project.
// locationID string: The ID of the location.
// templateID string: The ID of the template.
func updateModelArmorTemplate(w io.Writer, projectID, locationID, templateID string) error {
	ctx := context.Background()

	// Create options for Model Armor client.
	opts := option.WithEndpoint(fmt.Sprintf("modelarmor.%s.rep.googleapis.com:443", locationID))
	// Create the Model Armor client.
	client, err := modelarmor.NewClient(ctx, opts)
	if err != nil {
		return fmt.Errorf("failed to create client for project %s, location %s: %w", projectID, locationID, err)
	}
	defer client.Close()

	// Build the Model Armor template 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](https://cloud.google.com/security-command-center/docs/key-concepts-model-armor#ma-filters)
	updatedTemplate := &modelarmorpb.Template{
		Name: fmt.Sprintf("projects/%s/locations/%s/templates/%s", projectID, locationID, templateID),
		FilterConfig: &modelarmorpb.FilterConfig{
			PiAndJailbreakFilterSettings: &modelarmorpb.PiAndJailbreakFilterSettings{
				FilterEnforcement: modelarmorpb.PiAndJailbreakFilterSettings_ENABLED,
				ConfidenceLevel:   modelarmorpb.DetectionConfidenceLevel_LOW_AND_ABOVE,
			},
			MaliciousUriFilterSettings: &modelarmorpb.MaliciousUriFilterSettings{
				FilterEnforcement: modelarmorpb.MaliciousUriFilterSettings_ENABLED,
			},
		},
	}

	// Initialize request argument(s).
	req := &modelarmorpb.UpdateTemplateRequest{
		Template: updatedTemplate,
	}

	// Update the template.
	response, err := client.UpdateTemplate(ctx, req)
	if err != nil {
		return fmt.Errorf("failed to update template: %w", err)
	}

	// Print the updated filters in the template.
	fmt.Fprintf(w, "Updated Filter Config: %+v\n", response.FilterConfig)

	return nil
}

Java

Wenn Sie diesen Code ausführen möchten, müssen Sie zuerst eine Java-Entwicklungsumgebung einrichten und das Model Armor Java SDK installieren.


import com.google.cloud.modelarmor.v1.DetectionConfidenceLevel;
import com.google.cloud.modelarmor.v1.FilterConfig;
import com.google.cloud.modelarmor.v1.ModelArmorClient;
import com.google.cloud.modelarmor.v1.ModelArmorSettings;
import com.google.cloud.modelarmor.v1.RaiFilterSettings;
import com.google.cloud.modelarmor.v1.RaiFilterSettings.RaiFilter;
import com.google.cloud.modelarmor.v1.RaiFilterType;
import com.google.cloud.modelarmor.v1.Template;
import com.google.cloud.modelarmor.v1.TemplateName;
import com.google.cloud.modelarmor.v1.UpdateTemplateRequest;
import com.google.protobuf.FieldMask;
import java.io.IOException;
import java.util.List;

public class UpdateTemplate {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.

    // Specify the Google Project ID.
    String projectId = "your-project-id";
    // Specify the location ID. For example, us-central1. 
    String locationId = "your-location-id";
    // Specify the template ID.
    String templateId = "your-template-id";

    updateTemplate(projectId, locationId, templateId);
  }

  public static Template updateTemplate(String projectId, String locationId, String templateId)
      throws IOException {
    // Construct the API endpoint URL.
    String apiEndpoint = String.format("modelarmor.%s.rep.googleapis.com:443", locationId);
    ModelArmorSettings modelArmorSettings = ModelArmorSettings.newBuilder().setEndpoint(apiEndpoint)
        .build();

    // Initialize the 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(modelArmorSettings)) {
      // Get the template name.
      String name = TemplateName.of(projectId, locationId, templateId).toString();

      // Build the updated Model Armor template with modified 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
      RaiFilterSettings raiFilterSettings =
          RaiFilterSettings.newBuilder()
              .addAllRaiFilters(
                  List.of(
                      RaiFilter.newBuilder()
                          .setFilterType(RaiFilterType.DANGEROUS)
                          .setConfidenceLevel(DetectionConfidenceLevel.HIGH)
                          .build(),
                      RaiFilter.newBuilder()
                          .setFilterType(RaiFilterType.HATE_SPEECH)
                          .setConfidenceLevel(DetectionConfidenceLevel.MEDIUM_AND_ABOVE)
                          .build(),
                      RaiFilter.newBuilder()
                          .setFilterType(RaiFilterType.HARASSMENT)
                          .setConfidenceLevel(DetectionConfidenceLevel.MEDIUM_AND_ABOVE)
                          .build(),
                      RaiFilter.newBuilder()
                          .setFilterType(RaiFilterType.SEXUALLY_EXPLICIT)
                          .setConfidenceLevel(DetectionConfidenceLevel.MEDIUM_AND_ABOVE)
                          .build()))
              .build();

      FilterConfig modelArmorFilter = FilterConfig.newBuilder()
          .setRaiSettings(raiFilterSettings)
          .build();

      Template template = Template.newBuilder()
          .setName(name)
          .setFilterConfig(modelArmorFilter)
          .build();

      // Create a field mask to specify which fields to update.
      // Ref: https://protobuf.dev/reference/protobuf/google.protobuf/#field-mask
      FieldMask updateMask = FieldMask.newBuilder()
          .addPaths("filter_config.rai_settings")
          .build();

      UpdateTemplateRequest request = UpdateTemplateRequest.newBuilder()
          .setTemplate(template)
          .setUpdateMask(updateMask)
          .build();

      Template updatedTemplate = client.updateTemplate(request);
      System.out.println("Updated template: " + updatedTemplate.getName());

      return updatedTemplate;
    }
  }
}

Node.js

Wenn Sie diesen Code ausführen möchten, müssen Sie zuerst eine Node.js-Entwicklungsumgebung einrichten und das Model Armor Node.js SDK installieren.

/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
// const projectId = 'your-project-id';
// const locationId = 'us-central1';
// const templateId = 'template-id';

const modelarmor = require('@google-cloud/modelarmor');
const {ModelArmorClient} = modelarmor.v1;
const {protos} = modelarmor;

const DetectionConfidenceLevel =
  protos.google.cloud.modelarmor.v1.DetectionConfidenceLevel;
const PiAndJailbreakFilterEnforcement =
  protos.google.cloud.modelarmor.v1.PiAndJailbreakFilterSettings
    .PiAndJailbreakFilterEnforcement;
const MaliciousUriFilterEnforcement =
  protos.google.cloud.modelarmor.v1.MaliciousUriFilterSettings
    .MaliciousUriFilterEnforcement;

// Instantiates a client
const client = new ModelArmorClient({
  apiEndpoint: `modelarmor.${locationId}.rep.googleapis.com`,
});

// Build the updated template configuration
const updatedTemplate = {
  name: `projects/${projectId}/locations/${locationId}/templates/${templateId}`,
  filterConfig: {
    piAndJailbreakFilterSettings: {
      filterEnforcement: PiAndJailbreakFilterEnforcement.ENABLED,
      confidenceLevel: DetectionConfidenceLevel.LOW_AND_ABOVE,
    },
    maliciousUriFilterSettings: {
      filterEnforcement: MaliciousUriFilterEnforcement.ENABLED,
    },
  },
};

const request = {
  template: updatedTemplate,
};

const [response] = await client.updateTemplate(request);
return response;

PHP

Wenn Sie diesen Code ausführen möchten, müssen Sie zuerst eine PHP-Entwicklungsumgebung einrichten und das Model Armor PHP SDK installieren.

use Google\Cloud\ModelArmor\V1\Client\ModelArmorClient;
use Google\Cloud\ModelArmor\V1\DetectionConfidenceLevel;
use Google\Cloud\ModelArmor\V1\PiAndJailbreakFilterSettings\PiAndJailbreakFilterEnforcement;
use Google\Cloud\ModelArmor\V1\PiAndJailbreakFilterSettings;
use Google\Cloud\ModelArmor\V1\MaliciousUriFilterSettings;
use Google\Cloud\ModelArmor\V1\UpdateTemplateRequest;
use Google\Cloud\ModelArmor\V1\FilterConfig;
use Google\Cloud\ModelArmor\V1\Template;

/**
 * Updates a Model Armor template with the specified configuration.
 *
 * @param string $projectId The ID of the project (e.g. 'my-project').
 * @param string $locationId The ID of the location (e.g. 'us-central1').
 * @param string $templateId The ID of the template (e.g. 'my-template').
 */
function update_template(string $projectId, string $locationId, string $templateId): void
{
    $options = ['apiEndpoint' => "modelarmor.$locationId.rep.googleapis.com"];
    $client = new ModelArmorClient($options);

    $templateFilterConfig = (new FilterConfig())
        ->setPiAndJailbreakFilterSettings(
            (new PiAndJailbreakFilterSettings())
                ->setFilterEnforcement(PiAndJailbreakFilterEnforcement::ENABLED)
                ->setConfidenceLevel(DetectionConfidenceLevel::LOW_AND_ABOVE)
        )
        ->setMaliciousUriFilterSettings(
            (new MaliciousUriFilterSettings())
                ->setFilterEnforcement(PiAndJailbreakFilterEnforcement::ENABLED)
        );

    $template = (new Template())
        ->setFilterConfig($templateFilterConfig)
        ->setName("projects/$projectId/locations/$locationId/templates/$templateId");

    $updateTemplateRequest = (new UpdateTemplateRequest())->setTemplate($template);

    $response = $client->updateTemplate($updateTemplateRequest);

    printf('Template updated: %s' . PHP_EOL, $response->getName());
}

Python

Wenn Sie diesen Code ausführen möchten, müssen Sie zuerst eine Python-Entwicklungsumgebung einrichten und das Model Armor Python SDK installieren.


from google.api_core.client_options import ClientOptions
from google.cloud import modelarmor_v1

# TODO(Developer): Uncomment these variables.
# project_id = "YOUR_PROJECT_ID"
# location_id = "us-central1"
# template_id = "template_id"

# Create the Model Armor client.
client = modelarmor_v1.ModelArmorClient(
    transport="rest",
    client_options=ClientOptions(
        api_endpoint=f"modelarmor.{location_id}.rep.googleapis.com"
    ),
)

# Build the Model Armor template 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
updated_template = modelarmor_v1.Template(
    name=f"projects/{project_id}/locations/{location_id}/templates/{template_id}",
    filter_config=modelarmor_v1.FilterConfig(
        pi_and_jailbreak_filter_settings=modelarmor_v1.PiAndJailbreakFilterSettings(
            filter_enforcement=modelarmor_v1.PiAndJailbreakFilterSettings.PiAndJailbreakFilterEnforcement.ENABLED,
            confidence_level=modelarmor_v1.DetectionConfidenceLevel.LOW_AND_ABOVE,
        ),
        malicious_uri_filter_settings=modelarmor_v1.MaliciousUriFilterSettings(
            filter_enforcement=modelarmor_v1.MaliciousUriFilterSettings.MaliciousUriFilterEnforcement.ENABLED,
        ),
    ),
)

# Initialize request argument(s).
request = modelarmor_v1.UpdateTemplateRequest(template=updated_template)

# Update the template.
response = client.update_template(request=request)

# Print the updated filters in the template.
print(response.filter_config)

Model Armor-Vorlage löschen

Löschen Sie eine Vorlage, wenn sie nicht mehr verwendet wird, durch eine neue Vorlage ersetzt wird oder sich die Sicherheitsrichtlinien ändern.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Model Armor auf.

    Zu Model Armor

  2. Prüfen Sie, ob Sie das Projekt aufrufen, für das Sie Model Armor aktiviert haben. Die Seite Model Armor wird angezeigt. Dort sind die für Ihre Organisation erstellten Vorlagen aufgeführt.

  3. Klicken Sie in der Liste auf die Vorlage, die Sie löschen möchten. Die Seite Vorlagendetails wird angezeigt.

  4. Klicken Sie auf Löschen. Es wird ein Bestätigungsdialogfeld angezeigt.

  5. Geben Sie den Vorlagennamen ein, um das Löschen zu bestätigen, und klicken Sie auf Löschen.

gcloud

Führen Sie dazu diesen Befehl aus:

gcloud model-armor templates delete TEMPLATE_ID --project=PROJECT_ID --location=LOCATION

Ersetzen Sie Folgendes:

  • LOCATION: der Standort der Vorlage.
  • TEMPLATE_ID: die ID der Vorlage.
  • PROJECT_ID: die ID des Projekts, zu dem die Vorlage gehört.

REST

Führen Sie dazu diesen Befehl aus:

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)"  \
  "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID"

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID des Projekts, zu dem die Vorlage gehört.
  • LOCATION: der Standort der Vorlage.
  • TEMPLATE_ID: die ID der Vorlage.

C#

Wenn Sie diesen Code ausführen möchten, müssen Sie zuerst eine C#-Entwicklungsumgebung einrichten und das Model Armor C# SDK installieren.

using Google.Cloud.ModelArmor.V1;
using System;

public class DeleteTemplateSample
{
    public void DeleteTemplate(
        string projectId = "my-project",
        string locationId = "us-central1",
        string templateId = "my-template"
    )
    {
        ModelArmorClient client = new ModelArmorClientBuilder
        {
            Endpoint = $"modelarmor.{locationId}.rep.googleapis.com",
        }.Build();

        DeleteTemplateRequest request = new DeleteTemplateRequest
        {
            TemplateName = TemplateName.FromProjectLocationTemplate(projectId, locationId, templateId),
        };

        client.DeleteTemplate(request);
        Console.WriteLine($"Deleted template: {templateId}");
    }
}

Go

Wenn Sie diesen Code ausführen möchten, müssen Sie zuerst eine Go-Entwicklungsumgebung einrichten und das Model Armor Go SDK installieren.


import (
	"context"
	"fmt"
	"io"

	modelarmor "cloud.google.com/go/modelarmor/apiv1"
	modelarmorpb "cloud.google.com/go/modelarmor/apiv1/modelarmorpb"
	"google.golang.org/api/option"
)

// deleteModelArmorTemplate method deletes a Model Armor template with the provided ID.
//
// w io.Writer: The writer to use for logging.
// projectID string: The ID of the Google Cloud project.
// locationID string: The ID of the Google Cloud location.
// templateID string: The ID of the template to delete.
func deleteModelArmorTemplate(w io.Writer, projectID, locationID, templateID string) error {
	ctx := context.Background()

	// Create option for Model Armor client.
	opts := option.WithEndpoint(fmt.Sprintf("modelarmor.%s.rep.googleapis.com:443", locationID))
	// Create the Model Armor client.
	client, err := modelarmor.NewClient(ctx, opts)
	if err != nil {
		return fmt.Errorf("failed to create client for project %s, location %s: %w", projectID, locationID, err)
	}
	defer client.Close()

	// Build the request for deleting the template.
	req := &modelarmorpb.DeleteTemplateRequest{
		Name: fmt.Sprintf("projects/%s/locations/%s/templates/%s", projectID, locationID, templateID),
	}

	// Delete the template.
	if err := client.DeleteTemplate(ctx, req); err != nil {
		return fmt.Errorf("failed to delete template: %w", err)
	}

	// Print the success message using fmt.Fprintf with the io.Writer.
	fmt.Fprintf(w, "Successfully deleted Model Armor template: %s\n", req.Name)

	return err
}

Java

Wenn Sie diesen Code ausführen möchten, müssen Sie zuerst eine Java-Entwicklungsumgebung einrichten und das Model Armor Java SDK installieren.


import com.google.cloud.modelarmor.v1.ModelArmorClient;
import com.google.cloud.modelarmor.v1.ModelArmorSettings;
import com.google.cloud.modelarmor.v1.TemplateName;
import java.io.IOException;

public class DeleteTemplate {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.

    // Specify the Google Project ID.
    String projectId = "your-project-id";
    // Specify the location ID. For example, us-central1.
    String locationId = "your-location-id";
    // Specify the template ID.
    String templateId = "your-template-id";

    deleteTemplate(projectId, locationId, templateId);
  }

  public static void deleteTemplate(String projectId, String locationId, String templateId)
      throws IOException {

    // Construct the API endpoint URL.
    String apiEndpoint = String.format("modelarmor.%s.rep.googleapis.com:443", locationId);
    ModelArmorSettings modelArmorSettings = ModelArmorSettings.newBuilder().setEndpoint(apiEndpoint)
        .build();

    // Initialize the 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(modelArmorSettings)) {
      String name = TemplateName.of(projectId, locationId, templateId).toString();

      // Note: Ensure that the template you are deleting isn't used by any models.
      client.deleteTemplate(name);
      System.out.println("Deleted template: " + name);
    }
  }
}

Node.js

Wenn Sie diesen Code ausführen möchten, müssen Sie zuerst eine Node.js-Entwicklungsumgebung einrichten und das Model Armor Node.js SDK installieren.

/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
// const projectId = 'my-project';
// const locationId = 'us-central1';
// const templateId = 'my-template';

const name = `projects/${projectId}/locations/${locationId}/templates/${templateId}`;

// Imports the Model Armor library
const {ModelArmorClient} = require('@google-cloud/modelarmor');

// Instantiates a client
const client = new ModelArmorClient({
  apiEndpoint: `modelarmor.${locationId}.rep.googleapis.com`,
});

const response = await client.deleteTemplate({
  name: name,
});
return response;

PHP

Wenn Sie diesen Code ausführen möchten, müssen Sie zuerst eine PHP-Entwicklungsumgebung einrichten und das Model Armor PHP SDK installieren.

use Google\Cloud\ModelArmor\V1\Client\ModelArmorClient;
use Google\Cloud\ModelArmor\V1\DeleteTemplateRequest;

/**
 * Deletes a Model Armor template.
 *
 * @param string $projectId The ID of the project (e.g. 'my-project').
 * @param string $locationId The ID of the location (e.g. 'us-central1').
 * @param string $templateId The ID of the template (e.g. 'my-template').
 */
function delete_template(string $projectId, string $locationId, string $templateId): void
{
    $options = ['apiEndpoint' => "modelarmor.$locationId.rep.googleapis.com"];
    $client = new ModelArmorClient($options);
    $templateName = sprintf('projects/%s/locations/%s/templates/%s', $projectId, $locationId, $templateId);

    $dltTemplateRequest = (new DeleteTemplateRequest())->setName($templateName);

    $client->deleteTemplate($dltTemplateRequest);

    printf('Deleted template: %s' . PHP_EOL, $templateName);
}

Python

Wenn Sie diesen Code ausführen möchten, müssen Sie zuerst eine Python-Entwicklungsumgebung einrichten und das Model Armor Python SDK installieren.


from google.api_core.client_options import ClientOptions
from google.cloud import modelarmor_v1

# TODO(Developer): Uncomment these variables.
# project_id = "YOUR_PROJECT_ID"
# location_id = "us-central1"
# template_id = "template_id"

# Create the Model Armor client.
client = modelarmor_v1.ModelArmorClient(
    transport="rest",
    client_options=ClientOptions(
        api_endpoint=f"modelarmor.{location_id}.rep.googleapis.com"
    ),
)

# Build the request for deleting the template.
request = modelarmor_v1.DeleteTemplateRequest(
    name=f"projects/{project_id}/locations/{location_id}/templates/{template_id}",
)

# Delete the template.
client.delete_template(request=request)

Metadaten der Vorlage

Mit den Metadaten der Model Armor-Vorlage können Sie das Verhalten von Model Armor konfigurieren, einschließlich der Verarbeitung von Sicherheits- und Sicherheitsprüfungen, der Fehlerbehandlung und des Logging-Verhaltens.

Die Vorlagenmetadaten für Model Armor enthalten die folgenden Felder:

Metadaten Typ Standardwert Beschreibung
enforcement_type Enum INSPECT_AND_BLOCK

Definiert den Erzwingungstyp. Verwenden Sie einen der folgenden Werte:

  • INSPECT_ONLY: Model Armor prüft Anfragen, die gegen die konfigurierten Einstellungen verstoßen, blockiert sie aber nicht.
  • INSPECT_AND_BLOCK: Model Armor blockiert Anfragen, die gegen die konfigurierten Einstellungen verstoßen.
log_template_operations Boolesch Falsch Aktiviert das Logging von Vorlagenvorgängen.
log_sanitize_operations Boolesch Falsch Aktiviert das Logging von Bereinigungsvorgängen.
multiLanguageDetection Boolesch Falsch Aktiviert die Erkennung mehrerer Sprachen.
Modalitäten (Vorabversion) Enum Leer Legt fest, ob Text, Bilder oder beides gescannt werden soll. Wenn Sie dieses Feld leer lassen, wird nur Text gescannt.

Verwenden Sie einen der folgenden Werte:

data_residency_compliant Boolesch Richtig

Gibt an, ob die Vorlage strengen Compliance-Anforderungen für den Datenstandort unterliegt (Verarbeitung innerhalb der Gerichtsbarkeit).

  • True: Deaktiviert Funktionen, die in der Gerichtsbarkeit der Region Ihrer Vorlage nicht lokal unterstützt werden, um zu verhindern, dass Daten die lokale Gerichtsbarkeit verlassen.
  • False: Deaktiviert die Compliance-Prüfungen für den Datenstandort und ermöglicht die Weiterleitung Ihrer Daten über mehrere Gerichtsbarkeiten hinweg, wenn eine Funktion in der Gerichtsbarkeit nicht lokal verfügbar ist.

Weitere Informationen zu diesem Feld finden Sie in diesem Dokument unter Compliance für Datenstandort festlegen.

Weitere Informationen zum Datenstandort für Vorlagen finden Sie unter Erzwingung des Datenstandorts für Vorlagen.

Nächste Schritte