Sdílet prostřednictvím


Klientská knihovna Azure Detektor anomálií pro JavaScript – verze 3.0.0-beta.5

Azure AnomalyDetector Rozhraní API umožňuje monitorovat a zjišťovat abnormality v datech časových řad pomocí strojového učení.

Klíčové odkazy:

Klíčové koncepty

Poskytuje AnomalyDetectorClient metody pro detekci anomálií:

  • detectEntireSeries – Detekuje anomálie v celé datové sadě.
  • detectLastPoint – Detekuje anomálie v nejnovějším datovém bodě.
  • detectChangePoint - Vyhodnocuje skóre bodu změny každého bodu řady.

Začínáme

Aktuálně podporovaná prostředí

  • LtS verze Node.js
  • Nejnovější verze prohlížečů Safari, Chrome, Edge a Firefox.

Další podrobnosti najdete v našich zásadách podpory .

Požadavky

Pokud používáte Azure CLI, nahraďte <your-resource-group-name> a <your-resource-name> vlastními jedinečnými názvy:

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

Nainstalujte balíček @azure/ai-anomaly-detector.

Nainstalujte klientskou knihovnu Azure Detektor anomálií pro JavaScript pomocí npm:

npm install @azure/ai-anomaly-detector

Vytvoření a ověření AnomalyDetectorClient

Pokud chcete vytvořit objekt klienta pro přístup k rozhraní API Detektor anomálií, budete potřebovat endpoint prostředek Detektor anomálií a credential. Klient Detektor anomálií může k ověření použít přihlašovací údaje Azure Active Directory nebo přihlašovací údaje klíče rozhraní API.

Koncový bod pro prostředek Detektor anomálií najdete na webu Azure Portal kliknutím Keys and Endpoint v části Správa prostředků v nabídce nebo pomocí fragmentu kódu Azure CLI níže:

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

Použití klíče rozhraní API

Pomocí webu Azure Portal přejděte k prostředku Detektor anomálií a načtěte klíč rozhraní API kliknutím v Keys and Endpoint části Správa prostředků nebo použijte fragment kódu Azure CLI níže:

Poznámka: Někdy se klíč rozhraní API označuje jako klíč předplatného nebo klíč rozhraní API předplatného.

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

Jakmile budete mít klíč rozhraní API a koncový bod, můžete pomocí AzureKeyCredential třídy ověřit klienta následujícím způsobem:

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

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

Použití přihlašovacích údajů Azure Active Directory

Ve většině příkladů se používá ověřování pomocí klíče rozhraní API klienta, ale můžete je také ověřit pomocí Azure Active Directory pomocí [knihovny identit Azure]. Pokud chcete použít zprostředkovatele DefaultAzureCredential uvedeného níže nebo jiné poskytovatele přihlašovacích údajů poskytovaného se sadou Azure SDK, nainstalujte @azure/identity balíček:

npm install @azure/identity

Budete také muset zaregistrovat novou aplikaci AAD a udělit přístup k Detektor anomálií přiřazením "Cognitive Services User" role k instančnímu objektu (poznámka: Jiné role jako "Owner" neudělují potřebná oprávnění, stačí spustit "Cognitive Services User" příklady a ukázkový kód).

Nastavte hodnoty ID klienta, ID tenanta a tajného klíče klienta aplikace AAD jako proměnné prostředí: 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());

Příklady

Detekce bodů změn

Tato ukázka ukazuje, jak rozpoznat body změn v celé řadě.

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

Další ukázky najdete tady.

Poradce při potížích

protokolování

Povolení protokolování může pomoct odhalit užitečné informace o selháních. Pokud chcete zobrazit protokol požadavků a odpovědí HTTP, nastavte proměnnou AZURE_LOG_LEVEL prostředí na info. Případně je možné protokolování povolit za běhu voláním setLogLevel v :@azure/logger

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

setLogLevel("info");

Podrobnější pokyny k povolení protokolů najdete v dokumentaci k balíčkům @azure/protokolovacího nástroje.

Další kroky

Podrobné příklady použití této knihovny najdete v adresáři samples .

Přispívání

Tento projekt vítá příspěvky a návrhy. Většina příspěvků vyžaduje souhlas s licenční smlouvou s přispěvatelem (CLA), která stanoví, že máte právo udělit nám práva k používání vašeho příspěvku a skutečně tak činíte. Podrobnosti najdete tady: https://cla.microsoft.com

Při odesílání žádosti o přijetí změn robot CLA automaticky určí, jestli je potřeba poskytnout smlouvu CLA, a příslušným způsobem žádost o přijetí změn upraví (např. přidáním jmenovky nebo komentáře). Stačí postupovat podle pokynů robota. Pro všechna úložiště používající naši smlouvu CLA to stačí udělat jenom jednou.

Tento projekt přijal pravidla chování pro Microsoft Open Source. Další informace najdete v nejčastějších dotazech k pravidlům chování nebo se obraťte na opencode@microsoft.com případné další dotazy nebo komentáře.

Pokud chcete přispívat do této knihovny, přečtěte si prosím průvodce přispívání , kde se dozvíte více o tom, jak sestavit a otestovat kód.