Compartir vía


Usar una lista de bloqueados

Precaución

Los datos de ejemplo de esta guía pueden incluir contenido ofensivo. Se recomienda al usuario seguir su criterio.

Los clasificadores de IA predeterminados son suficientes para la mayoría de las necesidades de moderación de contenido. Sin embargo, es posible que deba buscar elementos que sean específicos del caso de uso. Las listas de bloqueados permiten agregar términos personalizados a los clasificadores de IA. Puede usar listas de bloqueo para buscar términos o frases específicos que desee marcar en el contenido.

Requisitos previos

  • Una suscripción a Azure: cree una cuenta gratuita.
  • Una vez que tenga la suscripción de Azure, cree un recurso de Content Safety en Azure Portal para obtener la clave y el punto de conexión. Escriba un nombre único para el recurso, seleccione la suscripción y, después, un grupo de recursos, una región admitida (consulte Región de disponibilidad) y el 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.
  • Uno de los siguientes instalados:
    • cURL para llamadas API de REST.
    • Python 3.x instalado
      • La instalación de Python debe incluir pip. Puede comprobar si tiene pip instalado mediante la ejecución de pip --version en la línea de comandos. Para obtener pip, instale la versión más reciente de Python.
      • Si usa Python, deberá instalar la biblioteca cliente de Content Safety de Azure AI para Python. Ejecute el comando pip install azure-ai-contentsafety en el directorio del proyecto.
    • .NET Runtime instalado.
      • SDK de .NET Core instalado.
      • Si usa .NET, deberá instalar la biblioteca cliente de Content Safety de Azure AI para .NET. Ejecute el comando dotnet add package Azure.AI.ContentSafety --prerelease en el directorio del proyecto.

Creación de variables de entorno

En este ejemplo, escribirá las credenciales en variables de entorno del equipo local que ejecuta la aplicación.

Para establecer la variable de entorno para la clave y el punto de conexión, abra una ventana de consola y siga las instrucciones correspondientes a su sistema operativo y su entorno de desarrollo.

  • Para establecer la variable de entorno CONTENT_SAFETY_KEY, reemplace YOUR_CONTENT_SAFETY_KEY por una de las claves del recurso.
  • Para establecer la variable de entorno CONTENT_SAFETY_ENDPOINT, reemplace YOUR_CONTENT_SAFETY_ENDPOINT por el punto de conexión del recurso.

Importante

Si usa una clave de API, almacénela de forma segura en otro lugar, como en Azure Key Vault. No incluya la clave de API directamente en el código ni la exponga nunca públicamente.

Para más información acerca de la seguridad de los servicios de AI, consulte Autenticación de solicitudes a los servicios de Azure AI.

setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'

Después de agregar las variables de entorno, puede que tenga que reiniciar todos los programas en ejecución que leerán la variable de entorno, incluida la ventana de consola.

Analizar texto con una lista de bloqueados

Puede crear listas de bloqueados para usarlas con la API Text. Los siguientes pasos le ayudarán a empezar a trabajar.

Crear o modificar una lista de bloqueados

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

  1. Reemplace <endpoint> por la dirección URL del punto de conexión.
  2. Reemplace <enter_your_key_here> por la clave.
  3. Reemplace <your_list_name> (en la dirección URL) por un nombre personalizado para la lista. Reemplace también el último término de la dirección URL de REST por el mismo nombre. Caracteres permitidos: 0-9, A-Z, a-z, - . _ ~.
  4. Tiene la opción de reemplazar el valor del campo "description" por una descripción personalizada.
curl --location --request PATCH '<endpoint>/contentsafety/text/blocklists/<your_list_name>?api-version=2024-09-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "description": "This is a violence list"
}'

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

Agregar blocklistItems a la lista

Nota:

Hay un límite máximo de 10 000 términos en total en todas las listas. Puede agregar como máximo 100 blocklistItems en una solicitud.

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

  1. Reemplace <endpoint> por la dirección URL del punto de conexión.
  2. Reemplace <enter_your_key_here> por la clave.
  3. Reemplace <your_list_name> (en la dirección URL) por el nombre que usó en el paso de creación de la lista.
  4. Tiene la opción de reemplazar el valor del campo "description" por una descripción personalizada.
  5. Reemplace el valor del campo "text" por el elemento que desea agregar a la lista de bloqueados. La longitud máxima de un blocklistItem es de 128 caracteres.
curl --location --request POST '<endpoint>/contentsafety/text/blocklists/<your_list_name>:addOrUpdateBlocklistItems?api-version=2024-09-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--header 'Content-Type: application/json' \
--data-raw '"blocklistItems": [{
    "description": "string",
    "text": "bleed"
}]'

Sugerencia

Puede agregar varios blocklistItems en una llamada API. Convierta el cuerpo de la solicitud en una matriz JSON de grupos de datos:

{
   "blocklistItems": [
       {
           "description": "string",
           "text": "bleed"
       },
       {
           "description": "string",
           "text": "blood"
       }
   ]
}

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

{
"blocklistItems:"[
  {
  "blocklistItemId": "string",
  "description": "string",
  "text": "bleed"
  
   }
 ]
}

Nota

Habrá cierto retraso después de agregar o editar un blockItem antes de que surta efecto en el análisis de texto, normalmente no más de cinco minutos.

Analizar texto con una lista de bloqueados

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

  1. Reemplace <endpoint> por la dirección URL del punto de conexión.
  2. Reemplace <enter_your_key_here> por la clave.
  3. Reemplace <your_list_name> por el nombre que usó en el paso de creación de la lista. El campo "blocklistNames" puede contener una matriz de varios id. de lista.
  4. Tiene la opción de cambiar el valor "breakByBlocklists". true indica que una vez que se coincide con una lista de bloqueados, el análisis volverá inmediatamente sin salida del modelo. false hará que el modelo siga realizando el análisis en las categorías predeterminadas.
  5. Tiene la opción de cambiar el valor del campo "text" a cualquier texto que quiera analizar.
curl --location --request POST '<endpoint>/contentsafety/text:analyze?api-version=2024-09-01&' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "text": "I want to beat you till you bleed",
  "categories": [
    "Hate",
    "Sexual",
    "SelfHarm",
    "Violence"
  ],
  "blocklistNames":["<your_list_name>"],
  "haltOnBlocklistHit": false,
  "outputType": "FourSeverityLevels"
}'

La respuesta JSON contendrá un valor "blocklistMatchResults" que indica las coincidencias con la lista de bloqueados. Notifica la ubicación en la cadena de texto donde se encontró la coincidencia.

{
  "blocklistsMatch": [
    {
      "blocklistName": "string",
      "blocklistItemId": "string",
      "blocklistItemText": "bleed"
    }
  ],
  "categoriesAnalysis": [
    {
      "category": "Hate",
      "severity": 0
    }
  ]
}

Otras operaciones de lista de bloqueados

Esta sección contiene más operaciones que le ayudarán a administrar y usar la característica de lista de bloqueados.

Enumerar todos los blocklistItems de una lista

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

  1. Reemplace <endpoint> por la dirección URL del punto de conexión.
  2. Reemplace <enter_your_key_here> por la clave.
  3. Reemplace <your_list_name> (en la dirección URL) por el nombre que usó en el paso de creación de la lista.
curl --location --request GET '<endpoint>/contentsafety/text/blocklists/<your_list_name>/blocklistItems?api-version=2024-09-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--header 'Content-Type: application/json'

El código de estado debería ser 200 y el cuerpo de la respuesta debería tener este aspecto:

{
 "values": [
  {
   "blocklistItemId": "string",
   "description": "string",
   "text": "bleed",
  }
 ]
}

Enumerar todas las listas de bloqueados

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

  1. Reemplace <endpoint> por la dirección URL del punto de conexión.
  2. Reemplace <enter_your_key_here> por la clave.
curl --location --request GET '<endpoint>/contentsafety/text/blocklists?api-version=2024-09-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--header 'Content-Type: application/json'

El código de estado debería ser 200. Una respuesta JSON tiene el aspecto siguiente:

"value": [
  {
    "blocklistName": "string",
    "description": "string"
  }
]

Obtención de la lista de bloqueados por blocklistName

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

  1. Reemplace <endpoint> por la dirección URL del punto de conexión.
  2. Reemplace <enter_your_key_here> por la clave.
  3. Reemplace <your_list_name> (en la dirección URL) por el nombre que usó en el paso de creación de la lista.
cURL --location '<endpoint>contentsafety/text/blocklists/<your_list_name>?api-version=2024-09-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--data ''

El código de estado debería ser 200. Una respuesta JSON tiene el aspecto siguiente:

{
  "blocklistName": "string",
  "description": "string"
}

Obtención de blocklistItem por blocklistName y blocklistItemId

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

  1. Reemplace <endpoint> por la dirección URL del punto de conexión.
  2. Reemplace <enter_your_key_here> por la clave.
  3. Reemplace <your_list_name> (en la dirección URL) por el nombre que usó en el paso de creación de la lista.
  4. Reemplace <your_item_id> con el valor de id. para el blocklistItem. Este es el valor del campo "blocklistItemId" de las llamadas API Agregar blocklistItem u Obtener todos los blocklistItems.
cURL --location '<endpoint>contentsafety/text/blocklists/<your_list_name>/blocklistItems/<your_item_id>?api-version=2024-09-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--data ''

El código de estado debería ser 200. Una respuesta JSON tiene el aspecto siguiente:

{
  "blocklistItemId": "string",
  "description": "string",
  "text": "string"
}
  1. Reemplace <your_list_name> por el nombre que usó en el paso de creación de la lista.
  2. Reemplace <your_block_item_id> por el identificador del elemento que desea obtener.
  3. Ejecute el script.

Quite los blocklistItems de una lista de bloqueados.

Nota:

Habrá cierto retraso después de agregar o editar un elemento antes de que surta efecto en el análisis de texto, normalmente no más de cinco minutos.

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

  1. Reemplace <endpoint> por la dirección URL del punto de conexión.
  2. Reemplace <enter_your_key_here> por la clave.
  3. Reemplace <your_list_name> (en la dirección URL) por el nombre que usó en el paso de creación de la lista.
  4. Reemplace <item_id> con el valor de id. para el blocklistItem. Este es el valor del campo "blocklistItemId" de las llamadas API Agregar blocklistItem u Obtener todos los blocklistItems.
curl --location --request POST '<endpoint>/contentsafety/text/blocklists/<your_list_name>:removeBlocklistItems?api-version=2024-09-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--header 'Content-Type: application/json'
--data-raw '"blocklistItemIds":[
    "<item_id>"
]'

Sugerencia

Puede eliminar varios blocklistItems en una llamada API. Convierta el cuerpo de la solicitud en una matriz de valores blocklistItemId.

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

Eliminar una lista y todo su contenido

Nota:

Habrá cierto retraso después de agregar o editar un elemento antes de que surta efecto en el análisis de texto, normalmente no más de cinco minutos.

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

  1. Reemplace <endpoint> por la dirección URL del punto de conexión.
  2. Reemplace <enter_your_key_here> por la clave.
  3. Reemplace <your_list_name> (en la dirección URL) por el nombre que usó en el paso de creación de la lista.
curl --location --request DELETE '<endpoint>/contentsafety/text/blocklists/<your_list_name>?api-version=2024-09-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--header 'Content-Type: application/json' \

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

Pasos siguientes

Consulte la documentación de referencia de API para obtener más información sobre las API que se usan en esta guía.