Membersihkan perintah dan respons

Model Armor memeriksa perintah dan respons untuk tingkat keyakinan penyaringan yang dikonfigurasi. Halaman ini menjelaskan cara membersihkan perintah dan respons secara mendetail.

Sebelum memulai, buat template dengan mengikuti petunjuk di Membuat template.

Membersihkan dialog

Model Armor membersihkan perintah dalam format berbasis teks dan file.

Perintah teks

Gunakan perintah ini untuk membersihkan perintah teks di Model Armor. Gunakan template (ma-template-id-1234) yang kita buat sebagai bagian dari langkah 7 - Perlindungan Data Sensitif Lanjutan dari Membuat template.

curl -X POST \
-d  "{user_prompt_data: { text: 'How do I make a bomb?' } }" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://modelarmor.$LOCATION.rep.googleapis.com/v1/projects/$PROJECT_ID/locations/$LOCATION/templates/$TEMPLATE_ID:sanitizeUserPrompt"

Ganti kode berikut:

  • gcloud auth print-access-token adalah token akses untuk akun yang ditentukan.
  • PROJECT_ID - ID project tempat template berada.
  • LOCATION - lokasi template.
  • TEMPLATE_ID - ID template.

Tindakan ini akan menghasilkan respons berikut. Perhatikan bahwa MATCH_FOUND berada dalam kategori Berbahaya.

{
 "sanitizationResult": {
   "filterMatchState": "NO_MATCH_FOUND",
   "invocationResult": "SUCCESS",
   "filterResults": {
     "csam": {
       "csamFilterFilterResult": {
         "executionState": "EXECUTION_SUCCESS",
         "matchState": "NO_MATCH_FOUND"
       }
     },
     "malicious_uris": {
       "maliciousUriFilterResult": {
         "executionState": "EXECUTION_SUCCESS",
         "matchState": "NO_MATCH_FOUND"
       }
     },
     "rai": {
       "raiFilterResult": {
         "executionState": "EXECUTION_SUCCESS",
         "matchState": "MATCH_FOUND",
         "raiFilterTypeResults": {
           "sexually_explicit": {
             "matchState": "NO_MATCH_FOUND"
           },
           "hate_speech": {
             "matchState": "NO_MATCH_FOUND"
           },
           "harassment": {
             "matchState": "NO_MATCH_FOUND"
           },
           "dangerous": {
             "matchState": "MATCH_FOUND"
           }
         }
       }
     },
     "pi_and_jailbreak": {
       "piAndJailbreakFilterResult": {
         "executionState": "EXECUTION_SUCCESS",
         "matchState": "MATCH_FOUND"
       }
     },
     "sdp": {
       "sdpFilterResult": {
         "inspectResult": {
           "executionState": "EXECUTION_SUCCESS",
           "matchState": "NO_MATCH_FOUND"
         }
       }
     }
   }
 }
}

Konfigurasi dasar Perlindungan Data Sensitif

Buat template dengan setelan Perlindungan Data Sensitif dasar yang diaktifkan. Perlindungan Data Sensitif Dasar membantu Anda menyaring infoType Perlindungan Data Sensitif berikut:

  • CREDIT_CARD_NUMBER: Nomor kartu kredit memiliki panjang 12 hingga 19 digit. Nomor tersebut digunakan untuk transaksi pembayaran secara global.
  • US_SOCIAL_SECURITY_NUMBER: Nomor Jaminan Sosial (SSN) Amerika Serikat adalah nomor 9 digit yang dikeluarkan untuk warga negara AS, penduduk tetap, dan penduduk sementara. Detektor ini tidak akan cocok dengan angka yang berisi nol dalam kelompok digit mana pun (yaitu, 000-##-####, ###-00-####, atau ###-##-0000), dengan angka yang berisi 666 pada kelompok digit pertama, atau dengan angka yang digit pertamanya adalah 9.
  • FINANCIAL_ACCOUNT_NUMBER: Angka yang merujuk ke akun keuangan tertentu—misalnya, nomor rekening bank atau nomor rekening pensiun.
  • US_INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER: Nomor Identifikasi Wajib Pajak Pribadi (ITIN) Amerika Serikat adalah jenis Nomor Identifikasi Pajak (TIN) yang dikeluarkan oleh Internal Revenue Service (IRS). ITIN adalah nomor pemrosesan pajak yang hanya tersedia untuk alien non-penduduk dan penduduk tertentu, pasangan mereka, dan tanggungan yang tidak dapat mendapatkan Nomor Jaminan Sosial (SSN).
  • GCP_CREDENTIALS: Google Cloud kredensial akun layanan. Kredensial yang dapat digunakan untuk melakukan autentikasi dengan library klien dan akun layanan Google API.
  • GCP_API_KEY: Google Cloud Kunci API. String terenkripsi yang digunakan saat memanggil API Google Cloud yang tidak perlu mengakses data pengguna pribadi.

Berikut adalah contoh konfigurasi Perlindungan Data Sensitif dasar:

gcloud

gcloud alpha model-armor templates create template-name
--location=location
--basic-config-filter-enforcement=enabled

REST API

export FILTER_CONFIG_SDP_BASIC='{
  "filterConfig": {
  "sdpSettings": {
  "basicConfig": {
    "filterEnforcement": "ENABLED"
      }
    }
  }
}'

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

Ganti kode berikut:

  • gcloud auth print-access-token adalah token akses untuk akun yang ditentukan.
  • PROJECT_ID - ID project tempat template berada.
  • LOCATION - lokasi template.
  • TEMPLATE_ID - ID template.

Gunakan template yang dibuat untuk menyaring perintah Anda. Berikut contohnya:

curl -X POST \
-d  "{ user_prompt_data: { 'text': 'can you remember my ITIN : 988-86-1234'} }" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://modelarmor.us-central1.rep.googleapis.com/v1/projects/$PROJECT_ID/locations/us-central1/templates/sdp_basic:sanitizeUserPrompt"

Contoh ini menampilkan respons berikut:

{
  "sanitizationResult": {
    "filterMatchState": "MATCH_FOUND",
    "invocationResult": "SUCCESS",
    "filterResults": [
      {
        "csamFilterFilterResult": {
          "executionState": "EXECUTION_SUCCESS",
          "matchState": "NO_MATCH_FOUND"
        }
      },
      {
        "sdpFilterResult": {
          "inspectResult": {
            "executionState": "EXECUTION_SUCCESS",
            "matchState": "MATCH_FOUND",
            "findings": [
              {
                "infoType": "US_INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER",
                "likelihood": "LIKELY",
                "location": {
                  "byteRange": {
                    "start": "26",
                    "end": "37"
                  },
                  "codepointRange": {
                    "start": "26",
                    "end": "37"
                  }
                }
              }
            ]
          }
        }
      }
    ]
  }
}

Konfigurasi Perlindungan Data Sensitif lanjutan

Model Armor memungkinkan Anda menyaring perintah dan respons LLM menggunakan template Perlindungan Data Sensitif menggunakan setelan konfigurasi Perlindungan Data Sensitif lanjutan. Hal ini memungkinkan Anda menggunakan kemampuan Sensitive Data Protection di luar infoType yang ditawarkan di setelan Sensitive Data Protection dasar.

Untuk menggunakan filter lanjutan Perlindungan Data Sensitif di Model Armor, template Perlindungan Data Sensitif harus berada di lokasi cloud yang sama dengan template Model Armor, misalnya, us-central1 dalam hal ini.

gcloud

gcloud alpha model-armor templates create template-name
--location=location \
--advanced-config-inspect-template="path/to/template"

REST API

  export FILTER_CONFIG_SDP_ADV='{
  "filterConfig": {
  "sdpSettings": {
    "advancedConfig": {
      "deidentifyTemplate": "projects/$PROJECT_ID/locations/LOCATION/deidentifyTemplates/deidentify-ip-address",
       "inspectTemplate": "projects/$PROJECT_ID/locations/$LOCATION/inspectTemplates/inspect-ip-address"
        }
      }
    }
  }'

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

# Result of CreateTemplate
{
  "name": "projects/$PROJECT_ID/locations/LOCATION/templates/all-filters-test",
  "createTime": "2024-12-16T17:08:19.626693819Z",
  "updateTime": "2024-12-16T17:08:19.626693819Z",
   "filterConfig": {
    "sdpSettings": {
    "advancedConfig": {
      "deidentifyTemplate":  "projects/$PROJECT_ID/locations/LOCATION/deidentifyTemplates/deidentify-ip-address",
       "inspectTemplate": "projects/$PROJECT_ID/locations/$LOCATION/inspectTemplates/inspect-ip-address"
      }
   }
  }
},
service_agent_email: "service-PROJECT_NUMBER@gcp-sa-modelarmor.iam.gserviceaccount.com"

Ganti kode berikut:

  • PROJECT_ID - ID project tempat template berada.
  • LOCATION - lokasi template.

Dalam project yang berisi template Perlindungan Data Sensitif, berikan peran Pengguna DLP (roles/dlp.user) dan peran Pembaca DLP (roles/dlp.reader) kepada agen layanan yang dibuat sebagai bagian dari langkah 7 - Perlindungan Data Sensitif Lanjutan dari Membuat template. Anda dapat melewati langkah ini jika template Perlindungan Data Sensitif berada dalam project yang sama dengan template Model Armor.

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

gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member serviceAccount:service-$PROJECT_NUMBER@gcp-sa-modelarmor.iam.gserviceaccount.com --role roles/dlp.reader

Ganti kode berikut:

  • PROJECT_ID - ID project tempat template berada.

Gunakan template yang dibuat untuk menyaring perintah Anda. Berikut contohnya:

curl -X POST \
-d  "{ user_prompt_data: { 'text': 'is there anything malicious running on 1.1.1.1?'} }" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID:sanitizeUserPrompt"

Ganti kode berikut:

  • gcloud auth print-access-token adalah token akses untuk akun yang ditentukan.
  • PROJECT_ID - ID project tempat template berada.
  • LOCATION - lokasi template.
  • TEMPLATE_ID - ID template.

Contoh ini menampilkan respons berikut:

{
  "sanitizationResult": {
    "filterMatchState": "MATCH_FOUND",
    "invocationResult": "SUCCESS",
    "filterResults": [
      {
        "csamFilterFilterResult": {
          "executionState": "EXECUTION_SUCCESS",
          "matchState": "NO_MATCH_FOUND"
        }
      },
      {
        "sdpFilterResult": {
          "deidentifyResult": {
            "executionState": "EXECUTION_SUCCESS",
            "matchState": "MATCH_FOUND",
            "data": {
              "text": "is there anything malicious running on [IP_ADDRESS]?"
            },
            "transformedBytes": "7"
          }
        }
      }
    ]
  }
}

Perintah berbasis file

Gunakan perintah ini untuk membersihkan perintah pengguna dalam format file dengan Model Armor. File harus diteruskan dalam format yang dienkode Base64.

curl -X POST \
-d "$(jq -n \
  --arg data "$(base64 -w 0 -i sample.pdf)" \
  '{userPromptData: {byteItem: {byteDataType: "PDF", byteData: $data}}}')" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID:sanitizeUserPrompt"

Ganti kode berikut:

  • gcloud auth print-access-token adalah token akses untuk akun yang ditentukan.
  • PROJECT_ID - ID project tempat template berada.
  • LOCATION - lokasi template.
  • TEMPLATE_ID - ID template.

Membersihkan respons model

Berikut adalah contoh perintah untuk membersihkan respons model di Model Armor.

curl -X POST \
-d  "{model_response_data: { text: 'It might hurt and cause pain' } }" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://modelarmor.us-central1.rep.googleapis.com/v1/projects/$PROJECT_ID/locations/us-central1/templates/ma-template-id-1234:sanitizeModelResponse"

Contoh ini menampilkan respons berikut:

{
  "sanitizationResult": {
    "filterMatchState": "MATCH_FOUND",
    "invocationResult": "SUCCESS",
    "filterResults": {
      "rai": {
        "raiFilterResult": {
          "executionState": "EXECUTION_SUCCESS",
          "matchState": "MATCH_FOUND",
          "raiFilterTypeResults": {
            "dangerous": {
              "confidenceLevel": "MEDIUM_AND_ABOVE",
              "matchState": "MATCH_FOUND"
            },
            "sexually_explicit": {
              "matchState": "NO_MATCH_FOUND"
            },
            "hate_speech": {
              "matchState": "NO_MATCH_FOUND"
            },
            "harassment": {
              "matchState": "NO_MATCH_FOUND"
            }
          }
        }
      },
      "pi_and_jailbreak": {
        "piAndJailbreakFilterResult": {
          "executionState": "EXECUTION_SUCCESS",
          "matchState": "NO_MATCH_FOUND"
          }
      },
"csam": {
        "csamFilterFilterResult": {
          "executionState": "EXECUTION_SUCCESS",
          "matchState": "NO_MATCH_FOUND"
        }
      },
      "malicious_uris": {
        "maliciousUriFilterResult": {
          "executionState": "EXECUTION_SUCCESS",
          "matchState": "NO_MATCH_FOUND"
        }
      },
    }
  }
}

Langkah selanjutnya