Compartir vía


Uso de una lista de bloqueados en Azure OpenAI

Los filtros de contenido configurables son suficientes para la mayoría de las necesidades de moderación de contenido. No obstante, es posible que tenga que filtrar los términos específicos de su caso de uso.

Requisitos previos

  • Suscripción a Azure. cree una de forma gratuita.
  • Cuando tenga la suscripción de Azure, cree un recurso de Azure OpenAI en Azure Portal para obtener su token, clave y punto de conexión. Escriba un nombre único para el recurso, seleccione la suscripción que especificó en el formulario de solicitud, seleccione un grupo de recursos, una región admitida y un plan de tarifa admitido. Seleccione Crear.
    • El recurso tarda unos minutos en implementarse. Cuando termine, seleccione Ir al recurso. En el panel de la izquierda, en Administración de recursos, seleccione Clave y punto de conexión de la suscripción. El punto de conexión y cualquiera de las claves se usan para llamar a las API.
  • CLI de Azure instalada
  • cURL instalado

Usar listas de bloqueados

Puede crear listas de bloqueados con la API de Azure OpenAI. Los siguientes pasos le ayudarán a empezar a trabajar.

Obtención del token

Primero, debe obtener un token para acceder a las API para crear, editar y eliminar listas de bloqueados. Puede obtener este token mediante el siguiente comando de la CLI de Azure:

az account get-access-token 

Crear o modificar una lista de bloqueados

Copie el comando cURL siguiente en un editor de texto y realice los cambios siguientes:

  1. Reemplace {subscriptionId} por su id. de suscripción.
  2. Reemplace {resourceGroupName} por su nombre del grupo de recursos.
  3. Reemplace {accountName} por su nombre del recurso.
  4. Reemplace {raiBlocklistName} (en la URL) por un nombre personalizado para su lista. Caracteres permitidos: 0-9, A-Z, a-z, - . _ ~.
  5. Reemplace {token} por el token que obtuvo en el paso "Obtener el token".
  6. Tiene la opción de reemplazar el valor del campo "descripción" por una descripción personalizada.
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"  
    } 
}' 

El código de respuesta debe ser 201 (creada una nueva lista) o 200(actualizada una lista existente).

Aplicar una lista de bloqueados a un filtro de contenido

Si aún no ha creado un filtro de contenido, puede hacerlo en Studio en la pestaña Filtros de contenido a la izquierda. Para usar la lista de bloqueados asegúrese de que este filtro de contenido se aplica a una implementación de Azure OpenAI. Puede hacerlo en la pestaña Implementaciones a la izquierda.

Para aplicar una lista de bloqueados de finalización a un filtro de contenido, use el siguiente comando cURL:

  1. Reemplace {subscriptionId} por su id. secundario.
  2. Reemplace {resourceGroupName} por su nombre del grupo de recursos.
  3. Reemplace {accountName} por su nombre del recurso.
  4. Reemplace {raiPolicyName} por el nombre de su Filtro de contenido
  5. Reemplace {token} por el token que obtuvo en el paso "Obtención del token".
  6. Reemplace "raiBlocklistName" en el cuerpo por un nombre personalizado para su lista. Caracteres permitidos: 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": [ ] 
    } 
}' 

Agregar blockItems a la lista

Nota:

Hay un límite máximo de 10 000 términos permitidos en cada lista.

Copie el comando cURL siguiente en un editor de texto y realice los cambios siguientes:

  1. Reemplace {subscriptionId} por su id. secundario.
  2. Reemplace {resourceGroupName} por su nombre del grupo de recursos.
  3. Reemplace {accountName} por su nombre del recurso.
  4. Reemplace {raiBlocklistName} (en la URL) por un nombre personalizado para su lista. Caracteres permitidos: 0-9, A-Z, a-z, - . _ ~.
  5. Reemplace {raiBlocklistItemName} por un nombre personalizado para su elemento de lista.
  6. Reemplace {token} por el token que obtuvo en el paso "Obtención del token".
  7. Reemplace el valor del campo "blocking pattern" por el elemento que desea agregar a la lista de bloqueados. La longitud máxima de un blockItem es de 1000 caracteres. Especifique también si el patrón es regex o una coincidencia exacta.
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:

Un término nuevo puede tardar alrededor de 5 minutos en agregarse a la lista de bloqueados. Pruebe una vez transcurridos 5 minutos.

El código de respuesta debería ser 200.

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

Analizar texto con una lista de bloqueados

Ahora puede probar la implementación que tiene la lista de bloqueados. La manera más fácil de hacerlo es en Azure OpenAI Studio. Si el contenido se bloqueó durante el mensaje o finalización, debería ver un mensaje de error que indica que se desencadenó el sistema de filtrado de contenido.

Para saber cómo llamar a los puntos de conexión de Azure OpenAI, visite el Inicio rápido.

En el siguiente ejemplo, una implementación GPT-35-Turbo con una lista de bloqueados bloquea el mensaje. La respuesta devuelve un error 400.

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

Si la finalización en sí está bloqueada, la respuesta devuelve 200, ya que la finalización solo se corta cuando se coincide con el contenido de la lista de bloqueados. Las anotaciones muestran que se ha coincidido con una lista de bloqueados.

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

Uso de listas de bloqueados en Azure OpenAI Studio

También puede crear listas de bloqueados personalizadas en Azure OpenAI Studio como parte de las configuraciones de filtrado de contenido (versión preliminar pública). Puede encontrar instrucciones sobre cómo crear filtros de contenido personalizados aquí. A continuación se muestran los pasos para crear listas de bloqueados personalizadas como parte de los filtros de contenido a través de Azure OpenAI Studio.

  1. Seleccione Filtros de contenido en el menú de la izquierda. Seleccione la pestaña Listas de bloqueados junto a la pestaña Filtros de contenido. A continuación, seleccione Crear lista de bloqueados. Captura de pantalla de la selección de creación de listas de bloqueados.
  2. Cree un nombre para la lista de bloqueados, añada una descripción y seleccione Crear lista de bloqueos. Recorte de pantalla del nombre y la descripción de la lista de bloques.
  3. Una vez creada, seleccione la lista de bloqueados personalizada y seleccione Agregar nuevo término. Captura de pantalla de la adición de términos de la lista de bloqueados personalizada.
  4. Agregue un término para filtrar y seleccione Agregar término. También puede crear una regex. Captura de pantalla de la adición de elemento de la lista de bloqueados personalizada.
  5. Puede eliminar cada término de la lista de bloqueados. Recorte de pantalla de la pantalla de edición de listas de bloqueados personalizada.
  6. Una vez preparada la lista de bloqueados, vaya a la sección Filtros de contenido (versión preliminar) y cree una nueva configuración de filtro de contenido personalizada. Se abre un asistente con varios componentes de seguridad de contenido de IA. Puede leer más sobre cómo configurar los filtros principales y los modelos opcionales aquí. Vaya a Agregar lista de bloqueados (Opcional).
  7. Ahora verá todas las listas de bloqueados disponibles. Hay dos tipos de listas de bloqueos: las listas de bloqueados que creó y las listas de bloqueados compiladas previamente que proporciona Microsoft, en este caso una lista de palabras soeces (inglés)
  8. Ahora puede decidir cuál de las listas de bloqueo disponibles desea incluir en la configuración de filtrado de contenido. En el ejemplo siguiente, aplicamos la CustomBlocklist1 que acabamos de crear. El último paso es revisar y finalizar la configuración de filtrado de contenido haciendo clic en Siguiente. Captura de pantalla de la administración de la configuración de filtrado.
  9. Siempre puede volver y editar la configuración. Cuando esté listo, seleccione Crear filtro de contenido. La nueva configuración que incluye sus listas de bloqueados ahora se puede aplicar a una implementación. Aquí puede encontrar instrucciones detalladas.

Pasos siguientes