Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Empiece a trabajar con Content Studio, la API de REST o los SDK de cliente para realizar la moderación básica de imágenes. El servicio Azure AI Content Safety proporciona algoritmos de inteligencia artificial para marcar contenido censurable. Siga estos pasos para probarlo.
Para más información sobre la moderación de imágenes, consulte la página Concepto de categorías de daños. Para conocer los límites de entrada de la API, consulte la sección Requisitos de entrada de la Información general.
Precaución
Los datos y el código de ejemplo pueden contener contenido ofensivo. Se recomienda discreción al usuario.
Requisitos previos
- Una cuenta de Azure. Si no tiene ninguna, puede crearla gratis.
- Un recurso Azure AI.
Configuración
Siga estos pasos para usar la página de prueba de seguridad del contenido:
- Vaya a Azure AI Foundry y vaya al proyecto o centro. A continuación, seleccione la pestaña Guardrails + controls (Límites de protección y controles ) en el panel de navegación izquierdo y seleccione la pestaña Pruébelo .
- En la página Pruébelo , puede experimentar con varias características de protección y controles, como el contenido de texto e imagen, usando umbrales ajustables para filtrar por contenido inapropiado o dañino.
Análisis de imágenes
La página Moderar imagen proporciona funcionalidad para que pueda probar rápidamente la moderación de imágenes.
- Seleccione el panel Contenido de imagen moderado.
- Seleccione una imagen de ejemplo de los paneles de la página o cargue su propia imagen.
- Haga clic en Ejecutar prueba. El servicio devuelve todas las categorías detectadas con el nivel de gravedad de cada una (0-Seguro, 2-Bajo, 4-Medio, 6-Alto). También devuelve un resultado binario Aceptado/Rechazado en función de los filtros que configure. Use la matriz de la pestaña Configure filters de la derecha para establecer los niveles de gravedad permitidos o prohibidos para cada categoría. A continuación, puede volver a ejecutar el texto para ver cómo funciona el filtro.
Visualización y exportación de código
Puede usar la característica View Code en la página Analyze text content o Analyze image content para ver y copiar el código de ejemplo, que incluye la configuración de las funciones de filtrado de gravedad, listas de bloqueados y moderación. A continuación, puede implementar el código en su entorno.
Requisitos previos
- Una suscripción Azure: Crear una gratuita
- Una vez que tenga la suscripción de Azure, crear un recurso de seguridad de contenido en el portal de Azure 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, una región admitida (consulte Disponibilidad de la región) y el plan de tarifa admitido. A continuación, seleccione Crear.
- El recurso tarda unos minutos en implementarse. Una vez finalizado, seleccione Ir al recurso. En el panel izquierdo, en Administración de recursos, seleccione Clave de suscripción y Punto de conexión. El punto de conexión y cualquiera de las claves se usan para llamar a las API.
- cURL instalado
Análisis de contenido de imágenes
En la siguiente sección se explica un ejemplo de una solicitud de censura de imágenes con cURL.
Preparación de una imagen de muestra
Elija una imagen de muestra para analizarla y descargarla en el dispositivo.
Consulte Requisitos de entrada para conocer las limitaciones de la imagen. Si el formato está animado, el servicio extraerá el primer fotograma para realizar el análisis.
Puede escribir la imagen mediante uno de estos dos métodos: secuencia de archivos local o dirección URL de almacenamiento de blobs.
Secuencia de archivos local (recomendada): codifique la imagen en base64. Puede usar un sitio web como codebeautify para realizar la codificación. A continuación, guarde la cadena codificada en una ubicación temporal.
Blob storage URL: cargue la imagen en una cuenta de Azure Blob Storage. Siga el inicio rápido de almacenamiento de blobs para aprender a hacerlo. A continuación, abra Azure Storage Explorer y obtenga la dirección URL de la imagen. Guárdela en una ubicación temporal.
A continuación, debe conceder acceso al recurso de Seguridad de contenido para leer desde el recurso de almacenamiento de Azure. Habilite la identidad administrada asignada por el sistema para la instancia de Azure AI Content Safety y asigne el rol de Storage Blob Data Contributor/Owner 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.
Análisis de contenido de imágenes
Pegue el comando siguiente en un editor de texto y realice los cambios siguientes.
- Reemplace por
<endpoint>la dirección URL del punto de conexión del recurso. - Reemplace
<your_subscription_key>por la clave. - Rellene el campo
"image"en el cuerpo con un campo"content"o un campo"blobUrl". Por ejemplo:{"image": {"content": "<base_64_string>"}o{"image": {"blobUrl": "<your_storage_url>"}.
curl --location --request POST '<endpoint>/contentsafety/image:analyze?api-version=2024-09-01' \
--header 'Ocp-Apim-Subscription-Key: <your_subscription_key>' \
--header 'Content-Type: application/json' \
--data-raw '{
"image": {
"content": "<base_64_string>"
},
"categories": ["Hate", "SelfHarm", "Sexual", "Violence"],
"outputType": "FourSeverityLevels"
}'
Nota:
Si usa una dirección URL de Blob Storage, el cuerpo de la solicitud debe tener este aspecto:
{
"image": {
"blobUrl": "<your_storage_url>"
}
}
Los campos siguientes deben incluirse en la dirección URL:
| Nombre | ¿Necesario? | Descripción | Tipo |
|---|---|---|---|
| Versión de la API | Obligatorio | Esta es la versión de la API que se va a comprobar. La versión actual es: api-version=2024-09-01. Ejemplo: <endpoint>/contentsafety/image:analyze?api-version=2024-09-01 |
Cuerda |
Los parámetros del cuerpo de la solicitud se definen en esta tabla:
| Nombre | ¿Necesario? | Descripción | Tipo |
|---|---|---|---|
| contenido | Obligatorio | El contenido o la dirección URL del blob de la imagen. Pueden ser bytes codificados en base64 o una dirección URL de blob. Si se proporcionan ambos, se rechaza la solicitud. El tamaño máximo permitido de la imagen es de 7200 x 7200 píxeles y el tamaño máximo de archivo es de 4 MB. El tamaño mínimo de la imagen es de 50 x 50 píxeles. | Cuerda |
| Categorías | Opcional | Se supone que es una matriz de nombres de categoría. Para obtener una lista de los nombres de categoría disponibles. consulte la guía de categorías de daños. Si no se especifica ninguna categoría, se usan las cuatro. Usamos varias categorías para obtener puntuaciones en una sola solicitud. | Cuerda |
| tipoDeSalida | Opcional | La API de moderación de imágenes solo admite "FourSeverityLevels". Gravedades de salida en cuatro niveles. El valor puede ser 0,2,4,6 |
Cuerda |
Abra una ventana del símbolo del sistema y ejecute el comando cURL.
Salida
Debería ver los resultados de la censura de imágenes mostrados como datos JSON en la consola. Por ejemplo:
{
"categoriesAnalysis": [
{
"category": "Hate",
"severity": 2
},
{
"category": "SelfHarm",
"severity": 0
},
{
"category": "Sexual",
"severity": 0
},
{
"category": "Violence",
"severity": 0
}
]
}
Los campos JSON de la salida se definen aquí:
| Nombre | Descripción | Tipo |
|---|---|---|
| análisisDeCategorías | Cada clase de salida que predice la API. La clasificación puede tener varias etiquetas. Por ejemplo, cuando se carga una imagen en el modelo de moderación de imágenes, podría clasificarse como contenido sexual y violencia. Categorías de daños | Cuerda |
| Severity | Nivel de gravedad de la marca en cada categoría de daño. Categorías de daños | Entero |
Reference documentation | Library source code | Package (NuGet) | Samples
Requisitos previos
- Una suscripción Azure: Crear una gratuita
- El Visual Studio IDE con la carga de trabajo de desarrollo de escritorio .NET habilitada. O bien, si no planea usar Visual Studio IDE, necesita la versión actual de .NET Core.
- .NET Runtime instalado.
- Una vez que tenga la suscripción de Azure, crear un recurso de seguridad de contenido en el portal de Azure 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, una región admitida (consulte Disponibilidad de la región) y el plan de tarifa admitido. A continuación, seleccione Crear.
- El recurso tarda unos minutos en implementarse. Cuando termine, seleccione Ir al recurso. En el panel izquierdo, en Administración de recursos, seleccione Clave de suscripción y Punto de conexión. El punto de conexión y cualquiera de las claves se usan para llamar a las API.
Configurar la aplicación
Cree una aplicación de C#.
Abra Visual Studio y, en Introducción seleccione Crear un nuevo proyecto. Establezca los filtros de plantilla en C#/Todas las plataformas/Consola. Seleccione Console App (aplicación de línea de comandos que se puede ejecutar en .NET en Windows, Linux y macOS) y elija Next. Actualice el nombre del proyecto a ContentSafetyQuickstart y elija Siguiente. Seleccione .NET 6.0 o superior y elija Crear para crear el proyecto.
Instalación del SDK de cliente
Una vez que haya creado un nuevo proyecto, instale el SDK de cliente haciendo clic con el botón derecho en la solución del proyecto en la Solution Explorer y seleccionando Administrar paquetes NuGet. En el administrador de paquetes que se abre, seleccione Browse y busque Azure.AI.ContentSafety. Seleccione Instalar.
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, reemplaceYOUR_CONTENT_SAFETY_KEYpor una de las claves del recurso. - Para establecer la variable de entorno
CONTENT_SAFETY_ENDPOINT, reemplaceYOUR_CONTENT_SAFETY_ENDPOINTpor el punto de conexión del recurso.
Importante
Use las claves de API con precaución. No incluya la clave de API directamente en el código ni la exponga nunca públicamente. Si usa una clave de API, almacénela de forma segura en Azure Key Vault. Para obtener más información sobre el uso de claves de API de forma segura en las aplicaciones, consulte CLAVESAPI con Azure Key Vault.
Para obtener más información sobre la seguridad de los servicios de inteligencia artificial, consulte
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.
Análisis de contenido de imágenes
En el directorio del proyecto, abra el archivo Program.cs que se creó anteriormente. Pegue el código siguiente.
using System;
using Azure.AI.ContentSafety;
namespace Azure.AI.ContentSafety.Dotnet.Sample
{
class ContentSafetySampleAnalyzeImage
{
public static void AnalyzeImage()
{
// retrieve the endpoint and key from the environment variables created earlier
string endpoint = Environment.GetEnvironmentVariable("CONTENT_SAFETY_ENDPOINT");
string key = Environment.GetEnvironmentVariable("CONTENT_SAFETY_KEY");
ContentSafetyClient client = new ContentSafetyClient(new Uri(endpoint), new AzureKeyCredential(key));
// Example: analyze image
string imagePath = @"sample_data\image.png";
ContentSafetyImageData image = new ContentSafetyImageData(BinaryData.FromBytes(File.ReadAllBytes(imagePath)));
var request = new AnalyzeImageOptions(image);
Response<AnalyzeImageResult> response;
try
{
response = client.AnalyzeImage(request);
}
catch (RequestFailedException ex)
{
Console.WriteLine("Analyze image failed.\nStatus code: {0}, Error code: {1}, Error message: {2}", ex.Status, ex.ErrorCode, ex.Message);
throw;
}
Console.WriteLine("Hate severity: {0}", response.Value.CategoriesAnalysis.FirstOrDefault(a => a.Category == ImageCategory.Hate)?.Severity ?? 0);
Console.WriteLine("SelfHarm severity: {0}", response.Value.CategoriesAnalysis.FirstOrDefault(a => a.Category == ImageCategory.SelfHarm)?.Severity ?? 0);
Console.WriteLine("Sexual severity: {0}", response.Value.CategoriesAnalysis.FirstOrDefault(a => a.Category == ImageCategory.Sexual)?.Severity ?? 0);
Console.WriteLine("Violence severity: {0}", response.Value.CategoriesAnalysis.FirstOrDefault(a => a.Category == ImageCategory.Violence)?.Severity ?? 0);
}
static void Main()
{
AnalyzeImage();
}
}
}
Cree una carpeta sample_data en el directorio del proyecto y agregue un archivo image.png en él.
Compile y ejecute la aplicación seleccionando Iniciar depuración en el menú Depurar de la parte superior de la ventana IDE (o presione F5).
Documentación de referencia | Código fuente de la biblioteca | Paquete (PyPI) | Ejemplos |
Requisitos previos
- Una suscripción Azure: Crear una gratuita
- Una vez que tenga la suscripción de Azure, crear un recurso de seguridad de contenido en el portal de Azure 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, una región admitida (consulte Disponibilidad de la región) y el plan de tarifa admitido. A continuación, seleccione Crear.
- El recurso tarda unos minutos en implementarse. Cuando termine, seleccione Ir al recurso. En el panel izquierdo, en Administración de recursos, seleccione Clave de suscripción y Punto de conexión. El punto de conexión y cualquiera de las claves se usan para llamar a las API.
-
Python 3.8 o posterior
- La instalación de Python debe incluir pip. Puede comprobar si tiene pip instalado mediante la ejecución de
pip --versionen la línea de comandos. Obtenga pip instalando la versión más reciente de Python.
- La instalación de Python debe incluir pip. Puede comprobar si tiene pip instalado mediante la ejecución de
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, reemplaceYOUR_CONTENT_SAFETY_KEYpor una de las claves del recurso. - Para establecer la variable de entorno
CONTENT_SAFETY_ENDPOINT, reemplaceYOUR_CONTENT_SAFETY_ENDPOINTpor el punto de conexión del recurso.
Importante
Use las claves de API con precaución. No incluya la clave de API directamente en el código ni la exponga nunca públicamente. Si usa una clave de API, almacénela de forma segura en Azure Key Vault. Para obtener más información sobre el uso de claves de API de forma segura en las aplicaciones, consulte CLAVESAPI con Azure Key Vault.
Para obtener más información sobre la seguridad de los servicios de inteligencia artificial, consulte
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.
Análisis de contenido de imágenes
En la sección siguiente se explica una solicitud de ejemplo con el SDK de Python.
Abre el símbolo del sistema, navega hasta la carpeta de tu proyecto y crea un archivo llamado quickstart.py.
Ejecute este comando para instalar la biblioteca cliente de Azure AI Content Safety:
python -m pip install azure-ai-contentsafetyCopie el código siguiente en quickstart.py:
import os from azure.ai.contentsafety import ContentSafetyClient from azure.ai.contentsafety.models import AnalyzeImageOptions, ImageData, ImageCategory from azure.core.credentials import AzureKeyCredential from azure.core.exceptions import HttpResponseError def analyze_image(): endpoint = os.environ.get('CONTENT_SAFETY_ENDPOINT') key = os.environ.get('CONTENT_SAFETY_KEY') image_path = os.path.join("sample_data", "image.jpg") # Create an Azure AI Content Safety client client = ContentSafetyClient(endpoint, AzureKeyCredential(key)) # Build request with open(image_path, "rb") as file: request = AnalyzeImageOptions(image=ImageData(content=file.read())) # Analyze image try: response = client.analyze_image(request) except HttpResponseError as e: print("Analyze image failed.") if e.error: print(f"Error code: {e.error.code}") print(f"Error message: {e.error.message}") raise print(e) raise hate_result = next(item for item in response.categories_analysis if item.category == ImageCategory.HATE) self_harm_result = next(item for item in response.categories_analysis if item.category == ImageCategory.SELF_HARM) sexual_result = next(item for item in response.categories_analysis if item.category == ImageCategory.SEXUAL) violence_result = next(item for item in response.categories_analysis if item.category == ImageCategory.VIOLENCE) if hate_result: print(f"Hate severity: {hate_result.severity}") if self_harm_result: print(f"SelfHarm severity: {self_harm_result.severity}") if sexual_result: print(f"Sexual severity: {sexual_result.severity}") if violence_result: print(f"Violence severity: {violence_result.severity}") if __name__ == "__main__": analyze_image()Reemplace
"sample_data"y"image.jpg"por la ruta de acceso y el nombre de archivo del local que desea usar.Luego ejecute la aplicación con el comando
pythonen el archivo de inicio rápido.python quickstart.py
Reference documentation | Library source code | Artifact (Maven) | Samples
Requisitos previos
- Una suscripción Azure: Crear una gratuita
- La versión actual del kit de desarrollo de Java (JDK)
- La herramienta de compilación de Gradle u otro administrador de dependencias.
- Una vez que tenga la suscripción de Azure, crear un recurso de seguridad de contenido en el portal de Azure 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, una región admitida (consulte Disponibilidad de la región) y el plan de tarifa admitido. A continuación, seleccione Crear.
- El recurso tarda unos minutos en implementarse. Cuando termine, seleccione Ir al recurso. En el panel izquierdo, en Administración de recursos, seleccione Clave de suscripción y Punto de conexión. El punto de conexión y cualquiera de las claves se usan para llamar a las API.
Configurar la aplicación
Cree un proyecto de Gradle.
En una ventana de la consola (como cmd, PowerShell o Bash), cree un directorio para la aplicación y vaya a él.
mkdir myapp && cd myapp
Ejecute el comando gradle init desde el directorio de trabajo. Este comando creará archivos de compilación esenciales para Gradle, como build.gradle.kts, que se usa en tiempo de ejecución para crear y configurar la aplicación.
gradle init --type basic
Cuando se le solicite que elija un DSL, seleccione Kotlin.
En el directorio de trabajo, ejecute el siguiente comando para crear una carpeta de origen del proyecto:
mkdir -p src/main/java
Vaya a la nueva carpeta y cree un archivo llamado ContentSafetyQuickstart.java.
Cree también una carpeta src/resources en la raíz del proyecto y agregue una imagen de ejemplo a ella.
Instalación del SDK de cliente
En este inicio rápido se usa el administrador de dependencias Gradle. Puede encontrar la biblioteca de cliente y la información de otros administradores de dependencias en el repositorio central de Maven.
Busque build.gradle.kts y ábralo con el IDE o el editor de texto que prefiera. A continuación, cópielo en la siguiente configuración de compilación. Esta configuración define el proyecto como una aplicación Java cuyo punto de entrada es la clase ContentSafetyQuickstart. Importa la biblioteca de Azure AI Vision.
plugins {
java
application
}
application {
mainClass.set("ContentSafetyQuickstart")
}
repositories {
mavenCentral()
}
dependencies {
implementation(group = "com.azure", name = "azure-ai-contentsafety", version = "1.0.0")
}
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, reemplaceYOUR_CONTENT_SAFETY_KEYpor una de las claves del recurso. - Para establecer la variable de entorno
CONTENT_SAFETY_ENDPOINT, reemplaceYOUR_CONTENT_SAFETY_ENDPOINTpor el punto de conexión del recurso.
Importante
Use las claves de API con precaución. No incluya la clave de API directamente en el código ni la exponga nunca públicamente. Si usa una clave de API, almacénela de forma segura en Azure Key Vault. Para obtener más información sobre el uso de claves de API de forma segura en las aplicaciones, consulte CLAVESAPI con Azure Key Vault.
Para obtener más información sobre la seguridad de los servicios de inteligencia artificial, consulte
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.
Análisis de contenido de imágenes
Abra ContentSafetyQuickstart.java en el editor o IDE que prefiera y pegue el siguiente código. Reemplace la variable source por la ruta de acceso a la imagen de ejemplo.
import com.azure.ai.contentsafety.ContentSafetyClient;
import com.azure.ai.contentsafety.ContentSafetyClientBuilder;
import com.azure.ai.contentsafety.models.AnalyzeImageOptions;
import com.azure.ai.contentsafety.models.AnalyzeImageResult;
import com.azure.ai.contentsafety.models.ContentSafetyImageData;
import com.azure.ai.contentsafety.models.ImageCategoriesAnalysis;
import com.azure.core.credential.KeyCredential;
import com.azure.core.util.BinaryData;
import com.azure.core.util.Configuration;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
public class ContentSafetyQuickstart {
public static void main(String[] args) throws IOException {
// get endpoint and key from environment variables
String endpoint = System.getenv("CONTENT_SAFETY_ENDPOINT");
String key = System.getenv("CONTENT_SAFETY_KEY");
ContentSafetyClient contentSafetyClient = new ContentSafetyClientBuilder()
.credential(new KeyCredential(key))
.endpoint(endpoint).buildClient();
ContentSafetyImageData image = new ContentSafetyImageData();
String cwd = System.getProperty("user.dir");
String source = "/src/samples/resources/image.png";
image.setContent(BinaryData.fromBytes(Files.readAllBytes(Paths.get(cwd, source))));
AnalyzeImageResult response =
contentSafetyClient.analyzeImage(new AnalyzeImageOptions(image));
for (ImageCategoriesAnalysis result : response.getCategoriesAnalysis()) {
System.out.println(result.getCategory() + " severity: " + result.getSeverity());
}
}
}
Vuelva a la carpeta raíz del proyecto y compile la aplicación con:
gradle build
A continuación, ejecútela con el comando gradle run:
gradle run
Salida
Hate severity: 0
SelfHarm severity: 0
Sexual severity: 0
Violence severity: 0
Documentación de referencia | Código fuente | Paquete (npm) | Ejemplos |
Requisitos previos
- Una suscripción Azure: Crear una gratuita
- La versión actual de Node.js
- Una vez que tenga la suscripción de Azure, crear un recurso de seguridad de contenido en el portal de Azure 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, una región admitida (consulte Disponibilidad de la región) y el plan de tarifa admitido. A continuación, seleccione Crear.
- El recurso tarda unos minutos en implementarse. Cuando termine, seleccione Ir al recurso. En el panel izquierdo, en Administración de recursos, seleccione Clave de suscripción y Punto de conexión. El punto de conexión y cualquiera de las claves se usan para llamar a las API.
Configurar la aplicación
Cree una nueva aplicación Node.js. En una ventana de la consola (como cmd, PowerShell o Bash), cree un directorio para la aplicación y vaya a él.
mkdir myapp && cd myapp
Ejecute el comando npm init para crear una aplicación de nodo con un archivo package.json.
npm init
Cree también una carpeta /resources en la raíz del proyecto y agregue una imagen de ejemplo a ella.
Instalación del SDK de cliente
Instale el paquete npm @azure-rest/ai-content-safety:
npm install @azure-rest/ai-content-safety
Instale también el módulo dotenv para usar variables de entorno:
npm install dotenv
el archivo package.json de la aplicación se actualizará con las dependencias.
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, reemplaceYOUR_CONTENT_SAFETY_KEYpor una de las claves del recurso. - Para establecer la variable de entorno
CONTENT_SAFETY_ENDPOINT, reemplaceYOUR_CONTENT_SAFETY_ENDPOINTpor el punto de conexión del recurso.
Importante
Use las claves de API con precaución. No incluya la clave de API directamente en el código ni la exponga nunca públicamente. Si usa una clave de API, almacénela de forma segura en Azure Key Vault. Para obtener más información sobre el uso de claves de API de forma segura en las aplicaciones, consulte CLAVESAPI con Azure Key Vault.
Para obtener más información sobre la seguridad de los servicios de inteligencia artificial, consulte
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.
Análisis de contenido de imágenes
Cree un nuevo archivo en el directorio index.js. Ábralo en el editor o el IDE que prefiera y pegue el siguiente código. Reemplace la variable image_path por la ruta de acceso a la imagen de ejemplo.
const ContentSafetyClient = require("@azure-rest/ai-content-safety").default,
{ isUnexpected } = require("@azure-rest/ai-content-safety");
const { AzureKeyCredential } = require("@azure/core-auth");
const fs = require("fs");
const path = require("path");
// Load the .env file if it exists
require("dotenv").config();
async function main() {
// get endpoint and key from environment variables
const endpoint = process.env["CONTENT_SAFETY_ENDPOINT"];
const key = process.env["CONTENT_SAFETY_KEY"];
const credential = new AzureKeyCredential(key);
const client = ContentSafetyClient(endpoint, credential);
// replace with your own sample image file path
const image_path = path.resolve(__dirname, "./resources/image.jpg");
const imageBuffer = fs.readFileSync(image_path);
const base64Image = imageBuffer.toString("base64");
const analyzeImageOption = { image: { content: base64Image } };
const analyzeImageParameters = { body: analyzeImageOption };
const result = await client.path("/image:analyze").post(analyzeImageParameters);
if (isUnexpected(result)) {
throw result;
}
for (let i = 0; i < result.body.categoriesAnalysis.length; i++) {
const imageCategoriesAnalysisOutput = result.body.categoriesAnalysis[i];
console.log(
imageCategoriesAnalysisOutput.category,
" severity: ",
imageCategoriesAnalysisOutput.severity
);
}
}
main().catch((err) => {
console.error("The sample encountered an error:", err);
});
Ejecute la aplicación con el comando node en el archivo de inicio rápido.
node index.js
Salida
Hate severity: 0
SelfHarm severity: 0
Sexual severity: 0
Violence severity: 0
Documentación de referencia | Código fuente | Paquete (npm) | Ejemplos |
Requisitos previos
- Una suscripción Azure: Crear una gratuita
- Node.js LTS
- TypeScript
- Visual Studio Code
- Una vez que tenga la suscripción de Azure, crear un recurso de seguridad de contenido en el portal de Azure 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, una región admitida (consulte Disponibilidad de la región) y el plan de tarifa admitido. A continuación, seleccione Crear.
- El recurso tarda unos minutos en implementarse. Cuando termine, seleccione Ir al recurso. En el panel izquierdo, en Administración de recursos, seleccione Clave de suscripción y Punto de conexión. El punto de conexión y cualquiera de las claves se usan para llamar a las API.
Configuración del entorno de desarrollo local
Cree un directorio para el proyecto y vaya a él:
mkdir content-safety-image-analysis cd content-safety-image-analysis code .Cree un nuevo paquete para módulos ESM en el directorio del proyecto:
npm init -y npm pkg set type=moduleInstale los paquetes necesarios:
npm install @azure-rest/ai-content-safetyInstalar dependencias de desarrollo:
npm install typescript @types/node --save-devCree un
tsconfig.jsonarchivo en el directorio del proyecto:{ "compilerOptions": { "target": "es2022", "module": "esnext", "moduleResolution": "bundler", "rootDir": "./src", "outDir": "./dist/", "esModuleInterop": true, "forceConsistentCasingInFileNames": true, "strict": true, "skipLibCheck": true, "declaration": true, "sourceMap": true, "resolveJsonModule": true, "moduleDetection": "force", "allowSyntheticDefaultImports": true, "verbatimModuleSyntax": false }, "include": [ "src/**/*.ts" ], "exclude": [ "node_modules/**/*", "**/*.spec.ts" ] }Actualice
package.jsonpara incluir un script para compilar archivos TypeScript:"scripts": { "build": "tsc", "start": "node dist/index.js" }Cree una
resourcescarpeta y agregue una imagen de ejemplo a ella.Cree un
srcdirectorio para el código typeScript.
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, reemplaceYOUR_CONTENT_SAFETY_KEYpor una de las claves del recurso. - Para establecer la variable de entorno
CONTENT_SAFETY_ENDPOINT, reemplaceYOUR_CONTENT_SAFETY_ENDPOINTpor el punto de conexión del recurso.
Importante
Use las claves de API con precaución. No incluya la clave de API directamente en el código ni la exponga nunca públicamente. Si usa una clave de API, almacénela de forma segura en Azure Key Vault. Para obtener más información sobre el uso de claves de API de forma segura en las aplicaciones, consulte CLAVESAPI con Azure Key Vault.
Para obtener más información sobre la seguridad de los servicios de inteligencia artificial, consulte
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.
Análisis de contenido de imágenes
Cree un nuevo archivo en el src directorio index.ts y pegue el código siguiente. Reemplace la cadena usada para crear la imagePath variable por la ruta de acceso a la imagen de ejemplo.
import ContentSafetyClient, {
isUnexpected,
AnalyzeImageParameters,
AnalyzeImage200Response,
AnalyzeImageDefaultResponse,
AnalyzeImageOptions,
ImageCategoriesAnalysisOutput
} from "@azure-rest/ai-content-safety";
import { AzureKeyCredential } from "@azure/core-auth";
import * as fs from "fs";
import * as path from "path";
import { fileURLToPath } from "url";
// Create __dirname equivalent for ESM modules
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
// Get endpoint and key from environment variables
const endpoint = process.env.CONTENT_SAFETY_ENDPOINT;
const key = process.env.CONTENT_SAFETY_KEY;
if (!endpoint || !key) {
throw new Error("Missing required environment variables CONTENT_SAFETY_ENDPOINT or CONTENT_SAFETY_KEY");
}
try {
const credential = new AzureKeyCredential(key);
const client = ContentSafetyClient(endpoint, credential);
const imagePath = path.join(__dirname, '../resources/image.jpg');
const imageBuffer = fs.readFileSync(imagePath);
const base64Image = imageBuffer.toString("base64");
const analyzeImageOption: AnalyzeImageOptions = { image: { content: base64Image } };
const analyzeImageParameters: AnalyzeImageParameters = { body: analyzeImageOption };
const result: AnalyzeImage200Response | AnalyzeImageDefaultResponse = await client.path("/image:analyze").post(analyzeImageParameters);
if (isUnexpected(result)) {
throw result;
}
const categoriesAnalysis = result.body.categoriesAnalysis as ImageCategoriesAnalysisOutput[];
for (const analysis of categoriesAnalysis) {
console.log(`${analysis.category} severity: ${analysis.severity}`);
}
} catch (error) {
console.error("Error analyzing image:", error);
}
Compilar y ejecutar el ejemplo
Compile el código TypeScript:
npm run buildEjecute el Código JavaScript compilado:
node dist/index.js
Salida
Hate severity: 0
SelfHarm severity: 0
Sexual severity: 0
Violence severity: 0
Limpieza de recursos
Si desea limpiar y quitar una suscripción de Azure AI services, puede eliminar el recurso o el grupo de recursos. Al eliminar el grupo de recursos, también se elimina cualquier otro recurso que esté asociado a él.
Contenido relacionado
- Categorías de daños
- Configure filtros para cada categoría y pruébelos en conjuntos de datos mediante Content Safety Studio, exporte el código e impleméntelo.