Menggunakan daftar blokir dengan Azure OpenAI
Filter konten yang dapat dikonfigurasi yang tersedia di Azure OpenAI cukup untuk sebagian besar kebutuhan kon mode tenda rasi. Namun, Anda mungkin perlu memfilter istilah khusus untuk kasus penggunaan Anda. Untuk ini, Anda dapat menggunakan daftar blokir kustom.
Prasyarat
- Langganan Azure. Buat akun gratis.
- Setelah Anda memiliki langganan Azure, buat sumber daya Azure OpenAI di portal Azure untuk mendapatkan token, kunci, dan titik akhir Anda. Masukkan nama unik untuk sumber daya Anda, pilih langganan yang Anda masukkan pada formulir aplikasi, pilih grup sumber daya, wilayah yang didukung, dan tingkat harga yang didukung. Lalu pilih Buat.
- Sumber daya membutuhkan waktu beberapa menit untuk disebarkan. Setelah selesai, pilih buka sumber daya. Di panel kiri, di bawah Manajemen Sumber Daya, pilih Kunci Langganan dan Titik Akhir. Titik akhir dan salah satu kunci digunakan untuk memanggil API.
- CLI Azure yang terpasang
- cURL terpasang
Menggunakan daftar blokir
Anda dapat membuat daftar blokir dengan Azure OpenAI API. Langkah-langkah berikut membantu Anda memulai.
Dapatkan token Anda
Pertama, Anda perlu mendapatkan token untuk mengakses API untuk membuat, mengedit, dan menghapus daftar blokir. Anda bisa mendapatkan token ini menggunakan perintah Azure CLI berikut:
az account get-access-token
Membuat atau mengubah daftar blokir
Salin perintah cURL di bawah ini ke editor teks dan buat perubahan berikut:
- Ganti {subscriptionId} dengan ID langganan Anda.
- Ganti {resourceGroupName} dengan nama grup sumber daya Anda.
- Ganti {accountName} dengan nama sumber daya Anda.
- Ganti {raiBlocklistName} (di URL) dengan nama kustom untuk daftar Anda. Karakter yang diizinkan:
0-9, A-Z, a-z, - . _ ~
. - Ganti {token} dengan token yang Anda dapatkan dari langkah "Dapatkan token Anda" di atas.
- Secara opsional ganti nilai bidang "deskripsi" dengan deskripsi kustom.
curl --location --request PUT 'https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/raiBlocklists/{raiBlocklistName}?api-version=2024-04-01-preview' \
--header 'Authorization: Bearer {token}' \
--header 'Content-Type: application/json' \
--data-raw '{
"properties": {
"description": "This is a prompt blocklist"
}
}'
Kode respons harus 201
(membuat daftar baru) atau 200
(memperbarui daftar yang sudah ada).
Menerapkan daftar blokir ke filter konten
Jika Anda belum membuat filter konten, Anda dapat melakukannya di Azure AI Foundry. Lihat Pemfilteran konten.
Untuk menerapkan daftar blokir penyelesaian ke filter konten, gunakan perintah cURL berikut:
- Ganti {subscriptionId} dengan sub ID Anda.
- Ganti {resourceGroupName} dengan nama grup sumber daya Anda.
- Ganti {accountName} dengan nama sumber daya Anda.
- Ganti {raiPolicyName} dengan nama Filter Konten Anda
- Ganti {token} dengan token yang Anda dapatkan dari langkah "Dapatkan token Anda" di atas.
- Secara opsional ubah
"completionBlocklists"
judul menjadi"promptBlocklists"
jika Anda ingin daftar blokir diterapkan ke permintaan pengguna alih-alih penyelesaian model AI. - Ganti
"raiBlocklistName"
dalam isi dengan nama kustom untuk daftar Anda. Karakter yang diizinkan:0-9, A-Z, a-z, - . _ ~
.
curl --location --request PUT 'https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/raiPolicies/{raiPolicyName}?api-version=2024-04-01-preview' \
--header 'Authorization: Bearer {token}' \
--header 'Content-Type: application/json' \
--data-raw '{
"properties": {
"basePolicyName": "Microsoft.Default",
"completionBlocklists": [{
"blocklistName": "raiBlocklistName",
"blocking": true
}],
"contentFilters": [ ]
}
}'
Menambahkan blockItems ke daftar
Catatan
Ada batas maksimum 10.000 istilah yang diizinkan dalam satu daftar.
Salin perintah cURL di bawah ini ke editor teks dan buat perubahan berikut:
- Ganti {subscriptionId} dengan sub ID Anda.
- Ganti {resourceGroupName} dengan nama grup sumber daya Anda.
- Ganti {accountName} dengan nama sumber daya Anda.
- Ganti {raiBlocklistName} (di URL) dengan nama kustom untuk daftar Anda. Karakter yang diizinkan:
0-9, A-Z, a-z, - . _ ~
. - Ganti {raiBlocklistItemName} dengan nama kustom untuk item daftar Anda.
- Ganti {token} dengan token yang Anda dapatkan dari langkah "Dapatkan token Anda" di atas.
- Ganti nilai
"blocking pattern"
bidang dengan item yang ingin Anda tambahkan ke daftar blokir Anda. Panjang maksimum blockItem adalah 1000 karakter. Tentukan juga apakah pola tersebut regex atau sama persis.
curl --location --request PUT 'https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/raiBlocklists/{raiBlocklistName}/raiBlocklistItems/{raiBlocklistItemName}?api-version=2024-04-01-preview' \
--header 'Authorization: Bearer {token}' \
--header 'Content-Type: application/json' \
--data-raw '{
"properties": {
"pattern": "blocking pattern",
"isRegex": false
}
}'
Catatan
Diperlukan waktu sekitar 5 menit agar istilah baru ditambahkan ke daftar blokir. Silakan uji setelah 5 menit.
Kode respons harus 200
.
{
"name": "raiBlocklistItemName",
"id": "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.CognitiveServices/accounts/accountName/raiBlocklists/raiBlocklistName/raiBlocklistItems/raiBlocklistItemName",
"properties": {
"pattern": "blocking pattern",
"isRegex": false
}
}
Menganalisis teks dengan daftar blokir
Sekarang Anda dapat menguji penyebaran yang memiliki daftar blokir. Untuk petunjuk tentang memanggil titik akhir Azure OpenAI, kunjungi Mulai Cepat.
Dalam contoh di bawah ini, penyebaran GPT-35-Turbo dengan daftar blokir memblokir perintah. Respons mengembalikan 400
kesalahan.
{
"error": {
"message": "The response was filtered due to the prompt triggering Azure OpenAI’s content management policy. Please modify your prompt and retry. To learn more about our content filtering policies please read our documentation: https://go.microsoft.com/fwlink/?linkid=2198766",
"type": null,
"param": "prompt",
"code": "content_filter",
"status": 400,
"innererror": {
"code": "ResponsibleAIPolicyViolation",
"content_filter_result": {
"custom_blocklists": [
{
"filtered": true,
"id": "raiBlocklistName"
}
],
"hate": {
"filtered": false,
"severity": "safe"
},
"self_harm": {
"filtered": false,
"severity": "safe"
},
"sexual": {
"filtered": false,
"severity": "safe"
},
"violence": {
"filtered": false,
"severity": "safe"
}
}
}
}
}
Jika penyelesaian itu sendiri diblokir, respons mengembalikan 200
, karena penyelesaian hanya dipotong saat konten daftar blokir cocok. Anotasi menunjukkan bahwa item daftar blokir cocok.
{
"id": "chatcmpl-85NkyY0AkeBMunOjyxivQSiTaxGAl",
"object": "chat.completion",
"created": 1696293652,
"model": "gpt-35-turbo",
"prompt_filter_results": [
{
"prompt_index": 0,
"content_filter_results": {
"hate": {
"filtered": false,
"severity": "safe"
},
"self_harm": {
"filtered": false,
"severity": "safe"
},
"sexual": {
"filtered": false,
"severity": "safe"
},
"violence": {
"filtered": false,
"severity": "safe"
}
}
}
],
"choices": [
{
"index": 0,
"finish_reason": "content_filter",
"message": {
"role": "assistant"
},
"content_filter_results": {
"custom_blocklists": [
{
"filtered": true,
"id": "myBlocklistName"
}
],
"hate": {
"filtered": false,
"severity": "safe"
},
"self_harm": {
"filtered": false,
"severity": "safe"
},
"sexual": {
"filtered": false,
"severity": "safe"
},
"violence": {
"filtered": false,
"severity": "safe"
}
}
}
],
"usage": {
"completion_tokens": 75,
"prompt_tokens": 27,
"total_tokens": 102
}
}
Konten terkait
Pelajari selengkapnya tentang praktik AI yang Bertanggung Jawab untuk Azure OpenAI: Gambaran umum praktik AI yang Bertanggung Jawab untuk model Azure OpenAI.
Baca selengkapnya tentang kategori pemfilteran konten dan tingkat keparahan dengan Azure OpenAI Service.
Pelajari selengkapnya tentang tim merah dari kami: Pengantar artikel model bahasa besar (LLM) beregu merah.