Compartilhar via


Início rápido: usar a biblioteca de clientes do Detector de Anomalias Univariadas

Importante

A partir de 20 de setembro de 2023, você não poderá criar novos recursos do Detector de Anomalias. O serviço Detector de Anomalias está sendo desativado em 1º de outubro de 2026.

Documentação de referência da biblioteca |Código-fonte da biblioteca | Pacote (NuGet) |Encontre o código de amostra no GitHub

Introdução à biblioteca de clientes Detector de Anomalias para C#. Siga estas etapas para instalar o pacote e começar a usar os algoritmos fornecidos pelo serviço. O serviço Detector de Anomalias permite localizar anormalidades em seus dados de série temporal usando automaticamente os modelos de melhor ajuste, independentemente do setor, cenário ou volume de dados.

Use a biblioteca de cliente do Detector de Anomalias para C# para:

  • Detectar anomalias em todo o seu conjunto de dados de série temporal, como uma solicitação em lote
  • Detectar o status de anomalias do ponto de dados mais recente em sua série temporal
  • Detectar pontos de alteração de tendência no conjunto de dados.

Pré-requisitos

  • Uma assinatura do Azure – crie uma gratuitamente
  • Versão atual do .NET Core
  • Depois de obter sua assinatura do Azure, crie um recurso Detector de Anomalias no portal do Azure para obter a chave e o ponto de extremidade. Aguarde até que ele seja implantado e selecione o botão Ir para o recurso. Use o tipo de preço gratuito (F0) para experimentar o serviço e atualizar mais tarde para um nível pago para produção.

Configuração

Criar um aplicativo .NET Core

Em uma janela de console (como cmd, PowerShell ou Bash), use o comando dotnet new para criar um novo aplicativo do console com o nome anomaly-detector-quickstart. Este comando cria um projeto "Olá, Mundo" simples com um único arquivo de origem C#: Program.cs.

dotnet new console -n anomaly-detector-quickstart

Altere o diretório para a pasta do aplicativo recém-criado. É possível criar o aplicativo com:

dotnet build

A saída de compilação não deve conter nenhum aviso ou erro.

...
Build succeeded.
 0 Warning(s)
 0 Error(s)
...

Instalar a biblioteca de clientes

Dentro do diretório do aplicativo, instale a biblioteca de clientes do Detector de Anomalias para .NET com o seguinte comando:

dotnet add package Azure.AI.AnomalyDetector --prerelease

Recuperar chave e ponto de extremidade

Para fazer uma chamada com sucesso no serviço Detector de Anomalias, você precisará dos seguintes valores:

Nome da variável Valor
ANOMALY_DETECTOR_ENDPOINT Esse valor pode ser encontrado na seção Chaves & Ponto de Extremidade ao examinar o recurso no portal do Azure. Exemplo de ponto de extremidade: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/
ANOMALY_DETECTOR_API_KEY O valor da chave de API pode ser encontrado na seção Chaves e Ponto de extremidade ao examinar seu recurso no portal do Azure. Você pode usar KEY1 ou KEY2.
DATA_PATH Este início rápido usa o arquivo request-data.csv que pode ser baixado de nossos dados de amostra do GitHub. Exemplo de caminho: c:\\test\\request-data.csv

Acesse o seu recurso no portal do Azure. O Ponto de extremidade e as Chaves podem ser encontrados na seção Gerenciamento de recursos. Copie o ponto de extremidade e as chave de acesso, pois você precisará de ambos para autenticar suas chamadas à API. Você pode usar KEY1 ou KEY2. Ter sempre duas chaves permite girar e regenerar chaves com segurança, sem causar interrupção de serviço.

Criar variáveis de ambiente

Crie e atribua variáveis de ambiente persistentes para sua chave e ponto de extremidade.

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, confira Autenticar solicitações para serviços de IA do Azure.

setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"

Baixar dados de exemplo

Este início rápido usa o arquivo request-data.csv que pode ser baixado de nossos dados de amostra do GitHub

Você também pode baixar os dados de amostra executando:

curl "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/main/sdk/anomalydetector/azure-ai-anomalydetector/samples/sample_data/request-data.csv" --output request-data.csv

Detectar anomalias

No diretório do projeto, abra o arquivo program.cs e substitua pelo seguinte código:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using Azure;
using Azure.AI.AnomalyDetector;
using static System.Environment;

namespace anomaly_detector_quickstart
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string endpoint = GetEnvironmentVariable("ANOMALY_DETECTOR_ENDPOINT");
            string apiKey = GetEnvironmentVariable("ANOMALY_DETECTOR_API_KEY");

            var endpointUri = new Uri(endpoint);
            var credential = new AzureKeyCredential(apiKey);

            //create client
            AnomalyDetectorClient client = new AnomalyDetectorClient(endpointUri, credential);

            //read data
            //example: string datapath = @"c:\test\request-data.csv";
            string datapath = @"REPLACE_WITH_YOUR_LOCAL_SAMPLE_REQUEST_DATA_PATH";

            List<TimeSeriesPoint> list = File.ReadAllLines(datapath, Encoding.UTF8)
                .Where(e => e.Trim().Length != 0)
                .Select(e => e.Split(','))
                .Where(e => e.Length == 2)
                .Select(e => new TimeSeriesPoint(float.Parse(e[1])) { Timestamp = DateTime.Parse(e[0]) }).ToList();

              //create request
            UnivariateDetectionOptions request = new UnivariateDetectionOptions(list)
            {
                Granularity = TimeGranularity.Daily
            };

            UnivariateEntireDetectionResult result = client.DetectUnivariateEntireSeries(request);

            bool hasAnomaly = false;
            for (int i = 0; i < request.Series.Count; ++i)
            {
                if (result.IsAnomaly[i])
                {
                    Console.WriteLine("Anomaly detected at index: {0}.", i);
                    hasAnomaly = true;
                }
            }
            if (!hasAnomaly)
            {
                Console.WriteLine("No anomalies detected in the series.");
            }
        }
    }
}


Execute o aplicativo com o seguinte comando:

dotnet run program.cs

Saída

Anomaly detected at index:      3
Anomaly detected at index:      18
Anomaly detected at index:      21
Anomaly detected at index:      22
Anomaly detected at index:      23
Anomaly detected at index:      24
Anomaly detected at index:      25
Anomaly detected at index:      28
Anomaly detected at index:      29
Anomaly detected at index:      30
Anomaly detected at index:      31
Anomaly detected at index:      32
Anomaly detected at index:      35
Anomaly detected at index:      44

Detalhes do código

Compreensão dos resultados

No código acima, os dados de amostra são lidos e convertidos em um objeto DetectRequest. Chamamos File.ReadAllLines com o caminho do arquivo e criamos uma lista de objetos TimeSeriesPoint e removemos quaisquer novos caracteres de linha. Extraia os valores e separe o carimbo de data/hora do seu valor numérico e adicione-os a um novo objeto TimeSeriesPoint. O objeto DetectRequest consiste em uma série de pontos de dados, com TimeGranularity.Daily para a granularidade (ou periodicidade) dos pontos de dados. Em seguida, chamamos o método DetectEntireSeriesAsync do cliente com o objeto DetectRequest e aguardamos a resposta como um objeto EntireDetectResponse. Em seguida, iteramos os valores IsAnomaly da resposta e imprimimos qualquer um que seja verdadeiro. Esses valores correspondem ao índice de pontos de dados anômalos, caso algum seja encontrado.

Limpar os recursos

Se você quiser limpar e remover um recurso do Detector de Anomalias, poderá excluir o recurso ou o grupo de recursos. Excluir o grupo de recursos também exclui todos os recursos associados a ele. Você também pode considerar excluir as variáveis de ambiente que você criou se não pretende mais usá-las.

Documentação de referência da biblioteca |Código-fonte da biblioteca | Pacote (npm) |Encontre o código de amostra no GitHub

Introdução à biblioteca de clientes do Detector de Anomalias para JavaScript. Siga estas etapas para instalar o pacote e comece a usar os algoritmos fornecidos pelo serviço. O serviço Detector de Anomalias permite que você encontre anormalidades em seus dados de séries temporais usando automaticamente o modelo mais adequado, independentemente do setor, cenário ou volume de dados.

Use a biblioteca de cliente do Detector de Anomalias para JavaScript para:

  • Detectar anomalias em todo o seu conjunto de dados de série temporal, como uma solicitação em lote
  • Detectar o status de anomalias do ponto de dados mais recente em sua série temporal
  • Detectar pontos de alteração de tendência no conjunto de dados.

Pré-requisitos

  • Uma assinatura do Azure – crie uma gratuitamente
  • A versão atual do Node.js
  • Depois de obter sua assinatura do Azure, crie um recurso Detector de Anomalias no portal do Azure para obter a chave e o ponto de extremidade. Aguarde até que ele seja implantado e selecione o botão Ir para o recurso. Use o tipo de preço gratuito (F0) para experimentar o serviço e atualizar mais tarde para um nível pago para produção.

Configuração

Criar um novo aplicativo do 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

Crie um arquivo package.json com os conteúdos a seguir:

{
  "dependencies": {
    "@azure/ai-anomaly-detector": "next",
    "@azure-rest/ai-anomaly-detector": "next",
    "@azure/core-auth": "^1.3.0",
    "csv-parse": "^5.3.0"
  }
}

Instalar a biblioteca de clientes

Instale os pacotes npm necessários executando o seguinte no mesmo diretório do arquivo package.json:

npm install

Recuperar chave e ponto de extremidade

Para fazer uma chamada com sucesso no serviço Detector de Anomalias, você precisará dos seguintes valores:

Nome da variável Valor
ANOMALY_DETECTOR_ENDPOINT Esse valor pode ser encontrado na seção Chaves & Ponto de Extremidade ao examinar o recurso no portal do Azure. Exemplo de ponto de extremidade: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/
ANOMALY_DETECTOR_API_KEY O valor da chave de API pode ser encontrado na seção Chaves e Ponto de extremidade ao examinar seu recurso no portal do Azure. Você pode usar KEY1 ou KEY2.
datapath Este início rápido usa o arquivo request-data.csv que pode ser baixado de nossos dados de amostra do GitHub.

Acesse o seu recurso no portal do Azure. O Ponto de extremidade e as Chaves podem ser encontrados na seção Gerenciamento de recursos. Copie o ponto de extremidade e as chave de acesso, pois você precisará de ambos para autenticar suas chamadas à API. Você pode usar KEY1 ou KEY2. Ter sempre duas chaves permite girar e regenerar chaves com segurança, sem causar interrupção de serviço.

Criar variáveis de ambiente

Crie e atribua variáveis de ambiente persistentes para sua chave e ponto de extremidade.

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, confira Autenticar solicitações para serviços de IA do Azure.

setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"

Baixar dados de exemplo

Este início rápido usa o arquivo request-data.csv que pode ser baixado de nossos dados de amostra do GitHub

Você também pode baixar os dados de amostra executando:

curl "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/main/sdk/anomalydetector/azure-ai-anomalydetector/samples/sample_data/request-data.csv" --output request-data.csv

Detectar anomalias

Crie um arquivo chamado index.js e substitua pelo seguinte código:

const AnomalyDetector = require("@azure-rest/ai-anomaly-detector").default,
  { isUnexpected } = require("@azure-rest/ai-anomaly-detector");
const { AzureKeyCredential } = require("@azure/core-auth");

const { parse } = require("csv-parse/sync");
const fs = require("fs");

// Retrieve the endpoint and key from the environment variables.
const apiKey = process.env["ANOMALY_DETECTOR_API_KEY"] || "";
const endpoint = process.env["ANOMALY_DETECTOR_ENDPOINT"] || "";
const timeSeriesDataPath = "./request-data.csv";

function read_series_from_file(path) {
  let result = Array();
  let input = fs.readFileSync(path).toString();
  let parsed = parse(input, { skip_empty_lines: true });
  parsed.forEach(function (e) {
    result.push({ timestamp: new Date(e[0]), value: Number(e[1]) });
  });
  return result;
}

async function main() {
  // create client
  const credential = new AzureKeyCredential(apiKey);
  const client = AnomalyDetector(endpoint, credential);

  // construct request
  const options = {
    body: {
      granularity: "daily",
      imputeMode: "auto",
      maxAnomalyRatio: 0.25,
      sensitivity: 95,
      series: read_series_from_file(timeSeriesDataPath),
    },
    headers: { "Content-Type": "application/json" },
  };

  // get last detect result
  const result = await client.path("/timeseries/entire/detect").post(options);
  if (isUnexpected(result)) {
    throw result;
  }

  if (result.body.isAnomaly) {
    result.body.isAnomaly.forEach(function (anomaly, index) {
      if (anomaly === true) {
        console.log(index);
      }
    });
  } else {
    console.log("There is no anomaly detected from the series.");
  }

}

main().catch((err) => {
  console.error("The sample encountered an error:", err);
});

module.exports = { main };

Executar o aplicativo

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

node index.js

Saída

Anomalies were detected from the series at index:
3
18
21
22
23
24
25
28
29
30
31
32
35
44

Compreensão dos resultados

No código acima, chamamos a API do Detector de Anomalias para detectar anomalias em toda a série temporal como um lote com o método detectEntireSeries() do cliente. Armazenamos o objeto AnomalyDetectorDetectEntireSeriesResponse retornado. Em seguida, iteramos a lista isAnomaly da resposta e imprimimos o índice de quaisquer valores true. Esses valores correspondem ao índice de pontos de dados anômalos, caso algum seja encontrado.

Limpar os recursos

Se você quiser limpar e remover um recurso do Detector de Anomalias, poderá excluir o recurso ou o grupo de recursos. Excluir o grupo de recursos também exclui todos os recursos associados a ele. Você também pode considerar excluir as variáveis de ambiente que você criou se não pretende mais usá-las.

Documentação de referência da biblioteca |Código-fonte da biblioteca | Pacote (PyPi) |Localize o código de exemplo no GitHub

Introdução à biblioteca de clientes do Detector de Anomalias para Python. Siga estas etapas para instalar o pacote e começar a usar os algoritmos fornecidos pelo serviço. O serviço Detector de Anomalias permite localizar anormalidades em seus dados de série temporal usando automaticamente os modelos de melhor ajuste, independentemente do setor, cenário ou volume de dados.

Use a biblioteca de cliente do Detector de Anomalias para Python para:

  • Detectar anomalias em todo o seu conjunto de dados de série temporal, como uma solicitação em lote
  • Detectar o status de anomalias do ponto de dados mais recente em sua série temporal
  • Detectar pontos de alteração de tendência no conjunto de dados.

Pré-requisitos

Configuração

Instalar a biblioteca de clientes. É possível instalar a biblioteca de clientes com:

pip install --upgrade azure.ai.anomalydetector

Recuperar chave e ponto de extremidade

Para fazer uma chamada com sucesso no serviço Detector de Anomalias, você precisará dos seguintes valores:

Nome da variável Valor
ANOMALY_DETECTOR_ENDPOINT Esse valor pode ser encontrado na seção Chaves & Ponto de Extremidade ao examinar o recurso no portal do Azure. Exemplo de ponto de extremidade: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/
ANOMALY_DETECTOR_API_KEY O valor da chave de API pode ser encontrado na seção Chaves e Ponto de extremidade ao examinar seu recurso no portal do Azure. Você pode usar KEY1 ou KEY2.
DATA_PATH Este início rápido usa o arquivo request-data.csv que pode ser baixado de nossos dados de amostra do GitHub. Exemplo de caminho: c:\\test\\request-data.csv

Acesse o seu recurso no portal do Azure. O Ponto de extremidade e as Chaves podem ser encontrados na seção Gerenciamento de recursos. Copie o ponto de extremidade e as chave de acesso, pois você precisará de ambos para autenticar suas chamadas à API. Você pode usar KEY1 ou KEY2. Ter sempre duas chaves permite girar e regenerar chaves com segurança, sem causar interrupção de serviço.

Criar variáveis de ambiente

Crie e atribua variáveis de ambiente persistentes para sua chave e ponto de extremidade.

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, confira Autenticar solicitações para serviços de IA do Azure.

setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"

Baixar dados de exemplo

Este início rápido usa o arquivo request-data.csv que pode ser baixado de nossos dados de amostra do GitHub

Você também pode baixar os dados de amostra executando:

curl "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/main/sdk/anomalydetector/azure-ai-anomalydetector/samples/sample_data/request-data.csv" --output request-data.csv

Detectar anomalias

  1. Criar um arquivo Python chamado quickstart.py. Depois, abra-o no editor ou IDE de sua preferência.

  2. Substitua o conteúdo do arquivo quickstart.py pelo código a seguir. Modifique o código para adicionar os nomes das variáveis de ambiente para sua chave, ponto de extremidade e caminho de dados da série temporal:

    from azure.ai.anomalydetector import AnomalyDetectorClient
    from azure.ai.anomalydetector.models import *
    from azure.core.credentials import AzureKeyCredential
    import pandas as pd
    import os
    
    API_KEY = os.environ['ANOMALY_DETECTOR_API_KEY']
    ENDPOINT = os.environ['ANOMALY_DETECTOR_ENDPOINT']
    DATA_PATH = "REPLACE_WITH_YOUR_LOCAL_SAMPLE_REQUEST_DATA_PATH" #example: c:\\test\\request-data.csv
    
    client = AnomalyDetectorClient(ENDPOINT, AzureKeyCredential(API_KEY))
    
    series = []
    data_file = pd.read_csv(DATA_PATH, header=None, encoding='utf-8', date_parser=[0])
    for index, row in data_file.iterrows():
        series.append(TimeSeriesPoint(timestamp=row[0], value=row[1]))
    
    request = UnivariateDetectionOptions(series=series, granularity=TimeGranularity.DAILY)
    
    change_point_response = client.detect_univariate_change_point(request)
    anomaly_response = client.detect_univariate_entire_series(request)
    
    for i in range(len(data_file.values)):
        if (change_point_response.is_change_point[i]):
            print("Change point detected at index: "+ str(i))
        elif (anomaly_response.is_anomaly[i]):
            print("Anomaly detected at index:      "+ str(i))
    

    Importante

    Para produção, use uma maneira segura de armazenar e acessar suas credenciais, como o Azure Key Vault. Para obter mais informações sobre segurança de credenciais, consulte o artigo segurança dos serviços de IA do Azure.

  3. Executar o aplicativo com o comando python no arquivo de início rápido

    python quickstart.py
    

Saída

Anomaly detected at index:      3
Anomaly detected at index:      18
Change point detected at index: 20
Anomaly detected at index:      21
Anomaly detected at index:      22
Anomaly detected at index:      23
Anomaly detected at index:      24
Anomaly detected at index:      25
Change point detected at index: 27
Anomaly detected at index:      28
Anomaly detected at index:      29
Anomaly detected at index:      30
Anomaly detected at index:      31
Anomaly detected at index:      32
Anomaly detected at index:      35
Anomaly detected at index:      44

Compreensão dos resultados

Em nosso código acima, chamamos a API Detector de Anomalias duas vezes. A primeira chamada verifica os pontos de alteração de tendência em nossa série de dados de exemplo com o método detect_change_point. Essa chamada retorna um ChangePointDetectResponse que armazenamos em uma variável que chamamos de change_point_request. Em seguida, iteramos a lista is_change_point da resposta e imprimimos o índice de quaisquer valores com um booleano de true.

A segunda chamada verifica a série de dados de amostra inteira em busca de anomalias usando o método detect_entire_series. Essa chamada retorna um EntireDetectResponse que armazenamos em uma variável que chamamos de anomaly_response. Nós iteramos pela lista is_anomaly da resposta e imprimimos o índice de quaisquer valores com um booleano de true. Como alternativa, poderíamos ter usado o método detect_last_point, que é mais apropriado para detectar anomalias em dados em tempo real. Para saber mais, consulte o guia de práticas recomendadas.

Visualizar os resultados

Para visualizar as anomalias e os pontos de mudança em relação à série de dados de amostra, usaremos a popular biblioteca de código aberto matplotlib.

  1. Instalar a biblioteca.

    pip install matplotlib
    
  2. Modifique seu arquivo quickstart.py com o seguinte código:

    from azure.ai.anomalydetector import AnomalyDetectorClient
    from azure.ai.anomalydetector.models import *
    from azure.core.credentials import AzureKeyCredential
    import pandas as pd
    import matplotlib.pyplot as plt
    import matplotlib.dates as mdates
    import os
    
    API_KEY = os.environ['ANOMALY_DETECTOR_API_KEY']
    ENDPOINT = os.environ['ANOMALY_DETECTOR_ENDPOINT']
    DATA_PATH = "REPLACE_WITH_YOUR_LOCAL_SAMPLE_REQUEST_DATA_PATH" #example: c:\\test\\request-data.csv
    
    client = AnomalyDetectorClient(ENDPOINT, AzureKeyCredential(API_KEY))
    
    series = []
    data_file = pd.read_csv(DATA_PATH, header=None, encoding='utf-8', date_parser=[0])
    for index, row in data_file.iterrows():
        series.append(TimeSeriesPoint(timestamp=row[0], value=row[1]))
    
    request = UnivariateDetectionOptions(series=series, granularity=TimeGranularity.DAILY)
    
    change_point_response = client.detect_univariate_change_point(request)
    anomaly_response = client.detect_univariate_entire_series(request)
    
    for i in range(len(data_file.values)):
        temp_date_to_num = mdates.date2num(data_file.values[i])
        date= temp_date_to_num[0]
        if (change_point_response.is_change_point[i]):
            plt.plot(date,data_file.values[i][1], 's', color ='blue')
            print("Change point detected at index: "+ str(i))
        elif (anomaly_response.is_anomaly[i]):
            plt.plot(date,data_file.values[i][1], '^', color="red")
            print("Anomaly detected at index:      "+ str(i))
        else:
            plt.plot(date,data_file.values[i][1], 'o', color ='green')
    plt.show()
    

    Importante

    Para produção, use uma maneira segura de armazenar e acessar suas credenciais, como o Azure Key Vault. Para obter mais informações sobre segurança de credenciais, confira o artigo segurança dos serviços de IA do Azure.

  3. Executar o aplicativo com o comando python no arquivo de início rápido

    python quickstart.py
    

Saída

Neste exemplo de código, adicionamos a biblioteca matplotlib para nos permitir visualizar e distinguir facilmente pontos de dados normais de pontos de alteração e anomalias. Os pontos de mudança são representados por quadrados azuis, as anomalias são triângulos vermelhos e os pontos de dados normais são círculos verdes. As datas são convertidas em números usando o método date2num de matplotlib para fornecer valores amigáveis do gráfico para o eixo y dos gráficos.

Captura de tela de resultados com índices de anomalias e pontos de mudança em um gráfico de dispersão. Diferentes formas e cores são usadas para diferentes tipos de dados.

Limpar os recursos

Se você quiser limpar e remover um recurso do Detector de Anomalias, poderá excluir o recurso ou o grupo de recursos. Excluir o grupo de recursos também exclui todos os recursos associados a ele. Você também pode considerar excluir as variáveis de ambiente que você criou se não pretende mais usá-las.

Neste início rápido, você aprende a detectar anomalias em um lote de dados de série temporal usando o serviço de Detector de Anomalias e o cURL.

Para obter uma visão de alto nível dos conceitos do Detector de Anomalias, confira o artigo de visão geral.

Pré-requisitos

  • Uma assinatura do Azure – crie uma gratuitamente
  • Depois de obter sua assinatura do Azure, crie um recurso Detector de Anomalias no portal do Azure para obter a chave e o ponto de extremidade. Aguarde até que ele seja implantado e selecione o botão Ir para o recurso. Use o tipo de preço gratuito (F0) para experimentar o serviço e atualizar mais tarde para um nível pago para produção.
  • Um arquivo JSON válido de dados de série temporal para testar se há anomalias. Se você não tiver seu próprio arquivo, poderá criar um arquivo sample.json a partir da amostra do corpo da solicitação

Recuperar chave e ponto de extremidade

Para fazer uma chamada com sucesso no serviço Detector de Anomalias, você precisará dos seguintes valores:

Nome da variável Valor
ANOMALY_DETECTOR_ENDPOINT Esse valor pode ser encontrado na seção Chaves & Ponto de Extremidade ao examinar o recurso no portal do Azure. Exemplo de ponto de extremidade: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/
ANOMALY_DETECTOR_API_KEY O valor da chave de API pode ser encontrado na seção Chaves e Ponto de extremidade ao examinar seu recurso no portal do Azure. Você pode usar KEY1 ou KEY2.

Acesse o seu recurso no portal do Azure. O Ponto de extremidade e as Chaves podem ser encontrados na seção Gerenciamento de recursos. Copie o ponto de extremidade e as chave de acesso, pois você precisará de ambos para autenticar suas chamadas à API. Você pode usar KEY1 ou KEY2. Ter sempre duas chaves permite girar e regenerar chaves com segurança, sem causar interrupção de serviço.

Criar variáveis de ambiente

Crie e atribua variáveis de ambiente persistentes para sua chave e ponto de extremidade.

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, confira Autenticar solicitações para serviços de IA do Azure.

setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Detectar anomalias

No prompt de comando, execute o comando a seguir. Você precisará inserir os seguintes valores no comando.

  • A chave de assinatura do serviço de Detector de Anomalias.
  • O endereço do ponto de extremidade do Detector de Anomalias.
  • Um arquivo JSON válido de dados de série temporal para testar se há anomalias. Se você não tiver um arquivo próprio, poderá criar um arquivo sample.json com base no Exemplo de corpo da solicitação.
curl -v POST "%ANOMALY_DETECTOR_ENDPOINT%/anomalydetector/v1.0/timeseries/entire/detect"
-H "Content-Type: application/json"
-H "Ocp-Apim-Subscription-Key: %ANOMALY_DETECTOR_API_KEY%"
-d "@path_to_sample_file.json" 

Um exemplo do comando completo como uma única linha:

curl -v POST "%ANOMALY_DETECTOR_ENDPOINT%/anomalydetector/v1.0/timeseries/entire/detect" -H "Content-Type: application/json" -H "Ocp-Apim-Subscription-Key: %ANOMALY_DETECTOR_API_KEY%" -d "@c:\test\rest.json"

Como alternativa, se você estiver executando o comando cURL de um shell bash, seu comando será um pouco diferente:

curl -v POST "$ANOMALY_DETECTOR_ENDPOINT/anomalydetector/v1.0/timeseries/entire/detect" -H "Content-Type: application/json" -H "Ocp-Apim-Subscription-Key: $ANOMALY_DETECTOR_API_KEY" -d "@c:\test\rest.json"

Se você tiver usado os dados de exemplo dos pré-requisitos, deverá receber uma resposta 200 com estes resultados:

{
  "expectedValues": [
    827.7940908243968,
    798.9133774671927,
    888.6058431807189,
    900.5606407986661,
    962.8389426378304,
    933.2591606306954,
    891.0784104799666,
    856.1781601363697,
    809.8987227908941,
    807.375129007505,
    764.3196682448518,
    803.933498594564,
    823.5900620883058,
    794.0905641334288,
    883.164245249282,
    894.8419000690953,
    956.8430591101258,
    927.6285055190114,
    885.812983784303,
    851.6424797402517,
    806.0927886943216,
    804.6826815312029,
    762.74070738882,
    804.0251702513732,
    825.3523662579559,
    798.0404188724976,
    889.3016505577698,
    902.4226124345937,
    965.867078532635,
    937.3200495736695,
    896.1720524711102,
    862.0087368413656,
    816.4662342097423,
    814.4297745524709,
    771.8614479159354,
    811.859271346729,
    831.8998279215521,
    802.947544797165,
    892.5684407435083,
    904.5488214533809,
    966.8527063844707,
    937.3168391003043,
    895.180003672544,
    860.3649596356635,
    814.1707285969043,
    811.9054862686213,
    769.1083769610742,
    809.2328084659704
  ],
  "upperMargins": [
    41.389704541219835,
    39.94566887335964,
    44.43029215903594,
    45.02803203993331,
    48.14194713189152,
    46.66295803153477,
    44.55392052399833,
    42.808908006818484,
    40.494936139544706,
    40.36875645037525,
    38.215983412242586,
    40.196674929728196,
    41.17950310441529,
    39.70452820667144,
    44.1582122624641,
    44.74209500345477,
    47.84215295550629,
    46.38142527595057,
    44.290649189215145,
    42.58212398701258,
    40.30463943471608,
    40.234134076560146,
    38.137035369441,
    40.201258512568664,
    41.267618312897795,
    39.90202094362488,
    44.46508252788849,
    45.121130621729684,
    48.29335392663175,
    46.86600247868348,
    44.80860262355551,
    43.100436842068284,
    40.82331171048711,
    40.721488727623544,
    38.593072395796774,
    40.59296356733645,
    41.5949913960776,
    40.14737723985825,
    44.62842203717541,
    45.227441072669045,
    48.34263531922354,
    46.86584195501521,
    44.759000183627194,
    43.01824798178317,
    40.70853642984521,
    40.59527431343106,
    38.45541884805371,
    40.46164042329852
  ],
  "lowerMargins": [
    41.389704541219835,
    39.94566887335964,
    44.43029215903594,
    45.02803203993331,
    48.14194713189152,
    46.66295803153477,
    44.55392052399833,
    42.808908006818484,
    40.494936139544706,
    40.36875645037525,
    38.215983412242586,
    40.196674929728196,
    41.17950310441529,
    39.70452820667144,
    44.1582122624641,
    44.74209500345477,
    47.84215295550629,
    46.38142527595057,
    44.290649189215145,
    42.58212398701258,
    40.30463943471608,
    40.234134076560146,
    38.137035369441,
    40.201258512568664,
    41.267618312897795,
    39.90202094362488,
    44.46508252788849,
    45.121130621729684,
    48.29335392663175,
    46.86600247868348,
    44.80860262355551,
    43.100436842068284,
    40.82331171048711,
    40.721488727623544,
    38.593072395796774,
    40.59296356733645,
    41.5949913960776,
    40.14737723985825,
    44.62842203717541,
    45.227441072669045,
    48.34263531922354,
    46.86584195501521,
    44.759000183627194,
    43.01824798178317,
    40.70853642984521,
    40.59527431343106,
    38.45541884805371,
    40.46164042329852
  ],
  "isAnomaly": [
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    true,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false
  ],
  "isPositiveAnomaly": [
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    true,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false
  ],
  "isNegativeAnomaly": [
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false
  ],
  "period": 12
}

Para obter mais informações, confira Referência REST da Detecção de Anomalias.

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 ao grupo de recursos.

Próximas etapas

Conceitos:

Tutoriais: