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:
- Reemplace {subscriptionId} por su id. de suscripción.
- Reemplace {resourceGroupName} por su nombre del grupo de recursos.
- Reemplace {accountName} por su nombre del recurso.
- Reemplace {raiBlocklistName} (en la URL) por un nombre personalizado para su lista. Caracteres permitidos:
0-9, A-Z, a-z, - . _ ~
. - Reemplace {token} por el token que obtuvo en el paso "Obtener el token".
- 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:
- Reemplace {subscriptionId} por su id. secundario.
- Reemplace {resourceGroupName} por su nombre del grupo de recursos.
- Reemplace {accountName} por su nombre del recurso.
- Reemplace {raiPolicyName} por el nombre de su Filtro de contenido
- Reemplace {token} por el token que obtuvo en el paso "Obtención del token".
- 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:
- Reemplace {subscriptionId} por su id. secundario.
- Reemplace {resourceGroupName} por su nombre del grupo de recursos.
- Reemplace {accountName} por su nombre del recurso.
- Reemplace {raiBlocklistName} (en la URL) por un nombre personalizado para su lista. Caracteres permitidos:
0-9, A-Z, a-z, - . _ ~
. - Reemplace {raiBlocklistItemName} por un nombre personalizado para su elemento de lista.
- Reemplace {token} por el token que obtuvo en el paso "Obtención del token".
- 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.
- 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.
- Cree un nombre para la lista de bloqueados, añada una descripción y seleccione Crear lista de bloqueos.
- Una vez creada, seleccione la lista de bloqueados personalizada y seleccione Agregar nuevo término.
- Agregue un término para filtrar y seleccione Agregar término. También puede crear una regex.
- Puede eliminar cada término de la lista de bloqueados.
- 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).
- 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)
- 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.
- 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
Obtenga más información sobre las prácticas de inteligencia artificial responsable de Azure OpenAI: Introducción a las prácticas de inteligencia artificial responsable para los modelos de Azure OpenAI.
Obtenga más información sobre las categorías de filtrado de contenido y los niveles de gravedad con el Azure OpenAI Service.
Obtenga más información sobre Read Teaming en nuestro: artículo Introducción a los modelos lingüísticos de gran tamaño (LLM).