Integrazione di Model Armor con Vertex AI

Model Armor può essere integrato direttamente in Vertex AI utilizzando le impostazioni di base o i modelli. L'integrazione di Model Armor in Vertex AI ti consente di filtrare le richieste inviate ai modelli Gemini e le risposte ricevute e di ispezionare o bloccare richieste o risposte se violano le soglie delle impostazioni di base. Model Armor fornisce protezione per prompt e risposte all'interno dell'API Gemini in Vertex AI per il metodo generateContent. Devi abilitare Cloud Logging per ottenere visibilità sui risultati della sanificazione di prompt e risposte. Le località supportate per questa integrazione sono us-central1, us-east4, us-west1 e europe-west4. Durante l'anteprima, non è previsto alcun costo per l'utilizzo di questa integrazione. Per informazioni sui prezzi, consulta Prezzi di Model Armor.

Prima di iniziare

Concedi all'utente Model Armor l'autorizzazione per il account di servizio Vertex AI.

gcloud projects add-iam-policy-binding PROJECT_ID --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com' --role='roles/modelarmor.user'
  

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto Google Cloud .
  • PROJECT_NUMBER: il tuo Google Cloud numero di progetto.

Configura impostazioni di base

Utilizzi le impostazioni di base per configurare le soglie minime di rilevamento per i modelli Model Armor. Queste impostazioni verificano che tutti i modelli nuovi e modificati soddisfino i requisiti delle norme di base.

Prima di configurare le impostazioni del piano, tieni presente quanto segue:

  • Le impostazioni del piano possono essere impostate a livello di organizzazione, cartella e progetto. L'interfaccia utente è disponibile solo per le impostazioni del piano a livello di progetto. Per impostare le impostazioni del prezzo minimo a livello di organizzazione o cartella, devi utilizzare l'API.
  • L'interfaccia utente è disponibile solo a livello di progetto e consente di ereditare le impostazioni a livello di organizzazione o cartella.

Per configurare le impostazioni di base, vedi Configurare le impostazioni di base.

Per configurare le impostazioni del piano con l'integrazione di Vertex AI, esegui il seguente comando:

  curl -X PATCH \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -d '{"filterConfig" : {}, "integratedServices": "AI_PLATFORM", "aiPlatformFloorSetting":{"inspect_only":true, "enableCloudLogging":true}}' \
      "https://modelarmor.googleapis.com/v1/projects/PROJECT_ID/locations/global/floorSetting"

Sostituisci PROJECT_ID con l'ID del progetto per le impostazioni del piano.

Dopo aver configurato le impostazioni di base per attivare la sanificazione di Vertex AI, Model Armor sanifica tutte le chiamate API generateContent agli endpoint Gemini del progetto utilizzando le impostazioni di filtro specificate.

Il seguente esempio di codice mostra come utilizzare il metodo generateContent.

curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/gemini-2.0-flash-001:generateContent" -d '{
"contents": [
    {
        "role": "user",
        "parts": [
            {
                "text": ""
            }
        ]
    }
]
, "generationConfig": {
    "responseModalities": ["TEXT"]
    ,"temperature": 0.2
    ,"maxOutputTokens": 1024
    ,"topP": 0.8
}
}'

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto Google Cloud .
  • LOCATION: la Google Cloud posizione dell'endpoint Gemini. Per le località supportate, consulta Località per l'API Model Armor.

Il seguente esempio di codice mostra la risposta del metodo generateContent.

{
  "promptFeedback": {
    "blockReason": "MODEL_ARMOR",
    "blockReasonMessage": "Blocked by Floor Setting. The prompt violated Responsible AI Safety settings (Harassment, Dangerous), Prompt Injection and Jailbreak filters."
  },
  "usageMetadata": {
    "trafficType": "ON_DEMAND"
  },
  "modelVersion": "gemini-2.0-flash-001",
  "createTime": "2025-03-26T13:14:36.961184Z",
  "responseId": "vP3jZ6DVOqLKnvgPqZL-8Ao"
}

Configura i modelli Model Armor

Model Armor può essere integrato anche con Vertex AI utilizzando i modelli Model Armor. I modelli ti consentono di configurare il modo in cui Model Armor controlla prompt e risposte e definiscono le configurazioni del filtro di sicurezza.

Devi prima creare i modelli e poi utilizzarli con il metodo generateContent di Gemini. Per saperne di più sui modelli, vedi Creare e gestire i modelli Model Armor.

Dopo aver configurato il modello Model Armor, trasmetti l'ID modello come parametro quando effettui una chiamata all'API Gemini utilizzando il metodo generateContent. Vertex AI indirizzerà la richiesta a Model Armor per l'elaborazione.

Il seguente esempio di codice mostra la richiesta al metodo generateContent.

curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://{LOCATION}-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/locations/{LOCATION}/publishers/google/models/gemini-2.0-flash-001:generateContent" -d '{
"contents": [
    {
        "role": "user",
        "parts": [
            {
                "text": ""
            }
        ]
    }
]
, "generationConfig": {
    "responseModalities": ["TEXT"]
    ,"temperature": 0.2
    ,"maxOutputTokens": 1024
    ,"topP": 0.8
},
 "model_armor_config": {
        "prompt_template_name": "projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID",
"response_template_name": "projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID"
    }
}'

Sostituisci quanto segue:

  • PROJECT_ID: l' Google Cloud ID progetto.
  • LOCATION: la Google Cloud posizione dell'endpoint Gemini. Le località supportate sono us-central1, us-east4, us-west1 e europe-west4.
  • TEMPLATE_ID: ID modello Armor.

Il seguente esempio di codice mostra la risposta del metodo generateContent.

{
  "promptFeedback": {
    "blockReason": "MODEL_ARMOR",
    "blockReasonMessage": "Blocked by Floor Setting. The prompt violated Responsible AI Safety settings (Harassment, Dangerous), Prompt Injection and Jailbreak filters."
  },
  "usageMetadata": {
    "trafficType": "ON_DEMAND"
  },
  "modelVersion": "gemini-2.0-flash-001",
  "createTime": "2025-03-26T13:14:36.961184Z",
  "responseId": "vP3jZ6DVOqLKnvgPqZL-8Ao"
}