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 pozycję Filtry zawartości z menu po lewej stronie. Wybierz kartę Listy blokowe obok karty Filtry zawartości. Następnie wybierz pozycję Utwórz listę bloków. Zrzut ekranu przedstawiający wybór tworzenia listy bloków.
  2. Utwórz nazwę listy zablokowanych, dodaj opis i wybierz pozycję Utwórz listę bloków. Zrzut ekranu przedstawiający nazwę i opis listy bloków.
  3. Wybierz niestandardową listę bloków po jej utworzeniu, a następnie wybierz pozycję Dodaj nowy termin. Zrzut ekranu przedstawiający dodawanie terminu niestandardowej listy bloków.
  4. Dodaj termin, który ma być filtrowany, a następnie wybierz pozycję Dodaj termin. Można również utworzyć wyrażenie regularne. Zrzut ekranu przedstawiający dodawanie elementu niestandardowej listy bloków.
  5. Każdy termin można usunąć na liście zablokowanych. Zrzut ekranu przedstawiający ekran edycji listy bloków niestandardowych.
  6. 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).
  7. 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)
  8. Teraz możesz zdecydować, które z dostępnych list zablokowanych chcesz uwzględnić w konfiguracji filtrowania zawartości. W poniższym przykładzie stosujemy właśnie utworzoną listę CustomBlocklist1. Ostatnim krokiem jest przejrzenie i zakończenie konfiguracji filtrowania zawartości, klikając przycisk Dalej. Zrzut ekranu przedstawiający filtrowanie zarządzania konfiguracją.
  9. 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