Share via


Verwenden einer Blockliste in Azure OpenAI

Die konfigurierbaren Inhaltsfilter sind für die meisten Anforderungen an die Inhaltsmoderation ausreichend. Möglicherweise müssen Sie jedoch bestimmte Ausdrücke für Ihren Anwendungsfall filtern.

Voraussetzungen

  • Ein Azure-Abonnement. Erstellen Sie ein kostenloses Konto.
  • Sobald Sie über Ihr Azure-Abonnement verfügen, erstellen Sie im Azure-Portal eine Azure OpenAI-Ressource, um Ihren Token, Schlüssel und Endpunkt zu erhalten. Geben Sie für Ihre Ressource einen eindeutigen Namen ein. Wählen Sie das Abonnement aus, das Sie im Antragsformular eingegeben haben, und dann eine Ressourcengruppe, eine unterstützte Region und einen unterstützten Tarif. Klicken Sie anschließend auf Erstellen.
    • Die Bereitstellung der Ressource dauert einige Minuten. Wählen Sie im Anschluss Zu Ressource wechseln aus. Wählen Sie im linken Bereich unter Ressourcenverwaltung die Option Abonnementschlüssel und Endpunkt aus. Der Endpunkt und einer der Schlüssel werden verwendet, um APIs aufzurufen.
  • Die Azure CLI muss installiert sein.
  • cURL muss installiert sein.

Verwenden von Blocklisten

Sie können Blocklisten mit der Azure OpenAI-API erstellen. Die folgenden Schritte helfen Ihnen bei den ersten Schritten.

Abrufen Ihres Tokens

Zunächst müssen Sie ein Token für den Zugriff auf die APIs zum Erstellen, Bearbeiten und Löschen von Blocklisten abrufen. Sie können dieses Token mit dem folgenden Azure CLI-Befehl abrufen:

az account get-access-token 

Erstellen oder Ändern einer Sperrliste

Kopieren Sie den nachstehenden cURL-Befehl in einen Text-Editor, und nehmen Sie folgende Änderungen vor:

  1. Ersetzen Sie {subscriptionId} durch Ihre Abonnement-ID.
  2. Ersetzen Sie {resourceGroupName} durch ihren Ressourcengruppennamen.
  3. Ersetzen Sie {accountName} durch Ihren Ressourcennamen.
  4. Ersetzen Sie {raiBlocklistName} (in der URL) durch einen benutzerdefinierten Namen für Ihre Liste. Zulässige Zeichen: 0-9, A-Z, a-z, - . _ ~
  5. Ersetzen Sie {token} durch das Token, das Sie aus dem obigen Schritt „Token abrufen“ erhalten haben.
  6. Ersetzen Sie optional den Wert des Feldes „Beschreibung“ durch eine benutzerdefinierte Beschreibung.
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"  
    } 
}' 

Der Antwortcode sollte 201 (neue Liste erstellt) oder 200 (vorhandene Liste aktualisiert) sein.

Anwenden einer Blockliste auf einen Inhaltsfilter

Wenn Sie noch keinen Inhaltsfilter erstellt haben, können Sie dies im Studio auf der Registerkarte „Inhaltsfilter“ auf der linken Seite tun. Um die Blockliste zu verwenden, stellen Sie sicher, dass dieser Inhaltsfilter auf eine Azure OpenAI-Bereitstellung angewendet wird. Dies können Sie auf der Registerkarte „Bereitstellungen“ auf der linken Seite ausführen.

Verwenden Sie den folgenden cURL-Befehl, um eine Vervollständigungsblockliste auf einen Inhaltsfilter anzuwenden:

  1. Ersetzen Sie {subscriptionId} durch Ihre Unter-ID.
  2. Ersetzen Sie {resourceGroupName} durch ihren Ressourcengruppennamen.
  3. Ersetzen Sie {accountName} durch Ihren Ressourcennamen.
  4. Ersetzen Sie {raiPolicyName} durch den Namen des Inhaltsfilters
  5. Ersetzen Sie {token} durch das Token, das Sie aus dem obigen Schritt „Token abrufen“ erhalten haben.
  6. Ersetzen Sie „raiBlocklistName“ im Textkörper durch einen benutzerdefinierten Namen für Ihre Liste. Zulässige Zeichen: 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": [ ] 
    } 
}' 

Hinzufügen von blockItems zur Liste

Hinweis

In einer Liste sind maximal 10.000 Benennungen zulässig.

Kopieren Sie den nachstehenden cURL-Befehl in einen Text-Editor, und nehmen Sie folgende Änderungen vor:

  1. Ersetzen Sie {subscriptionId} durch Ihre Unter-ID.
  2. Ersetzen Sie {resourceGroupName} durch ihren Ressourcengruppennamen.
  3. Ersetzen Sie {accountName} durch Ihren Ressourcennamen.
  4. Ersetzen Sie {raiBlocklistName} (in der URL) durch einen benutzerdefinierten Namen für Ihre Liste. Zulässige Zeichen: 0-9, A-Z, a-z, - . _ ~
  5. Ersetzen Sie {raiBlocklistItemName} durch einen benutzerdefinierten Namen für Ihr Listenelement.
  6. Ersetzen Sie {token} durch das Token, das Sie aus dem obigen Schritt „Token abrufen“ erhalten haben.
  7. Ersetzen Sie den Wert des Felds "blocking pattern" durch den Begriff, den Sie Ihrer Sperrliste hinzufügen möchten. Ein blockItem darf maximal 1000 Zeichen lang sein. Geben Sie auch an, ob das Muster „regex“ oder eine genaue Übereinstimmung ist.
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  
    }  
}' 

Hinweis

Es kann etwa 5 Minuten dauern, bis eine neue Benennung der Blockliste hinzugefügt wird. Bitte testen Sie nach 5 Minuten.

Der Antwortcode muss 200 sein.

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

Analysieren von Text mit einer Sperrliste

Jetzt können Sie Ihre Bereitstellung testen, für die die Blockliste vorhanden ist. Die einfachste Möglichkeit hierfür ist das Azure OpenAI Studio. Wenn der Inhalt entweder in der Eingabeaufforderung oder im Abschluss blockiert wurde, sollte eine Fehlermeldung angezeigt werden, die besagt, dass das Inhaltsfiltersystem ausgelöst wurde.

Anweisungen zum Aufrufen der Azure OpenAI-Endpunkte finden Sie in Schnellstart.

Im folgenden Beispiel blockiert eine GPT-35-Turbo-Bereitstellung mit einer Blockliste die Eingabeaufforderung. Die Antwort gibt einen 400 Fehler zurück.

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

Wenn der Abschluss selbst blockiert ist, wird die Antwort zurückgegeben 200, da der Abschluss nur abgeschnitten wird, wenn der Blocklisteninhalt abgeglichen wird. Die Anmerkungen zeigen, dass eine Blockliste abgeglichen wurde.

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

Verwenden von Blocklisten in Azure OpenAI Studio

Sie können auch benutzerdefinierte Blocklisten im Azure OpenAI Studio als Teil Ihrer Inhaltsfilterkonfigurationen (öffentliche Vorschau) erstellen. Anweisungen zum Erstellen von benutzerdefinierten Inhaltsfiltern finden Sie hier. Die folgenden Schritte zeigen, wie Sie benutzerdefinierte Blocklisten als Teil Ihrer Inhaltsfilter über Azure OpenAI Studio erstellen.

  1. Wählen Sie die Registerkarte „Blocklisten“ neben der Registerkarte „Inhaltsfilter“ aus. screenshot of blocklist selection.
  2. Wählen Sie „Blockliste erstellen“ aus Screenshot of blocklist create selection.
  3. Erstellen Sie einen Namen für Ihre Blockliste, fügen Sie eine Beschreibung hinzu, und wählen Sie „Erstellen“ aus. Screenshot of blocklist naming.
  4. Wählen Sie ihre benutzerdefinierte Blockliste aus, nachdem sie erstellt wurde, und wählen Sie „Benennung hinzufügen“ aus. Screenshot of custom blocklist add term.
  5. Fügen Sie einen Ausdruck hinzu, der gefiltert werden soll, und wählen Sie „Erstellen“ aus. Sie können auch eine VM erstellen. Screenshot of custom blocklist add item.
  6. Sie können jeden Ausdruck in Ihrer Blockliste bearbeiten und löschen. Screenshot of custom blocklist edit.
  7. Nachdem die Blockliste fertig ist, navigieren Sie zum Abschnitt „Inhaltsfilter (Vorschau)“, und erstellen Sie eine neue Konfiguration für angepasste Inhaltsfilter. Dadurch wird ein Assistent mit mehreren KI-Inhaltssicherheitskomponenten geöffnet. Weitere Informationen zum Konfigurieren der Hauptfilter und optionalen Modelle finden Sie hier. Wechseln Sie zu „Blockliste hinzufügen“ (Optional).
  8. Jetzt werden alle verfügbaren Blocklisten angezeigt. Es gibt zwei Arten von Blocklisten: die von Ihnen erstellten Blocklisten und vordefinierte Blocklisten, die Microsoft bereitstellt, in diesem Fall eine Profanity-Blockliste (Englisch)
  9. Sie können jetzt entscheiden, welche der verfügbaren Blocklisten Sie in Ihre Inhaltsfilterkonfiguration aufnehmen möchten, und Sie können auswählen, ob dies auf Eingabeaufforderungen, Fertigstellungen oder beides angewendet werden soll. Im folgenden Beispiel wenden wir CustomBlocklist1 an, die wir soeben erstellt haben, um Eingabeaufforderungen und Fertigstellungen sowie die Profanitätsblockliste nur auf Fertigstellungen anzuwenden. Der letzte Schritt besteht darin, die Konfiguration der Inhaltsfilterung zu überprüfen und abzuschließen, indem Sie auf „Weiter“ klicken. Screenshot of filtering configuration management.
  10. Sie können jederzeit zurückkehren und Ihre Konfiguration bearbeiten. Nachdem sie fertig ist, wählen Sie „Inhaltsfilter erstellen“ aus. Die neue Konfiguration, die Ihre Blocklisten enthält, kann jetzt auf eine Bereitstellung angewendet werden. Eine ausführliche Anleitung finden Sie hier.

Nächste Schritte