Condividi tramite


Usare un elenco di blocchi in Azure OpenAI

I filtri di contenuto configurabili sono sufficienti per la maggior parte delle esigenze di con modalità tenda ration. Tuttavia, potrebbe essere necessario filtrare i termini specifici del caso d'uso.

Prerequisiti

  • Una sottoscrizione di Azure. Crearne una gratuitamente.
  • Dopo aver creato la sottoscrizione di Azure, creare una risorsa OpenAI di Azure nella portale di Azure per ottenere il token, la chiave e l'endpoint. Immettere un nome univoco per la risorsa, selezionare la sottoscrizione immessa nel modulo dell'applicazione, selezionare un gruppo di risorse, un'area supportata e un piano tariffario supportato. Selezionare Crea.
    • La distribuzione della risorsa richiede alcuni minuti. Al termine, selezionare Vai alla risorsa. Nel riquadro sinistro, in Gestione risorse selezionare Chiave di sottoscrizione ed Endpoint. L'endpoint e una delle chiavi vengono usati per chiamare le API.
  • Interfaccia della riga di comando di Azure installata
  • cURL installato

Usare elenchi di blocchi

È possibile creare elenchi di blocchi con l'API OpenAI di Azure. La procedura seguente consente di iniziare.

Ottenere il token

Prima di tutto, è necessario ottenere un token per accedere alle API per la creazione, la modifica e l'eliminazione di elenchi di blocchi. È possibile ottenere questo token usando il comando seguente dell'interfaccia della riga di comando di Azure:

az account get-access-token 

Creare o modificare un elenco di blocchi

Copiare il comando cURL seguente in un editor di testo e apportare le modifiche seguenti:

  1. Sostituire {subscriptionId} con l'ID sottoscrizione.
  2. Sostituire {resourceGroupName} con il nome del gruppo di risorse.
  3. Sostituire {accountName} con il nome della risorsa.
  4. Sostituire {raiBlocklistName} (nell'URL) con un nome personalizzato per l'elenco. Caratteri consentiti: 0-9, A-Z, a-z, - . _ ~.
  5. Sostituire {token} con il token ottenuto dal passaggio "Ottenere il token" precedente.
  6. Facoltativamente, sostituire il valore del campo "description" con una descrizione personalizzata.
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"  
    } 
}' 

Il codice di risposta deve essere 201 (creato un nuovo elenco) o 200 (aggiornato un elenco esistente).

Applicare un elenco di blocchi a un filtro contenuto

Se non è ancora stato creato un filtro contenuto, è possibile farlo in Studio nella scheda Filtri contenuto a sinistra. Per usare l'elenco di blocchi, assicurarsi che questo filtro contenuto venga applicato a una distribuzione di Azure OpenAI. È possibile eseguire questa operazione nella scheda Distribuzioni sul lato sinistro.

Per applicare un elenco di blocchi di completamento a un filtro contenuto, usare il comando cURL seguente:

  1. Sostituire {subscriptionId} con l'ID secondario.
  2. Sostituire {resourceGroupName} con il nome del gruppo di risorse.
  3. Sostituire {accountName} con il nome della risorsa.
  4. Sostituire {raiPolicyName} con il nome del filtro contenuto
  5. Sostituire {token} con il token ottenuto dal passaggio "Ottenere il token" precedente.
  6. Sostituire "raiBlocklistName" nel corpo con un nome personalizzato per l'elenco. Caratteri consentiti: 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": [ ] 
    } 
}' 

Aggiungere blockItems all'elenco

Nota

Esiste un limite massimo di 10.000 termini consentiti in un elenco.

Copiare il comando cURL seguente in un editor di testo e apportare le modifiche seguenti:

  1. Sostituire {subscriptionId} con l'ID secondario.
  2. Sostituire {resourceGroupName} con il nome del gruppo di risorse.
  3. Sostituire {accountName} con il nome della risorsa.
  4. Sostituire {raiBlocklistName} (nell'URL) con un nome personalizzato per l'elenco. Caratteri consentiti: 0-9, A-Z, a-z, - . _ ~.
  5. Sostituire {raiBlocklistItemName} con un nome personalizzato per la voce di elenco.
  6. Sostituire {token} con il token ottenuto dal passaggio "Ottenere il token" precedente.
  7. Sostituire il valore del "blocking pattern" campo con l'elemento che si vuole aggiungere all'elenco di blocchi. La lunghezza massima di un blockItem è di 1000 caratteri. Specificare anche se il criterio è regex o corrispondenza esatta.
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  
    }  
}' 

Nota

L'aggiunta di un nuovo termine all'elenco di blocchi può richiedere circa 5 minuti. Prova dopo 5 minuti.

Il codice di risposta deve essere 200.

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

Analizzare il testo con un elenco di blocchi

È ora possibile testare la distribuzione con l'elenco di blocchi. Il modo più semplice per eseguire questa operazione è in Azure OpenAI Studio. Se il contenuto è stato bloccato al prompt o al completamento, verrà visualizzato un messaggio di errore che indica che il sistema di filtro del contenuto è stato attivato.

Per istruzioni sulla chiamata degli endpoint OpenAI di Azure, vedere Avvio rapido.

Nell'esempio seguente, una distribuzione GPT-35-Turbo con un elenco di blocchi blocca il prompt. La risposta restituisce un 400 errore.

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

Se il completamento stesso è bloccato, la risposta restituisce 200, perché il completamento viene interrotto solo quando viene trovata una corrispondenza con il contenuto dell'elenco di blocchi. Le annotazioni indicano che è stata trovata una corrispondenza in un elenco di blocchi.

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

Usare gli elenchi di blocchi in Azure OpenAI Studio

È anche possibile creare elenchi di blocchi personalizzati in Azure OpenAI Studio come parte delle configurazioni di filtro del contenuto (anteprima pubblica). Le istruzioni su come creare filtri di contenuto personalizzati sono disponibili qui. I passaggi seguenti illustrano come creare elenchi di blocchi personalizzati come parte dei filtri di contenuto tramite Azure OpenAI Studio.

  1. Selezionare la scheda Elenchi di blocchi accanto alla scheda Filtri contenuto. screenshot of blocklist selection.
  2. Selezionare Crea elenco di blocchi Screenshot of blocklist create selection.
  3. Creare un nome per l'elenco di blocchi, aggiungere una descrizione e selezionare Crea. Screenshot of blocklist naming.
  4. Selezionare l'elenco di blocchi personalizzato dopo la creazione e selezionare Aggiungi termine. Screenshot of custom blocklist add term.
  5. Aggiungere un termine che deve essere filtrato e selezionare Crea. È anche possibile creare un'espressione regolare. Screenshot of custom blocklist add item.
  6. È possibile modificare ed eliminare ogni termine nell'elenco di blocchi. Screenshot of custom blocklist edit.
  7. Quando l'elenco di blocchi è pronto, passare alla sezione Filtri contenuto (anteprima) e creare una nuova configurazione del filtro contenuto personalizzata. Verrà aperta una procedura guidata con diversi componenti di sicurezza dei contenuti di intelligenza artificiale. Altre informazioni su come configurare i filtri principali e i modelli facoltativi sono disponibili qui. Passare a Aggiungi elenco di blocchi (facoltativo).
  8. Verranno ora visualizzati tutti gli elenchi di blocchi disponibili. Esistono due tipi di blocklist: gli elenchi bloccati creati e gli elenchi di blocchi predefiniti forniti da Microsoft, in questo caso un elenco di blocchi Volgarity (inglese)
  9. È ora possibile decidere quali elenchi di blocchi disponibili includere nella configurazione del filtro del contenuto ed è possibile selezionare se deve essere applicato a prompt, completamenti o entrambi. Nell'esempio seguente viene applicato CustomBlocklist1 appena creato a prompt e completamenti e l'elenco di blocchi Contenuto volgare solo ai completamenti. L'ultimo passaggio consiste nel rivedere e completare la configurazione del filtro del contenuto facendo clic su Avanti. Screenshot of filtering configuration management.
  10. È sempre possibile tornare indietro e modificare la configurazione. Dopo averla pronta, selezionare Crea filtro contenuto. La nuova configurazione che include gli elenchi di blocchi può ora essere applicata a una distribuzione. Le istruzioni dettagliate sono disponibili qui.

Passaggi successivi