Udostępnij za pośrednictwem


Używanie listy zablokowanych w usłudze Azure OpenAI

Konfigurowalne filtry zawartości są wystarczające dla większości potrzeb dotyczących con tryb namiotu ration. Może jednak być konieczne filtrowanie terminów specyficznych dla danego przypadku użycia.

Wymagania wstępne

  • Subskrypcja platformy Azure. Utwórz je bezpłatnie.
  • Po utworzeniu subskrypcji platformy Azure utwórz zasób usługi Azure OpenAI w witrynie Azure Portal, aby uzyskać token, klucz i punkt końcowy. Wprowadź unikatową nazwę zasobu, wybierz subskrypcję wprowadzoną w formularzu aplikacji, wybierz grupę zasobów, obsługiwany region i obsługiwaną warstwę cenową. Następnie wybierz Utwórz.
    • Wdrożenie zasobu trwa kilka minut. Po zakończeniu wybierz pozycję Przejdź do zasobu. W okienku po lewej stronie w obszarze Zarządzanie zasobami wybierz pozycję Klucz subskrypcji i punkt końcowy. Punkt końcowy i jeden z kluczy są używane do wywoływania interfejsów API.
  • Zainstalowany interfejs wiersza polecenia platformy Azure.
  • Zainstalowano bibliotekę cURL

Korzystanie z list blokowych

Listy blokowe można tworzyć za pomocą interfejsu API usługi Azure OpenAI. Poniższe kroki ułatwiają rozpoczęcie pracy.

Uzyskiwanie tokenu

Najpierw musisz uzyskać token umożliwiający uzyskanie dostępu do interfejsów API na potrzeby tworzenia, edytowania i usuwania list zablokowanych. Ten token można uzyskać przy użyciu następującego polecenia interfejsu wiersza polecenia platformy Azure:

az account get-access-token 

Tworzenie lub modyfikowanie listy zablokowanych

Skopiuj poniższe polecenie cURL do edytora tekstów i wprowadź następujące zmiany:

  1. Zastąp ciąg {subscriptionId} identyfikatorem subskrypcji.
  2. Zastąp ciąg {resourceGroupName} nazwą grupy zasobów.
  3. Zastąp ciąg {accountName} nazwą zasobu.
  4. Zastąp ciąg {raiBlocklistName} (w adresie URL) nazwą niestandardową listy. Dozwolone znaki: 0-9, A-Z, a-z, - . _ ~.
  5. Zastąp element {token} tokenem uzyskanym z powyższego kroku "Pobierz token".
  6. Opcjonalnie zastąp wartość pola "description" opisem niestandardowym.
curl --location --request PUT 'https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/raiBlocklists/{raiBlocklistName}?api-version=2024-03-01-preview' \ 
--header 'Authorization: Bearer {token}' \ 
--header 'Content-Type: application/json' \ 
--data-raw '{ 
    "properties": { 
        "description": "This is a prompt blocklist"  
    } 
}' 

Kod odpowiedzi powinien być 201 (utworzona nowa lista) lub 200 (zaktualizowana istniejąca lista).

Stosowanie listy zablokowanych do filtru zawartości

Jeśli nie utworzono jeszcze filtru zawartości, możesz to zrobić w programie Studio na karcie Filtry zawartości po lewej stronie. Aby użyć listy zablokowanych, upewnij się, że ten filtr zawartości jest stosowany do wdrożenia usługi Azure OpenAI. Można to zrobić na karcie Wdrożenia po lewej stronie.

Aby zastosować listę bloków uzupełniania do filtru zawartości, użyj następującego polecenia cURL:

  1. Zastąp ciąg {subscriptionId} identyfikatorem podrzędnym.
  2. Zastąp ciąg {resourceGroupName} nazwą grupy zasobów.
  3. Zastąp ciąg {accountName} nazwą zasobu.
  4. Zastąp element {raiPolicyName} nazwą filtru zawartości
  5. Zastąp element {token} tokenem uzyskanym z powyższego kroku "Pobierz token".
  6. Zastąp ciąg "raiBlocklistName" w treści nazwą niestandardową listy. Dozwolone znaki: 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-03-01-preview' \ 
--header 'Authorization: Bearer {token}' \ 
--header 'Content-Type: application/json' \ 
--data-raw '{ 
    "properties": { 
        "basePolicyName": "Microsoft.Default", 
        "completionBlocklists": [{ 
            "blocklistName": "raiBlocklistName", 
            "blocking": true 
        }], 
        "contentFilters": [ ] 
    } 
}' 

Dodawanie elementów blockItems do listy

Uwaga

Istnieje maksymalny limit wynoszący 10 000 terminów dozwolonych na jednej liście.

Skopiuj poniższe polecenie cURL do edytora tekstów i wprowadź następujące zmiany:

  1. Zastąp ciąg {subscriptionId} identyfikatorem podrzędnym.
  2. Zastąp ciąg {resourceGroupName} nazwą grupy zasobów.
  3. Zastąp ciąg {accountName} nazwą zasobu.
  4. Zastąp ciąg {raiBlocklistName} (w adresie URL) nazwą niestandardową listy. Dozwolone znaki: 0-9, A-Z, a-z, - . _ ~.
  5. Zastąp element {raiBlocklistItemName} niestandardową nazwą elementu listy.
  6. Zastąp element {token} tokenem uzyskanym z powyższego kroku "Pobierz token".
  7. Zastąp wartość "blocking pattern" pola elementem, który chcesz dodać do listy zablokowanych. Maksymalna długość bloku to 1000 znaków. Określ również, czy wzorzec jest regularny, czy dokładny.
curl --location --request PUT 'https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/raiBlocklists/{raiBlocklistName}/raiBlocklistItems/{raiBlocklistItemName}?api-version=2024-03-01-preview' \ 
--header 'Authorization: Bearer {token}' \ 
--header 'Content-Type: application/json' \ 
--data-raw '{  
    "properties": {  
        "pattern": "blocking pattern",  
        "isRegex": false  
    }  
}' 

Uwaga

Dodanie nowego terminu do listy zablokowanych może potrwać około 5 minut. Przetestuj po 5 minutach.

Kod odpowiedzi powinien mieć wartość 200.

{ 
  "name": "raiBlocklistItemName", 
  "id": "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.CognitiveServices/accounts/accountName/raiBlocklists/raiBlocklistName/raiBlocklistItems/raiBlocklistItemName", 
  "properties": { 
    "pattern": "blocking pattern", 
    "isRegex": false 
  } 
} 

Analizowanie tekstu przy użyciu listy zablokowanych

Teraz możesz przetestować wdrożenie z listą zablokowanych. Najprostszym sposobem wykonania tej czynności jest program Azure OpenAI Studio. Jeśli zawartość została zablokowana w wierszu polecenia lub zakończeniu, powinien zostać wyświetlony komunikat o błędzie informujący, że system filtrowania zawartości został wyzwolony.

Instrukcje dotyczące wywoływania punktów końcowych usługi Azure OpenAI można znaleźć w przewodniku Szybki start.

W poniższym przykładzie wdrożenie GPT-35-Turbo z listą zablokowanych blokuje monit. Odpowiedź zwraca 400 błąd.

{ 
    "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" 
                } 
            } 
        } 
    } 
} 

Jeśli samo ukończenie jest zablokowane, odpowiedź zwraca wartość 200, ponieważ ukończenie jest odcinane tylko wtedy, gdy zawartość listy zablokowanych jest zgodna. Adnotacje pokazują, że lista zablokowanych została dopasowana.

{ 
    "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 
    } 
} 

Używanie list zablokowanych w programie Azure OpenAI Studio

Możesz również utworzyć niestandardowe listy zablokowanych w programie Azure OpenAI Studio w ramach konfiguracji filtrowania zawartości (publiczna wersja zapoznawcza). Instrukcje dotyczące tworzenia niestandardowych filtrów zawartości można znaleźć tutaj. W poniższych krokach pokazano, jak utworzyć niestandardowe listy zablokowanych w ramach filtrów zawartości za pośrednictwem programu Azure OpenAI Studio.

  1. Wybierz kartę Listy blokowe obok karty Filtry zawartości. screenshot of blocklist selection.
  2. Wybierz pozycję Utwórz listę bloków Screenshot of blocklist create selection.
  3. Utwórz nazwę listy zablokowanych, dodaj opis i wybierz pozycję Utwórz. Screenshot of blocklist naming.
  4. Wybierz niestandardową listę bloków po jej utworzeniu, a następnie wybierz pozycję Dodaj termin. Screenshot of custom blocklist add term.
  5. Dodaj termin, który ma być filtrowany, a następnie wybierz pozycję Utwórz. Można również utworzyć wyrażenie regularne. Screenshot of custom blocklist add item.
  6. Możesz edytować i usuwać każdy termin na liście zablokowanych. Screenshot of custom blocklist edit.
  7. Gdy lista zablokowanych będzie gotowa, przejdź do sekcji Filtry zawartości (wersja zapoznawcza) i utwórz nową niestandardową konfigurację filtru zawartości. Spowoduje to otwarcie kreatora z kilkoma składnikami bezpieczeństwa zawartości sztucznej inteligencji. Więcej informacji na temat konfigurowania głównych filtrów i modeli opcjonalnych można znaleźć tutaj. Przejdź do pozycji Dodaj listę zablokowanych (opcjonalnie).
  8. Zobaczysz teraz wszystkie dostępne listy zablokowanych. Istnieją dwa typy list blokowych — utworzone przez Ciebie listy blokowe i wstępnie utworzone listy blokowe, które firma Microsoft udostępnia, w tym przypadku lista bloków wulgaryzmów (angielski)
  9. Teraz możesz zdecydować, które z dostępnych list zablokowanych chcesz uwzględnić w konfiguracji filtrowania zawartości, i wybrać, czy ma dotyczyć monitów, uzupełniania lub obu tych elementów. W poniższym przykładzie stosujemy element CustomBlocklist1, który właśnie został utworzony w celu monitowania i uzupełniania oraz listy bloków wulgaryzmów tylko do ukończenia. Ostatnim krokiem jest przejrzenie i zakończenie konfiguracji filtrowania zawartości, klikając przycisk Dalej. Screenshot of filtering configuration management.
  10. Zawsze możesz wrócić i edytować konfigurację. Gdy wszystko będzie gotowe, wybierz pozycję Utwórz filtr zawartości. Nowa konfiguracja obejmująca listy zablokowanych można teraz zastosować do wdrożenia. Szczegółowe instrukcje można znaleźć tutaj.

Następne kroki