Een bloklijst gebruiken in Azure OpenAI
De configureerbare inhoudsfilters zijn voldoende voor de meeste con tentmodus rationbehoeften. Mogelijk moet u echter termen filteren die specifiek zijn voor uw use-case.
Vereisten
- Een Azure-abonnement. Maak gratis een account.
- Zodra u uw Azure-abonnement hebt, maakt u een Azure OpenAI-resource in Azure Portal om uw token, sleutel en eindpunt op te halen. Voer een unieke naam in voor uw resource, selecteer het abonnement dat u hebt ingevoerd in het toepassingsformulier, selecteer een resourcegroep, ondersteunde regio en ondersteunde prijscategorie. Selecteer vervolgens Maken.
- Het implementeren van de resource duurt enkele minuten. Nadat deze is voltooid, selecteert u naar de resource. Selecteer in het linkerdeelvenster onder Resourcebeheer de optie Abonnementssleutel en Eindpunt. Het eindpunt en een van de sleutels worden gebruikt om API's aan te roepen.
- Azure CLI is geïnstalleerd
- cURL geïnstalleerd
Blokkeringslijsten gebruiken
U kunt bloklijsten maken met de Azure OpenAI-API. Met de volgende stappen kunt u aan de slag.
Uw token ophalen
Eerst moet u een token ophalen voor toegang tot de API's voor het maken, bewerken en verwijderen van bloklijsten. U kunt dit token ophalen met behulp van de volgende Azure CLI-opdracht:
az account get-access-token
Een blokkeringslijst maken of wijzigen
Kopieer de onderstaande cURL-opdracht naar een teksteditor en breng de volgende wijzigingen aan:
- Vervang {subscriptionId} door uw abonnements-id.
- Vervang {resourceGroupName} door de naam van de resourcegroep.
- Vervang {accountName} door de resourcenaam.
- Vervang {raiBlocklistName} (in de URL) door een aangepaste naam voor uw lijst. Toegestane tekens:
0-9, A-Z, a-z, - . _ ~
. - Vervang {token} door het token dat u hebt verkregen uit de bovenstaande stap 'Uw token ophalen'.
- Vervang eventueel de waarde van het veld 'beschrijving' door een aangepaste beschrijving.
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"
}
}'
De antwoordcode moet worden 201
(een nieuwe lijst gemaakt) of 200
(een bestaande lijst bijgewerkt).
Een blokkeringslijst toepassen op een inhoudsfilter
Als u nog geen inhoudsfilter hebt gemaakt, kunt u dit doen in Studio op het tabblad Inhoudsfilters aan de linkerkant. Als u de blokkeringslijst wilt gebruiken, moet u ervoor zorgen dat dit inhoudsfilter wordt toegepast op een Azure OpenAI-implementatie. U kunt dit doen op het tabblad Implementaties aan de linkerkant.
Als u een voltooiingsblokkeringslijst wilt toepassen op een inhoudsfilter, gebruikt u de volgende cURL-opdracht:
- Vervang {subscriptionId} door uw sub-id.
- Vervang {resourceGroupName} door de naam van de resourcegroep.
- Vervang {accountName} door de resourcenaam.
- {raiPolicyName} vervangen door de naam van uw inhoudsfilter
- Vervang {token} door het token dat u hebt verkregen uit de bovenstaande stap 'Uw token ophalen'.
- Vervang 'raiBlocklistName' in de hoofdtekst door een aangepaste naam voor uw lijst. Toegestane tekens:
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": [ ]
}
}'
blockItems toevoegen aan de lijst
Notitie
Er geldt een maximumlimiet van 10.000 termen die in één lijst zijn toegestaan.
Kopieer de onderstaande cURL-opdracht naar een teksteditor en breng de volgende wijzigingen aan:
- Vervang {subscriptionId} door uw sub-id.
- Vervang {resourceGroupName} door de naam van de resourcegroep.
- Vervang {accountName} door de resourcenaam.
- Vervang {raiBlocklistName} (in de URL) door een aangepaste naam voor uw lijst. Toegestane tekens:
0-9, A-Z, a-z, - . _ ~
. - Vervang {raiBlocklistItemName} door een aangepaste naam voor uw lijstitem.
- Vervang {token} door het token dat u hebt verkregen uit de bovenstaande stap 'Uw token ophalen'.
- Vervang de waarde van het
"blocking pattern"
veld door het item dat u wilt toevoegen aan de blokkeringslijst. De maximale lengte van een blockItem is 1000 tekens. Geef ook op of het patroon regex of exacte overeenkomst is.
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
}
}'
Notitie
Het kan ongeveer 5 minuten duren voordat een nieuwe term aan de blokkeringslijst wordt toegevoegd. Test na 5 minuten.
De antwoordcode moet zijn 200
.
{
"name": "raiBlocklistItemName",
"id": "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.CognitiveServices/accounts/accountName/raiBlocklists/raiBlocklistName/raiBlocklistItems/raiBlocklistItemName",
"properties": {
"pattern": "blocking pattern",
"isRegex": false
}
}
Tekst analyseren met een bloklijst
U kunt nu uw implementatie testen met de blokkeringslijst. De eenvoudigste manier om dit te doen, is in Azure OpenAI Studio. Als de inhoud is geblokkeerd tijdens een prompt of voltooiing, ziet u een foutbericht waarin staat dat het filtersysteem voor inhoud is geactiveerd.
Ga naar de quickstart voor instructies over het aanroepen van de Azure OpenAI-eindpunten.
In het onderstaande voorbeeld blokkeert een GPT-35-Turbo-implementatie met een bloklijst de prompt. Het antwoord retourneert een 400
fout.
{
"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"
}
}
}
}
}
Als de voltooiing zelf wordt geblokkeerd, retourneert 200
het antwoord, omdat de voltooiing alleen wordt afgesneden wanneer de inhoud in de blokkeringslijst overeenkomt. De aantekeningen geven aan dat er een blokkeringslijst is gevonden.
{
"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
}
}
Bloklijsten gebruiken in Azure OpenAI Studio
U kunt ook aangepaste bloklijsten maken in Azure OpenAI Studio als onderdeel van uw configuraties voor inhoudsfilters (openbare preview). Hier vindt u instructies voor het maken van aangepaste inhoudsfilters. De volgende stappen laten zien hoe u aangepaste bloklijsten maakt als onderdeel van uw inhoudsfilters via Azure OpenAI Studio.
- Selecteer Inhoudsfilters in het linkermenu. Selecteer het tabblad Bloklijsten naast het tabblad Inhoudsfilters. Selecteer vervolgens Blocklist maken.
- Maak een naam voor uw bloklijst, voeg een beschrijving toe en selecteer op Blocklist maken.
- Selecteer uw aangepaste bloklijst zodra deze is gemaakt en selecteer Nieuwe term toevoegen.
- Voeg een term toe die moet worden gefilterd en selecteer Term toevoegen. U kunt ook een regex maken.
- U kunt elke term in uw bloklijst verwijderen.
- Zodra de bloklijst gereed is, gaat u naar de sectie Inhoudsfilters (preview) en maakt u een nieuwe aangepaste configuratie voor inhoudsfilters. Hiermee opent u een wizard met verschillende ai-inhoudsveiligheidsonderdelen. Hier vindt u meer informatie over het configureren van de hoofdfilters en optionele modellen. Ga naar De blokkeringslijst toevoegen (optioneel).
- U ziet nu alle beschikbare bloklijsten. Er zijn twee soorten blokkeringen: de bloklijsten die u hebt gemaakt en vooraf gemaakte bloklijsten die Microsoft biedt, in dit geval een blokkeringslijst voor grof taalgebruik (Engels)
- U kunt nu bepalen welke van de beschikbare blokkeringslijsten u wilt opnemen in uw configuratie voor inhoudsfiltering. In het onderstaande voorbeeld passen we CustomBlocklist1 toe die we zojuist hebben gemaakt. De laatste stap is het controleren en voltooien van de configuratie voor inhoudsfilters door op Volgende te klikken.
- U kunt altijd teruggaan en uw configuratie bewerken. Zodra het klaar is, selecteert u het filter Inhoud maken. De nieuwe configuratie die uw blokkeringslijsten bevat, kan nu worden toegepast op een implementatie. Gedetailleerde instructies vindt u hier.
Volgende stappen
Meer informatie over verantwoorde AI-procedures voor Azure OpenAI: overzicht van verantwoorde AI-procedures voor Azure OpenAI-modellen.
Lees meer over inhoudsfiltercategorieën en ernstniveaus met Azure OpenAI Service.
Meer informatie over rode koppeling vindt u in ons artikel Inleiding tot red teaming large language models (LLMs).