Dela via


Azure Avvikelseidentifiering-klientbibliotek för JavaScript – version 3.0.0-beta.5

Azure AnomalyDetector Med API:et kan du övervaka och identifiera avvikelser i dina tidsseriedata med maskininlärning.

Nyckellänkar:

Viktiga begrepp

Tillhandahåller AnomalyDetectorClient metoder för avvikelseidentifiering:

  • detectEntireSeries – Identifierar avvikelser i en hel datauppsättning
  • detectLastPoint – Identifierar avvikelser i den senaste datapunkten
  • detectChangePoint – Utvärderar ändringspunktpoäng för varje seriepunkt

Komma igång

Miljöer som stöds för närvarande

Mer information finns i vår supportprincip .

Förutsättningar

Om du använder Azure CLI ersätter <your-resource-group-name> du och <your-resource-name> med dina egna unika namn:

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

Installera @azure/ai-anomaly-detector-paketet

Installera Azure Avvikelseidentifiering-klientbiblioteket för JavaScript med npm:

npm install @azure/ai-anomaly-detector

Skapa och autentisera en AnomalyDetectorClient

Om du vill skapa ett klientobjekt för att komma åt Avvikelseidentifiering-API:et endpoint behöver du för din Avvikelseidentifiering resurs och en credential. Den Avvikelseidentifiering klienten kan använda antingen Azure Active Directory-autentiseringsuppgifter eller en API-nyckelautentiseringsuppgift för att autentisera.

Du hittar slutpunkten för din Avvikelseidentifiering resurs i Azure-portalen genom att Keys and Endpoint klicka under Resurshantering på menyn eller med hjälp av Azure CLI-kodfragmentet nedan:

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

Använda en API-nyckel

Använd Azure-portalen för att bläddra till din Avvikelseidentifiering resurs och hämta en API-nyckel genom att Keys and Endpoint klicka under Resurshantering eller använda Azure CLI-kodfragmentet nedan:

Observera: Ibland kallas API-nyckeln för en "prenumerationsnyckel" eller "prenumerations-API-nyckel".

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

När du har en API-nyckel och slutpunkt kan du använda AzureKeyCredential klassen för att autentisera klienten på följande sätt:

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

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

Använda en Azure Active Directory-autentiseringsuppgift

Nyckelautentisering för klient-API:et används i de flesta exempel, men du kan också autentisera med Azure Active Directory med hjälp av [Azure Identity Library]. Om du vill använda DefaultAzureCredential-providern som visas nedan eller andra leverantörer av autentiseringsuppgifter som medföljer Azure SDK installerar @azure/identity du paketet:

npm install @azure/identity

Du måste också registrera ett nytt AAD-program och bevilja åtkomst till Avvikelseidentifiering genom att tilldela "Cognitive Services User" rollen till tjänstens huvudnamn (obs! Andra roller som "Owner" inte beviljar nödvändiga behörigheter räcker bara "Cognitive Services User" för att köra exemplen och exempelkoden).

Ange värdena för klient-ID, klient-ID och klienthemlighet för AAD-programmet som miljövariabler: 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());

Exempel

Identifiera ändringspunkter

Det här exemplet visar hur du identifierar ändringspunkter i hela serien.

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

Fler exempel finns här

Felsökning

Loggning

Aktivering av loggning kan hjälpa dig att hitta användbar information om fel. Om du vill se en logg över HTTP-begäranden och svar anger du AZURE_LOG_LEVEL miljövariabeln till info. Du kan också aktivera loggning vid körning genom att anropa setLogLevel i @azure/logger:

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

setLogLevel("info");

Mer detaljerade anvisningar om hur du aktiverar loggar finns i @azure-/loggningspaketdokumenten.

Nästa steg

Ta en titt på exempelkatalogen för detaljerade exempel på hur du använder det här biblioteket.

Bidra

Det här projektet välkomnar bidrag och förslag. Merparten av bidragen kräver att du godkänner ett licensavtal för bidrag, där du deklarerar att du har behörighet att bevilja oss rättigheten att använda ditt bidrag, och att du dessutom uttryckligen gör så. Mer information finns på https://cla.microsoft.com.

När du skickar en pull-förfrågan avgör en CLA-robot automatiskt om du måste tillhandahålla ett licensavtal för bidrag med lämplig PR (t.ex. etikett eller kommentar). Följ bara robotens anvisningar. Du behöver bara göra detta en gång för alla repor som använder vårt licensavtal för bidrag.

Det här projektet använder sig av Microsofts uppförandekod för öppen källkod. Mer information finns i Vanliga frågor och svar om uppförandekod eller kontakt opencode@microsoft.com med ytterligare frågor eller kommentarer.

Om du vill bidra till det här biblioteket kan du läsa bidragsguiden för att lära dig mer om hur du skapar och testar koden.