Compartir vía


Usar la API de categorías personalizadas (estándar)

La API de categorías personalizadas (estándar) le permite crear sus propias categorías de contenido para su caso de uso y entrenar Seguridad del contenido de Azure AI para que las detecte en contenido nuevo.

Importante

Esta característica solo está disponible en determinadas regiones de Azure. Consulte Disponibilidad de la región.

Precaución

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

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 seleccione un grupo de recursos, región admitiday 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. Copiar el punto de conexión y cualquiera de los valores de clave en una ubicación temporal para su uso posterior.
  • Cree también un contenedor de Azure Blob Storage donde mantendrá el archivo de anotación de entrenamiento.
  • Uno de los siguientes instalados:

Preparar los datos de entrenamiento

Para entrenar una categoría personalizada, necesita datos de texto de ejemplo que representen la categoría que desea detectar. Siga estos pasos para preparar los datos de ejemplo:

  1. Recopile o escriba los datos de ejemplo:

    • La calidad de los datos de ejemplo es importante para entrenar un modelo eficaz. Intente recopilar al menos 50 ejemplos positivos que representen fielmente el contenido que desea identificar. Estos ejemplos deben ser claros, variados y estar directamente relacionados con la definición de categoría.
    • No se necesitan ejemplos negativos, pero pueden mejorar la capacidad del modelo para distinguir el contenido relevante del irrelevante. Para mejorar el rendimiento, intente obtener 50 ejemplos que no estén relacionados con la definición del caso positivo. Deben ser variados, pero dentro del contexto del contenido que encontrará su modelo. Elija detenidamente los ejemplos negativos para asegurarse de que no se superponen accidentalmente con la categoría positiva.
    • Busque un equilibrio entre el número de ejemplos positivos y negativos. Un conjunto de datos desigual puede sesgar el modelo, haciendo que favorezca un tipo de clasificación en detrimento de otro, lo que puede dar lugar a una mayor tasa de falsos positivos o negativos.
  2. Use un editor de texto para dar formato a los datos en un archivo .jsonl. A continuación se muestra un ejemplo del formato adecuado. Los ejemplos de categorías deben establecer isPositive en true. Los ejemplos negativos son opcionales, pero pueden mejorar el rendimiento:

    {"text": "This is the 1st sample.", "isPositive": true}
    {"text": "This is the 2nd sample.", "isPositive": true}
    {"text": "This is the 3rd sample (negative).", "isPositive": false}
    
  3. Cargue el archivo .jsonl en un contenedor de blobs de la cuenta de Azure Storage. Copie la dirección URL del blob en una ubicación temporal para su uso posterior.

Conceder acceso de almacenamiento

A continuación, debe conceder acceso a los recursos de Content Safety para leer desde el recurso de Azure Storage. Habilite la identidad administrada asignada por el sistema para la instancia de Azure AI Content Safety y asigne el rol de Colaborador/propietario/lector de datos de Blob de almacenamiento a la identidad:

  1. Habilite la identidad administrada para la instancia de Azure AI Content Safety.

    Captura de pantalla del Azure Portal que habilita la identidad administrada.

  2. Asigne el rol colaborador o propietario de datos de almacenamiento blob a la identidad administrada. Los roles resaltados a continuación deberían funcionar.

    Captura de pantalla de la página Agregar asignación de roles en Azure Portal.

    Captura de pantalla de los roles asignados en el Azure Portal.

    Captura de pantalla de la función de identidad administrada.

Cree y entrene una categoría personalizada

Importante

Dejar tiempo suficiente para el entrenamiento del modelo

La ejecución de un extremo a otro del entrenamiento de categorías personalizadas puede llevar entre cinco y diez horas. Planificar la canalización de moderación en consecuencia y asignar tiempo para:

  • Recopilar y preparar los datos de ejemplo
  • El proceso de entrenamiento
  • Evaluación y ajustes del modelo

En los comandos siguientes, reemplace <your_api_key>, <your_endpoint> y otros parámetros necesarios por sus propios valores. A continuación, escriba cada comando en una ventana de terminal y ejecútelo.

Crear una nueva versión de categoría

curl -X PUT "<your_endpoint>/contentsafety/text/categories/<your_category_name>?api-version=2024-02-15-preview" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json" \
     -d "{
        \"categoryName\": \"<your_category_name>\",
        \"definition\": \"<your_category_definition>\",
        \"sampleBlobUrl\": \"https://example.blob.core.windows.net/example-container/sample.jsonl\"
     }"

Iniciar el proceso de compilación de categoría:

Después de recibir la respuesta, almacene el id. de operación (denominado id) en una ubicación temporal. Necesita este identificador para recuperar el estado de compilación mediante la API Obtener estado.

curl -X POST "<your_endpoint>/contentsafety/text/categories/<your_category_name>:build?api-version=2024-02-15-preview&version={version}" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json"

Obtener el estado de compilación de la categoría:

Para recuperar el estado, use el id obtenido de la respuesta anterior de la API y colóquelo en la ruta de acceso de la API siguiente.

curl -X GET "<your_endpoint>/contentsafety/text/categories/operations/<id>?api-version=2024-02-15-preview" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json"

Analizar texto con una categoría personalizada

Ejecute el siguiente comando para analizar el texto con la categoría personalizada. Reemplace <your_category_name> por su propio valor:

curl -X POST "<your_endpoint>/contentsafety/text:analyzeCustomCategory?api-version=2024-02-15-preview" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json" \
     -d "{
        \"text\": \"Example text to analyze\",
        \"categoryName\": \"<your_category_name>\", 
        \"version\": 1
        }"

Otras operaciones de categoría personalizadas

Recuerde reemplazar los marcadores de posición siguientes por los valores reales de la clave de API, el punto de conexión y el contenido específico (nombre de categoría, definición, etc.). Estos ejemplos le ayudan a administrar las categorías personalizadas de su cuenta.

Obtener una categoría personalizada o una versión específica de ella

Reemplazar los marcadores de posición por sus propios valores y ejecutar el siguiente comando en una ventana de terminal:

curl -X GET "<endpoint>/contentsafety/text/categories/<your_category_name>?api-version=2024-02-15-preview&version=1" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json"

Enumerar categorías de sus versiones más recientes

Reemplazar los marcadores de posición por sus propios valores y ejecutar el siguiente comando en una ventana de terminal:

curl -X GET "<endpoint>/contentsafety/text/categories?api-version=2024-02-15-preview" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json"

Eliminar una categoría personalizada o una versión específica de ella

Reemplazar los marcadores de posición por sus propios valores y ejecutar el siguiente comando en una ventana de terminal:

curl -X DELETE "<endpoint>/contentsafety/text/categories/<your_category_name>?api-version=2024-02-15-preview&version=1" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json"