Azure OpenAI ile blok listesi kullanma
Azure OpenAI'de kullanılabilen yapılandırılabilir içerik filtreleri, çoğu con çadır modu ration gereksinimi için yeterlidir. Ancak kullanım örneğinize özgü terimleri filtrelemeniz gerekebilir. Bunun için özel blok listelerini kullanabilirsiniz.
Önkoşullar
- Azure aboneliği. Ücretsiz bir tane oluşturun.
- Azure aboneliğinizi aldıktan sonra belirtecinizi, anahtarınızı ve uç noktanızı almak için Azure portalında bir Azure OpenAI kaynağı oluşturun. Kaynağınız için benzersiz bir ad girin, uygulama formuna girdiğiniz aboneliği seçin, bir kaynak grubu, desteklenen bölge ve desteklenen fiyatlandırma katmanını seçin. Daha sonra, Oluştur'u seçin.
- Kaynağın dağıtılması birkaç dakika sürer. Tamamlandıktan sonra kaynağa git'i seçin. Sol bölmedeki Kaynak Yönetimi'nin altında Abonelik Anahtarı ve Uç Nokta'yı seçin. Uç nokta ve anahtarlardan biri API'leri çağırmak için kullanılır.
- Azure CLI yüklü
- cURL yüklü
Blok listelerini kullanma
Azure OpenAI API'siyle blok listeleri oluşturabilirsiniz. Aşağıdaki adımlar kullanmaya başlamanıza yardımcı olur.
Belirtecinizi alma
İlk olarak, blok listelerini oluşturmak, düzenlemek ve silmek için API'lere erişmek için bir belirteç almanız gerekir. Aşağıdaki Azure CLI komutunu kullanarak bu belirteci alabilirsiniz:
az account get-access-token
Blok listesi oluşturma veya değiştirme
Aşağıdaki cURL komutunu bir metin düzenleyicisine kopyalayın ve aşağıdaki değişiklikleri yapın:
- {subscriptionId} öğesini abonelik kimliğiniz ile değiştirin.
- {resourceGroupName} öğesini kaynak grubu adınızla değiştirin.
- {accountName} öğesini kaynak adınız ile değiştirin.
- {raiBlocklistName} öğesini (URL'de) listenize özel bir adla değiştirin. İzin verilen karakterler:
0-9, A-Z, a-z, - . _ ~
. - {token} değerini yukarıdaki "Belirtecinizi alın" adımından aldığınız belirteçle değiştirin.
- İsteğe bağlı olarak , "description" alanının değerini özel bir açıklamayla değiştirin.
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"
}
}'
Yanıt kodu (yeni bir liste oluşturulmalıdır) veya 200
(var olan bir liste güncelleştirildi) olmalıdır 201
.
İçerik filtresine blok listesi uygulama
Henüz bir içerik filtresi oluşturmadıysanız bunu Azure AI Foundry'de yapabilirsiniz. Bkz. İçerik filtreleme.
İçerik filtresine tamamlama blok listesi uygulamak için aşağıdaki cURL komutunu kullanın:
- {subscriptionId} öğesini alt kimliğiniz ile değiştirin.
- {resourceGroupName} öğesini kaynak grubu adınızla değiştirin.
- {accountName} öğesini kaynak adınız ile değiştirin.
- {raiPolicyName} öğesini İçerik Filtrenizin adıyla değiştirin
- {token} değerini yukarıdaki "Belirtecinizi alın" adımından aldığınız belirteçle değiştirin.
- Blok listesinin
"completionBlocklists"
yapay zeka modeli tamamlamaları yerine kullanıcı istemlerine uygulanmasını istiyorsanız başlığı"promptBlocklists"
isteğe bağlı olarak olarak değiştirin. - gövdedeki öğesini listenize özel bir adla değiştirin
"raiBlocklistName"
. İzin verilen karakterler: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": [ ]
}
}'
Listeye blockItems ekleme
Not
Bir listede izin verilen en fazla 10.000 terim sınırı vardır.
Aşağıdaki cURL komutunu bir metin düzenleyicisine kopyalayın ve aşağıdaki değişiklikleri yapın:
- {subscriptionId} öğesini alt kimliğiniz ile değiştirin.
- {resourceGroupName} öğesini kaynak grubu adınızla değiştirin.
- {accountName} öğesini kaynak adınız ile değiştirin.
- {raiBlocklistName} öğesini (URL'de) listenize özel bir adla değiştirin. İzin verilen karakterler:
0-9, A-Z, a-z, - . _ ~
. - {raiBlocklistItemName} öğesini liste öğeniz için özel bir adla değiştirin.
- {token} değerini yukarıdaki "Belirtecinizi alın" adımından aldığınız belirteçle değiştirin.
- alanının değerini
"blocking pattern"
, blok listenize eklemek istediğiniz öğeyle değiştirin. BlockItem'ın uzunluk üst sınırı 1000 karakterdir. Ayrıca desenin regex mi yoksa tam eşleşme mi olduğunu belirtin.
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
}
}'
Not
Yeni bir terimin blok listesine eklenmesi yaklaşık 5 dakika sürebilir. Lütfen 5 dakika sonra test edin.
Yanıt kodu olmalıdır 200
.
{
"name": "raiBlocklistItemName",
"id": "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.CognitiveServices/accounts/accountName/raiBlocklists/raiBlocklistName/raiBlocklistItems/raiBlocklistItemName",
"properties": {
"pattern": "blocking pattern",
"isRegex": false
}
}
Blok listesiyle metni analiz etme
Artık blok listesine sahip dağıtımınızı test edebilirsiniz. Azure OpenAI uç noktalarını çağırma yönergeleri için Hızlı Başlangıç'ı ziyaret edin.
Aşağıdaki örnekte, blok listesi olan bir GPT-35-Turbo dağıtımı istemi engelliyor. Yanıt bir 400
hata döndürür.
{
"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"
}
}
}
}
}
Tamamlamanın kendisi engellenirse, tamamlama yalnızca blok listesi içeriği eşleştirildiğinde kesildiğinden yanıt döndürür 200
. Ek açıklamalar, bir blok listesi öğesinin eşleştirildiğini gösterir.
{
"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
}
}
İlgili içerik
Azure OpenAI için Sorumlu yapay zeka uygulamaları hakkında daha fazla bilgi edinin: Azure OpenAI modelleri için sorumlu yapay zeka uygulamalarına genel bakış.
Azure OpenAI Hizmeti ile içerik filtreleme kategorileri ve önem düzeyleri hakkında daha fazla bilgi edinin.
Kırmızı grup oluşturma hakkında daha fazla bilgi için bkz. Büyük dil modellerinde (LLM) kırmızı grup oluşturma makalemize giriş.