Inicio rápido: Categorías personalizadas (modo estándar) (versión preliminar)
Siga esta guía para usar la API de REST de categorías personalizadas de seguridad de contenido de Azure AI (estándar) para crear sus propias categorías de contenido para su caso de uso y entrenar la seguridad del contenido de Azure AI para detectarlos en contenido de texto nuevo.
Para obtener más información sobre las categorías personalizadas, consulte la Página de concepto categorías personalizadas. Para conocer los límites de entrada de la API, consulte la sección Requisitos de entrada de la Información general.
Importante
Esta característica solo está disponible en determinadas regiones de Azure. Consulte Disponibilidad de la región.
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.
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:
- cURL para llamadas API de REST.
- Python 3.x instalado
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. En esta guía, puede usar datos de ejemplo. El archivo de anotaciones proporcionado contiene indicaciones de texto sobre consejos de supervivencia en situaciones de acampada o en la naturaleza. El modelo entrenado aprenderá a detectar este tipo de contenido en nuevos datos de texto.
Sugerencia
Para obtener sugerencias sobre cómo crear su propio conjunto de datos, consulte la Guía paso a paso.
- Descargue el archivo de datos de texto de ejemplo del repositorio de GitHub.
- Cargue el archivo .jsonl en el contenedor de blobs de la cuenta de Azure Storage. A continuación, copie la dirección URL del blob en una ubicación temporal para su uso posterior.
Importante
La cuenta de almacenamiento del usuario se configura como una cuenta de espacio de nombres jerárquico, que no es compatible con categorías personalizadas. Intente usar una cuenta de almacenamiento normal en su lugar. Por ejemplo, la dirección URL del blob no se puede dividir en dos capas, como example/example1/, y solo debe tener una capa. Para más información, consulte la documentación: Espacio de nombres jerárquico de Azure Data Lake Storage: Azure Storage.
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 Seguridad del contenido de Azure AI y asigne el rol de Colaborador/propietario de datos de Storage Blob a la identidad:
Importante
Los roles Colaborador de datos de Storage Blob o Propietario de datos de Storage Blob son los únicos que permitirán continuar.
Habilite la identidad administrada para la instancia de Azure AI Content Safety.
Asigne el rol colaborador o propietario de datos de almacenamiento blob a la identidad administrada. Los roles resaltados a continuación deberían funcionar.
Cree y entrene una categoría personalizada
En el comando siguiente, 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-09-15-preview" \
-H "Ocp-Apim-Subscription-Key: <your_api_key>" \
-H "Content-Type: application/json" \
-d "{
\"categoryName\": \"survival-advice\",
\"definition\": \"text prompts about survival advice in camping/wilderness situations\",
\"sampleBlobUrl\": \"https://<your-azure-storage-url>/example-container/survival-advice.jsonl\"
}"
Sugerencia
Cada vez que cambie el nombre de categoría, la definición o los ejemplos, se creará una nueva versión. Puede usar el número de versión para realizar el seguimiento hasta las versiones anteriores. Recuerde este número de versión, ya que será necesario en la dirección URL de las categorías personalizadas de entrenamiento - paso siguiente.
Solicitud API
Campo | Descripción | Valor de ejemplo |
---|---|---|
categoryName |
Nombre de la categoría o tema al que se relaciona la solicitud. | consejos de supervivencia |
definition |
Una breve descripción del tipo de contenido de la categoría. | texto acerca de consejos de supervivencia en situaciones de acampada o en la naturaleza |
sampleBlobUrl |
Dirección URL para acceder a un archivo JSONL de muestra que contiene ejemplos de datos para la categoría. | Vínculo |
Respuesta de la API
Campo | Descripción | Valor de ejemplo |
---|---|---|
categoryName |
Nombre de la categoría o tema al que se relaciona la respuesta. | consejos de supervivencia |
definition |
Una breve descripción del tipo de contenido de la categoría. | texto acerca de consejos de supervivencia en situaciones de acampada o en la naturaleza |
sampleBlobUrl |
Dirección URL para acceder a un archivo JSONL de muestra que contiene ejemplos de datos para la categoría. | Vínculo |
sampleBlobSnapshotUrl |
Dirección URL de instantánea del archivo JSONL de muestra, que proporciona acceso a una versión específica de los datos. | Dirección URL de instantánea |
version |
Número de versión de los datos de categoría. | 1 |
createdTime |
Marca de tiempo cuando se crearon los datos de categoría. | 2024-10-28T22:06:59.4626988Z |
status |
Estado actual del procesamiento de datos de categoría. | Correcto |
Iniciar el proceso de compilación de categoría:
Reemplace <your_api_key> y <your_endpoint> por sus propios valores y, además, anexe el número de versión en la dirección URL que obtuvo del último paso. 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. Después de recibir la respuesta, almacene el id. de operación (denominado id
) en una ubicación temporal. Este id. será necesario para recuperar el estado de compilación mediante la API Obtener estado en la sección siguiente.
curl -X POST "<your_endpoint>/contentsafety/text/categories/survival-advice:build?api-version=2024-09-15-preview&version={version}" \
-H "Ocp-Apim-Subscription-Key: <your_api_key>" \
-H "Content-Type: application/json"
Respuesta de la API
Campo | Descripción | Valor de ejemplo |
---|---|---|
operation id |
Identificador único para recuperar el estado de compilación | b6c69dc1-2338-484e-85a5b-xxxxxxxxxxxx |
status |
Estado actual de la solicitud | Correcto |
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-09-15-preview" \
-H "Ocp-Apim-Subscription-Key: <your_api_key>" \
-H "Content-Type: application/json"
Respuesta de la API
Campo | Descripción | Valor de ejemplo |
---|---|---|
operation id |
Identificador único para recuperar el estado de compilación | b6c69dc1-2338-484e-855b-xxxxxxxxxxxx |
status |
Estado actual de la solicitud | Correcto |
Analizar texto con una categoría personalizada
Ejecute el siguiente comando para analizar el texto con la categoría personalizada. Reemplace <your_api_key>
y <your_endpoint>
con sus propios valores.
curl -X POST "<your_endpoint>/contentsafety/text:analyzeCustomCategory?api-version=2024-09-15-preview" \
-H "Ocp-Apim-Subscription-Key: <your_api_key>" \
-H "Content-Type: application/json" \
-d "{
\"text\": \"<Example text to analyze>\",
\"categoryName\": \"survival-advice\",
\"version\": 1
}"
Solicitud API
Campo | Descripción |
---|---|
text |
Contenido de texto o mensaje destinado a la detección de categorías |
categoryName |
Nombre de la categoría en la que se va a detectar el texto |
version |
Número de versión de la categoría |
Respuesta de la API
Campo | Descripción | Valor de ejemplo |
---|---|---|
customCategoryAnalysis |
Objeto que contiene el resultado de análisis de la categoría. | — |
detected |
Indica si se detectó la categoría especificada. | false |
Otras operaciones de categorías 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-09-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-09-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-09-15-preview&version=1" \
-H "Ocp-Apim-Subscription-Key: <your_api_key>" \
-H "Content-Type: application/json"