Compartilhar via


Início rápido: analisar conteúdo da imagem

Comece a usar o Content Studio, a API REST ou os SDKs do cliente para fazer a moderação de imagem básica. O serviço de Segurança de Conteúdo de IA do Azure fornece algoritmos de IA para sinalizar conteúdo indesejável. Siga estas etapas para testar.

Para obter mais informações sobre moderação de imagem, consulte a Página de conceito de categorias de danos. Para obter limites de entrada da API, consulte a seção Requisitos de entrada da visão geral.

Observação

Os dados de exemplo e o código podem ter um conteúdo ofensivo. O critério do usuário é aconselhado.

Pré-requisitos

  • Uma assinatura do Azure – crie uma gratuitamente
  • Depois de ter uma assinatura do Azure, crie um recurso de Segurança do Conteúdo no portal do Azure para obter uma chave e um ponto de extremidade. Insira um nome exclusivo para o recurso, selecione a assinatura e selecione um grupo de recursos, uma região com suporte (confira a Disponibilidade de região) e um tipo de preço com suporte. Em seguida, selecione Criar.
    • O recurso demora alguns minutos para implantar. Após a conclusão, selecione ir para o recurso. No painel à esquerda, em Gerenciamento de Recursos, selecione Chave de Assinatura e Ponto de Extremidade. O ponto de extremidade e uma das chaves são usados para chamar as APIs.
  • cURL instalado

Analisar conteúdo da imagem

A seção a seguir percorre uma solicitação de moderação de imagem de exemplo com cURL.

Preparar uma imagem de exemplo

Escolha uma imagem de exemplo para analisar e baixe-a em seu dispositivo.

Confira os requisitos de entrada das limitações de imagem. Se o formato for animado, o serviço extrairá o primeiro quadro para fazer a análise.

Você pode inserir sua imagem por um dos dois métodos: fluxo de arquivos local ou URL de armazenamento de blobs.

  • Fluxo de arquivos local (recomendado): codifique sua imagem para base64. Você pode usar um site como codebeautify para fazer a codificação. Em seguida, salve a cadeia de caracteres codificada em um local temporário.

  • URL de Armazenamento de Blobs: carregue sua imagem em uma conta Armazenamento de Blobs do Azure. Siga o início rápido do armazenamento de blobs para saber como fazer isso. Em seguida, abra Gerenciador de Armazenamento do Azure e obtenha a URL para sua imagem. Salve-a em uma localização temporária.

    Em seguida, você precisa fornecer acesso ao recurso de Content Security para ler do recurso de Armazenamento do Azure. Habilite a identidade gerenciada atribuída pelo sistema para a instância de Segurança de Conteúdo de IA do Azure e atribua a função de Colaborador/Proprietário de Dados de Blobs de Armazenamento à identidade:

    Importante

    Somente o Colaborador de Dados de Blobs de Armazenamento ou o Proprietário de Dados de Blobs de Armazenamento são funções válidas para continuar.

    1. Habilite a identidade gerenciada para a instância de Segurança de Conteúdo de IA do Azure.

      Captura de tela de como habilitar a identidade gerenciada.

    2. Atribua a função de Colaborador/Proprietário de Dados do Blob de Armazenamento à identidade gerenciada. Todas as funções realçadas abaixo devem funcionar.

      Captura de tela da página “Adicionar atribuição de função” no portal do Azure.

      Captura de tela mostrando as funções atribuídas no portal do Azure.

      Captura de tela da função de identidade gerenciada.

Analisar conteúdo da imagem

Cole o comando abaixo em um editor de texto e faça as seguintes alterações.

  1. Substituir <endpoint> pela URL do ponto de extremidade do recurso.
  2. Substitua <your_subscription_key> pela sua chave.
  3. Preencha o "image" campo no corpo com um "content" campo ou um "blobUrl" campo. Por exemplo: {"image": {"content": "<base_64_string>"} ou {"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"
}'

Observação

Se você estiver usando uma URL de armazenamento de blobs, o corpo da solicitação deverá ter esta aparência:

{
  "image": {
    "blobUrl": "<your_storage_url>"
  }
}

Os campos abaixo precisam ser incluídos na URL:

Nome Necessário? Descrição Type
Versão da API Obrigatório esta é a versão da API a ser verificada. A versão atual é: api-version=2024-09-01 Exemplo: <endpoint>/contentsafety/image:analyze?api-version=2024-09-01 String

Os parâmetros no corpo da solicitação são definidos nesta tabela:

Nome Necessário? Descrição Tipo
content Obrigatório O conteúdo ou a URL do blob da imagem. Podem ser bytes codificados em base64 ou uma URL de blob. Se ambos forem fornecidos, a solicitação será recusada. O tamanho máximo permitido da imagem é de 7.200 x 7.200 pixels e o tamanho máximo do arquivo é de 4 MB. O tamanho mínimo da imagem é de 50 x 50 pixels. String
categories Opcional Supõe-se que seja uma matriz de nomes de categoria. Confira o Guia de categorias de danos para obter uma lista de nomes de categoria disponíveis. Se nenhuma categoria for especificada, todas as quatro categorias serão usadas. Usamos várias categorias para obter pontuações em uma única solicitação. String
outputType Opcional A API de moderação de imagem dá suporte apenas a "FourSeverityLevels". Severidades de saída em quatro níveis. O valor pode ser 0,2,4,6 String

abra uma janela do prompt de comando e execute o comando cURL.

Saída

Você verá os resultados de moderação de imagem exibidos como dados JSON no console. Por exemplo:

{
  "categoriesAnalysis": [
    {
      "category": "Hate",
      "severity": 2
    },
    {
      "category": "SelfHarm",
      "severity": 0
    },
    {
      "category": "Sexual",
      "severity": 0
    },
    {
      "category": "Violence",
      "severity": 0
    }
  ]
}

Os campos JSON na saída são definidos aqui:

Nome Descrição Tipo
categoriesAnalysis Cada classe de saída que a API prevê. A classificação pode ter vários rótulos. Por exemplo, quando uma imagem é carregada no modelo de moderação de imagem, ela pode ser classificada como conteúdo sexual e violência. Categorias de danos String
Gravidade O nível de gravidade do sinalizador em cada categoria de dano. Categorias de danos Inteiro

Documentação de referência | Código-fonte da biblioteca | Pacote (NuGet) | Exemplos

Pré-requisitos

  • Uma assinatura do Azure – crie uma gratuitamente
  • O IDE do Visual Studio com a carga de trabalho de desenvolvimento da área de trabalho do .NET habilitada. Ou, se você não planeja usar o IDE do Visual Studio, precisará da versão atual do .NET Core.
  • Runtime do .NET instalado.
  • Depois de ter uma assinatura do Azure, crie um recurso de Segurança do Conteúdo no portal do Azure para obter uma chave e um ponto de extremidade. Insira um nome exclusivo para o recurso, selecione a assinatura e selecione um grupo de recursos, uma região com suporte (confira a Disponibilidade de região) e um tipo de preço com suporte. Em seguida, selecione Criar.
    • O recurso demora alguns minutos para implantar. Após a conclusão, selecione ir para o recurso. No painel à esquerda, em Gerenciamento de Recursos, selecione Chave de Assinatura e Ponto de Extremidade. O ponto de extremidade e uma das chaves são usados para chamar as APIs.

Configurar o configurar

Criar um aplicativo em C#.

Abra o Visual Studio e, em Começar, selecione Criar um novo projeto. Defina os filtros de modelo para C#/Todas as Plataformas/Console. Selecione Aplicativo de Console (aplicativo de linha de comando que pode ser executado em .NET no Windows, Linux e macOS) e escolha Avançar. Atualize o nome do projeto para ContentSafetyQuickstart e escolha Avançar. Selecione .NET 6.0 ou superior e escolha Criar para criar o projeto.

Instalar o cliente SDK

Depois de criar um projeto, instale o SDK do cliente clicando com o botão direito do mouse na solução do projeto no Gerenciador de Soluções e selecionando Gerenciar Pacotes NuGet. No gerenciador de pacotes que é aberto, selecione Procurar e pesquise por Azure.AI.ContentSafety. Selecione Instalar.

Criar variáveis de ambiente

Neste exemplo, você gravará as credenciais em variáveis de ambiente no computador local que está executando o aplicativo.

Para definir a variável de ambiente da chave e do ponto de extremidade, abra uma janela do console e siga as instruções para o sistema operacional e o ambiente de desenvolvimento.

  • Para definir a variável de ambiente CONTENT_SAFETY_KEY, substitua YOUR_CONTENT_SAFETY_KEY por uma das chaves do recurso.
  • Para definir a variável de ambiente CONTENT_SAFETY_ENDPOINT, substitua YOUR_CONTENT_SAFETY_ENDPOINT pelo ponto de extremidade do recurso.

Importante

Se você usar uma chave de API, armazene-a com segurança em outro lugar, como no Azure Key Vault. Não inclua a chave da API diretamente no seu código e nunca a publique publicamente.

Para obter mais informações sobre a segurança dos serviços de IA, veja Autenticar solicitações para serviços de IA do Azure.

setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'

Depois de adicionar as variáveis de ambiente, talvez seja necessário reiniciar todos os programas em execução que lerão as variáveis de ambiente, incluindo a janela do console.

Analisar conteúdo da imagem

No diretório do projeto, abra o arquivo Program.cs que foi criado anteriormente. Cole o código a seguir.

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();
    }
  }
}

Crie uma pasta sample_data no diretório do projeto e adicione um arquivo image.png nele.

Crie e execute o aplicativo selecionando Iniciar Depuração no menu Depurar na parte superior da janela do IDE (ou pressione F5).

Documentação de referência | Código-fonte da biblioteca | Pacote (PyPI) | Amostras |

Pré-requisitos

  • Uma assinatura do Azure – crie uma gratuitamente
  • Depois de ter uma assinatura do Azure, crie um recurso de Segurança do Conteúdo no portal do Azure para obter uma chave e um ponto de extremidade. Insira um nome exclusivo para o recurso, selecione a assinatura e selecione um grupo de recursos, uma região com suporte (confira a Disponibilidade de região) e um tipo de preço com suporte. Em seguida, selecione Criar.
    • O recurso demora alguns minutos para implantar. Após a conclusão, selecione ir para o recurso. No painel à esquerda, em Gerenciamento de Recursos, selecione Chave de Assinatura e Ponto de Extremidade. O ponto de extremidade e uma das chaves são usados para chamar as APIs.
  • Python 3.8 ou posterior
    • A instalação do Python deve incluir o pip. Você pode executar pip --version na linha de comando para verificar se o pip está instalado. Instale a versão mais recente do Python para obter o pip.

Criar variáveis de ambiente

Neste exemplo, você gravará as credenciais em variáveis de ambiente no computador local que está executando o aplicativo.

Para definir a variável de ambiente da chave e do ponto de extremidade, abra uma janela do console e siga as instruções para o sistema operacional e o ambiente de desenvolvimento.

  • Para definir a variável de ambiente CONTENT_SAFETY_KEY, substitua YOUR_CONTENT_SAFETY_KEY por uma das chaves do recurso.
  • Para definir a variável de ambiente CONTENT_SAFETY_ENDPOINT, substitua YOUR_CONTENT_SAFETY_ENDPOINT pelo ponto de extremidade do recurso.

Importante

Se você usar uma chave de API, armazene-a com segurança em outro lugar, como no Azure Key Vault. Não inclua a chave da API diretamente no seu código e nunca a publique publicamente.

Para obter mais informações sobre a segurança dos serviços de IA, veja Autenticar solicitações para serviços de IA do Azure.

setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'

Depois de adicionar as variáveis de ambiente, talvez seja necessário reiniciar todos os programas em execução que lerão as variáveis de ambiente, incluindo a janela do console.

Analisar conteúdo da imagem

A seção a seguir percorre uma solicitação de exemplo com o SDK do Python.

  1. Abra um prompt de comando, navegue até a pasta do projeto e crie um novo arquivo chamado quickstart.py.

  2. Execute este comando para instalar a biblioteca cliente da Segurança de Conteúdo de IA do Azure:

    python -m pip install azure-ai-contentsafety
    
  3. Copie o seguinte código em 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()
    
  4. Substitua "sample_data" e "image.jpg" pelo caminho e nome do arquivo do local que você deseja usar.

  5. Execute o aplicativo com o comando python no arquivo do guia de início rápido.

    python quickstart.py
    

Documentação de referência | Código-fonte da biblioteca | Artefato (Maven) | Exemplos

Pré-requisitos

  • Uma assinatura do Azure – crie uma gratuitamente
  • A versão atual do JDK (Java Development Kit)
  • A ferramenta de build Gradle ou outro gerenciador de dependência.
  • Depois de ter uma assinatura do Azure, crie um recurso de Segurança do Conteúdo no portal do Azure para obter uma chave e um ponto de extremidade. Insira um nome exclusivo para o recurso, selecione a assinatura e selecione um grupo de recursos, uma região com suporte (confira a Disponibilidade de região) e um tipo de preço com suporte. Em seguida, selecione Criar.
    • O recurso demora alguns minutos para implantar. Após a conclusão, selecione ir para o recurso. No painel à esquerda, em Gerenciamento de Recursos, selecione Chave de Assinatura e Ponto de Extremidade. O ponto de extremidade e uma das chaves são usados para chamar as APIs.

Configurar o configurar

Criar um novo projeto Gradle.

Em uma janela de console (como cmd, PowerShell ou Bash), crie um novo diretório para seu aplicativo e navegue até ele.

mkdir myapp && cd myapp

Execute o comando gradle init em seu diretório de trabalho. Esse comando criará arquivos de build essenciais para o Gradle, incluindo o build.gradle.kts, que é usado no runtime para criar e configurar seu aplicativo.

gradle init --type basic

Quando solicitado a escolher uma DSL, escolha Kotlin.

Em seu diretório de trabalho, execute o comando a seguir para criar uma pasta de origem do projeto:

mkdir -p src/main/java

Navegue até a nova pasta e crie um arquivo chamado ContentSafetyQuickstart.java.

Crie também uma pasta src/resources na raiz do seu projeto e adicione a ela uma amostra de imagem.

Instalar o cliente SDK

Este início rápido usa o gerenciador de dependência do Gradle. Você pode encontrar a biblioteca de clientes e informações para outros gerenciadores de dependência no Repositório Central do Maven.

Localize o build.gradle.kts e abra-o com seu IDE ou editor de texto preferencial. Depois copie nessa configuração de build a seguir. Essa configuração define o projeto como um aplicativo Java, cujo ponto de entrada é a classe ContentSafetyQuickstart. Isso importa a biblioteca da Visão de IA do Azure.

plugins {
    java
    application
}
application { 
    mainClass.set("ContentSafetyQuickstart")
}
repositories {
    mavenCentral()
}
dependencies {
    implementation(group = "com.azure", name = "azure-ai-contentsafety", version = "1.0.0")
}

Criar variáveis de ambiente

Neste exemplo, você gravará as credenciais em variáveis de ambiente no computador local que está executando o aplicativo.

Para definir a variável de ambiente da chave e do ponto de extremidade, abra uma janela do console e siga as instruções para o sistema operacional e o ambiente de desenvolvimento.

  • Para definir a variável de ambiente CONTENT_SAFETY_KEY, substitua YOUR_CONTENT_SAFETY_KEY por uma das chaves do recurso.
  • Para definir a variável de ambiente CONTENT_SAFETY_ENDPOINT, substitua YOUR_CONTENT_SAFETY_ENDPOINT pelo ponto de extremidade do recurso.

Importante

Se você usar uma chave de API, armazene-a com segurança em outro lugar, como no Azure Key Vault. Não inclua a chave da API diretamente no seu código e nunca a publique publicamente.

Para obter mais informações sobre a segurança dos serviços de IA, veja Autenticar solicitações para serviços de IA do Azure.

setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'

Depois de adicionar as variáveis de ambiente, talvez seja necessário reiniciar todos os programas em execução que lerão as variáveis de ambiente, incluindo a janela do console.

Analisar conteúdo da imagem

Abra ContentSafetyQuickstart.java no editor ou IDE de sua preferência e cole o código a seguir. Substitua a variável source pelo caminho para a sua amostra de imagem.

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());
        }
    }
}

Navegue de volta para a pasta raiz do projeto e compile o aplicativo com:

gradle build

Em seguida, execute-o com o comando gradle run:

gradle run

Saída

Hate severity: 0
SelfHarm severity: 0
Sexual severity: 0
Violence severity: 0

Documentação de referência | Código-fonte da biblioteca | Pacote (npm) | Exemplos |

Pré-requisitos

  • Uma assinatura do Azure – crie uma gratuitamente
  • A versão atual do Node.js
  • Depois de ter uma assinatura do Azure, crie um recurso de Segurança do Conteúdo no portal do Azure para obter uma chave e um ponto de extremidade. Insira um nome exclusivo para o recurso, selecione a assinatura e selecione um grupo de recursos, uma região com suporte (confira a Disponibilidade de região) e um tipo de preço com suporte. Em seguida, selecione Criar.
    • O recurso demora alguns minutos para implantar. Após a conclusão, selecione ir para o recurso. No painel à esquerda, em Gerenciamento de Recursos, selecione Chave de Assinatura e Ponto de Extremidade. O ponto de extremidade e uma das chaves são usados para chamar as APIs.

Configurar o configurar

Crie um aplicativo Node.js. Em uma janela de console (como cmd, PowerShell ou Bash), crie um novo diretório para seu aplicativo e navegue até ele.

mkdir myapp && cd myapp

Execute o comando npm init para criar um aplicativo do Node com um arquivo package.json.

npm init

Crie também uma pasta /resources na raiz do seu projeto e adicione a ela uma amostra de imagem.

Instalar o cliente SDK

Instale o pacote npm do @azure-rest/ai-content-safety:

npm install @azure-rest/ai-content-safety

Além disso, instale o módulo dotenv para usar variáveis de ambiente:

npm install dotenv

O arquivo package.json do seu aplicativo será atualizado com as dependências.

Criar variáveis de ambiente

Neste exemplo, você gravará as credenciais em variáveis de ambiente no computador local que está executando o aplicativo.

Para definir a variável de ambiente da chave e do ponto de extremidade, abra uma janela do console e siga as instruções para o sistema operacional e o ambiente de desenvolvimento.

  • Para definir a variável de ambiente CONTENT_SAFETY_KEY, substitua YOUR_CONTENT_SAFETY_KEY por uma das chaves do recurso.
  • Para definir a variável de ambiente CONTENT_SAFETY_ENDPOINT, substitua YOUR_CONTENT_SAFETY_ENDPOINT pelo ponto de extremidade do recurso.

Importante

Se você usar uma chave de API, armazene-a com segurança em outro lugar, como no Azure Key Vault. Não inclua a chave da API diretamente no seu código e nunca a publique publicamente.

Para obter mais informações sobre a segurança dos serviços de IA, veja Autenticar solicitações para serviços de IA do Azure.

setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'

Depois de adicionar as variáveis de ambiente, talvez seja necessário reiniciar todos os programas em execução que lerão as variáveis de ambiente, incluindo a janela do console.

Analisar conteúdo da imagem

Crie um novo arquivo no seu diretório, index.js. Abra-o no editor ou IDE de sua preferência e cole o código a seguir. Substitua a variável image_path pelo caminho para a sua amostra de imagem.

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);
});

Execute o aplicativo com o comando node no seu arquivo de início rápido.

node index.js

Saída

Hate severity:  0
SelfHarm severity:  0
Sexual severity:  0
Violence severity:  0

Limpar os recursos

Se quiser limpar e remover uma assinatura dos Serviços de IA do Azure, você poderá excluir o recurso ou grupo de recursos. Excluir o grupo de recursos também exclui todos os recursos associados a ele.