Biblioteca de clientes do Azure Detector de Anomalias para JavaScript – versão 3.0.0-beta.5

Azure AnomalyDetector A API permite que você monitore e detecte anormalidades em seus dados de série temporal com o aprendizado de máquina.

Links principais:

Principais conceitos

O AnomalyDetectorClient fornece métodos para detecção de anomalias:

  • detectEntireSeries – Detecta anomalias em um conjunto de dados inteiro
  • detectLastPoint – Detecta anomalias no ponto de dados mais recente
  • detectChangePoint – Avalia a pontuação de ponto de alteração de cada ponto de série

Introdução

Ambientes com suporte no momento

Confira nossa política de suporte para mais detalhes.

Pré-requisitos

Se você usar a CLI do Azure, substitua <your-resource-group-name> e <your-resource-name> por seus próprios nomes exclusivos:

az cognitiveservices account create --kind AnomalyDetector --resource-group <your-resource-group-name> --name <your-resource-name>

Instalar o pacote @azure/ai-anomaly-detector

Instale a biblioteca de clientes do Azure Detector de Anomalias para JavaScript com npm:

npm install @azure/ai-anomaly-detector

Criar e autenticar um AnomalyDetectorClient

Para criar um objeto cliente para acessar a API Detector de Anomalias, você precisará do endpoint do recurso Detector de Anomalias e de um credential. O cliente Detector de Anomalias pode usar credenciais do Azure Active Directory ou uma credencial de chave de API para autenticar.

Você pode encontrar o ponto de extremidade do recurso Detector de Anomalias no Portal do Azure clicando Keys and Endpoint em Gerenciamento de Recursos no menu ou usando o snippet da CLI do Azure abaixo:

az cognitiveservices account show --name <your-resource-name> --resource-group <your-resource-group-name> --query "endpoint"

Usando uma chave de API

Use o Portal do Azure para navegar até o recurso Detector de Anomalias e recuperar uma chave de API clicando Keys and Endpoint em Gerenciamento de Recursos ou use o snippet da CLI do Azure abaixo:

Nota: Às vezes, a chave de API é chamada de "chave de assinatura" ou "chave de API de assinatura".

az cognitiveservices account keys list --resource-group <your-resource-group-name> --name <your-resource-name>

Depois de ter uma chave de API e um ponto de extremidade, você poderá usar a AzureKeyCredential classe para autenticar o cliente da seguinte maneira:

const { AnomalyDetectorClient, AzureKeyCredential } = require("@azure/ai-anomaly-detector");

const client = new AnomalyDetectorClient("<endpoint>", new AzureKeyCredential("<API key>"));

Usando uma credencial do Azure Active Directory

A autenticação de chave de API do cliente é usada na maioria dos exemplos, mas você também pode autenticar com o Azure Active Directory usando a [biblioteca de identidade do Azure]. Para usar o provedor DefaultAzureCredential mostrado abaixo ou outros provedores de credenciais fornecidos com o SDK do Azure, instale o @azure/identity pacote:

npm install @azure/identity

Você também precisará registrar um novo aplicativo do AAD e conceder acesso a Detector de Anomalias atribuindo a "Cognitive Services User" função à entidade de serviço (observação: outras funções como "Owner" não concederão as permissões necessárias, apenas "Cognitive Services User" serão suficientes para executar os exemplos e o código de exemplo).

Defina os valores da ID do cliente, da ID do locatário e do segredo do cliente do aplicativo AAD como variáveis de ambiente: AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET.

const { AnomalyDetectorClient } = require("@azure/ai-anomaly-detector");
const { DefaultAzureCredential } = require("@azure/identity");

const client = new AnomalyDetectorClient("<endpoint>", new DefaultAzureCredential());

Exemplos

Detectar pontos de alteração

Este exemplo demonstra como detectar pontos de alteração em séries inteiras.

const { AnomalyDetectorClient, TimeGranularity } = require("@azure/ai-anomaly-detector");
const { AzureKeyCredential } = require("@azure/core-auth");

// You will need to set this environment variables in .env file or edit the following values
const apiKey = process.env["API_KEY"] || "";
const endpoint = process.env["ENDPOINT"] || "";

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

  // construct request
  const request = {
    series: [
      { timestamp: new Date("2018-03-01T00:00:00Z"), value: 32858923 },
      { timestamp: new Date("2018-03-02T00:00:00Z"), value: 29615278 },
      { timestamp: new Date("2018-03-03T00:00:00Z"), value: 22839355 },
      { timestamp: new Date("2018-03-04T00:00:00Z"), value: 25948736 },
      { timestamp: new Date("2018-03-05T00:00:00Z"), value: 34139159 },
      { timestamp: new Date("2018-03-06T00:00:00Z"), value: 33843985 },
      { timestamp: new Date("2018-03-07T00:00:00Z"), value: 33637661 },
      { timestamp: new Date("2018-03-08T00:00:00Z"), value: 32627350 },
      { timestamp: new Date("2018-03-09T00:00:00Z"), value: 29881076 },
      { timestamp: new Date("2018-03-10T00:00:00Z"), value: 22681575 },
      { timestamp: new Date("2018-03-11T00:00:00Z"), value: 24629393 },
      { timestamp: new Date("2018-03-12T00:00:00Z"), value: 34010679 },
      { timestamp: new Date("2018-03-13T00:00:00Z"), value: 33893888 },
      { timestamp: new Date("2018-03-14T00:00:00Z"), value: 33760076 },
      { timestamp: new Date("2018-03-15T00:00:00Z"), value: 33093515 }
    ],
    granularity: TimeGranularity.daily
  };

  // get change point detect results
  const result = await client.detectChangePoint(request);
  const isChangePointDetected = result.isChangePoint.some((changePoint) => changePoint);

  if (isChangePointDetected) {
    console.log("Change points were detected from the series at index:");
    result.isChangePoint.forEach((changePoint, index) => {
      if (changePoint === true) {
        console.log(index);
      }
    });
  } else {
    console.log("There is no change point detected from the series.");
  }
  // output:
  // Change points were detected from the series at index:
  // 9
}

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

Mais exemplos podem ser encontrados aqui

Solução de problemas

Registro em log

A habilitação do log pode ajudar a descobrir informações úteis sobre falhas. Para ver um log de solicitações e respostas HTTP, defina a variável de ambiente AZURE_LOG_LEVEL como info. Como alternativa, o log pode ser habilitado no runtime chamando setLogLevel em @azure/logger:

import { setLogLevel } from "@azure/logger";

setLogLevel("info");

Para obter instruções mais detalhadas sobre como habilitar logs, veja os documentos do pacote @azure/logger.

Próximas etapas

Dê uma olhada no diretório de exemplos para obter exemplos detalhados sobre como usar essa biblioteca.

Contribuição

Este projeto aceita contribuições e sugestões. A maioria das contribuições exige que você concorde com um CLA (Contrato de Licença do Colaborador) declarando que você tem o direito de nos conceder, e de fato concede, os direitos de usar sua contribuição. Para obter detalhes, visite https://cla.microsoft.com.

Quando você envia uma solicitação de pull, um bot do CLA determina automaticamente se você precisa fornecer um CLA e preencher a PR corretamente (por exemplo, rótulo, comentário). Basta seguir as instruções fornecidas pelo bot. Você só precisará fazer isso uma vez em todos os repositórios que usam nosso CLA.

Este projeto adotou o Código de Conduta de Software Livre da Microsoft. Para obter mais informações, confira as Perguntas frequentes sobre o Código de Conduta ou contate opencode@microsoft.com para enviar outras perguntas ou comentários.

Se você quiser contribuir com essa biblioteca, leia o guia de contribuição para saber como criar e testar o código.