Rychlý start: Použití klientské knihovny Univariate Detektor anomálií

Důležité

Od 20. září 2023 nebudete moct vytvářet nové Detektor anomálií prostředky. Služba Detektor anomálií se 1. října 2026 vyřadí z provozu.

Referenční dokumentace |ke knihovně – Balíček zdrojového kódu | knihovny (NuGet) |Vyhledání ukázkového kódu na GitHubu

Začínáme s klientskou knihovnou Detektor anomálií pro C#. Pomocí těchto kroků nainstalujte balíček pomocí algoritmů poskytovaných službou. Služba Detektor anomálií umožňuje najít odchylky v datech časových řad automaticky pomocí nejvhodnějších modelů bez ohledu na obor, scénář nebo objem dat.

Pomocí klientské knihovny Detektor anomálií pro jazyk C# můžete:

  • Detekce anomálií v datové sadě časových řad jako dávkové žádosti
  • Zjištění stavu anomálií nejnovějšího datového bodu v časové řadě
  • Detekujte body změn trendu ve vaší sadě dat.

Požadavky

Nastavení

Vytvoření nové aplikace .NET Core

V okně konzoly (například cmd, PowerShell nebo Bash) pomocí dotnet new příkazu vytvořte novou konzolovou aplikaci s názvem anomaly-detector-quickstart. Tento příkaz vytvoří jednoduchý projekt Hello World s jedním zdrojovým souborem jazyka C#: Program.cs.

dotnet new console -n anomaly-detector-quickstart

Změňte adresář na nově vytvořenou složku aplikace. Aplikaci můžete sestavit pomocí následujících:

dotnet build

Výstup sestavení by neměl obsahovat žádná upozornění ani chyby.

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

Instalace klientské knihovny

V adresáři aplikace nainstalujte klientskou knihovnu Detektor anomálií pro .NET pomocí následujícího příkazu:

dotnet add package Azure.AI.AnomalyDetector --prerelease

Načtení klíče a koncového bodu

K úspěšnému volání služby Detektor anomálií budete potřebovat následující hodnoty:

Název proměnné Hodnota
ANOMALY_DETECTOR_ENDPOINT Tuto hodnotu najdete v části Klíče a koncový bod při zkoumání prostředku na webu Azure Portal. Příklad koncového bodu: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/
ANOMALY_DETECTOR_API_KEY Hodnotu klíče rozhraní API najdete v části Klíče a koncový bod při zkoumání prostředku na webu Azure Portal. Použít můžete předponu KEY1 nebo KEY2.
DATA_PATH V tomto rychlém startu request-data.csv se používá soubor, který si můžete stáhnout z našich ukázkových dat GitHubu. Příklad cesty: c:\\test\\request-data.csv

Na webu Azure Portal přejděte ke svému prostředku. Koncový bod a klíče najdete v části Správa prostředků. Zkopírujte koncový bod a přístupový klíč, protože budete potřebovat obojí pro ověřování volání rozhraní API. Použít můžete předponu KEY1 nebo KEY2. Vždy mít dva klíče vám umožní bezpečně otáčet a znovu vygenerovat klíče, aniž by to způsobilo přerušení služeb.

Vytvoření proměnných prostředí

Vytvořte a přiřaďte trvalé proměnné prostředí pro klíč a koncový bod.

Důležité

Pokud používáte klíč rozhraní API, uložte ho bezpečně někam jinam, například ve službě Azure Key Vault. Nezahrnujte klíč rozhraní API přímo do kódu a nikdy ho nevštěvujte veřejně.

Další informace o zabezpečení služeb AI najdete v tématu Ověřování požadavků na služby Azure AI.

setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"

Stažení ukázkových dat

V tomto rychlém startu se request-data.csv používá soubor, který je možné stáhnout z ukázkových dat GitHubu.

Ukázková data si můžete stáhnout také spuštěním následujícího příkazu:

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

Detekce anomálií

V adresáři projektu otevřete soubor program.cs a nahraďte následujícím kódem:

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


Spusťte aplikaci pomocí následujícího příkazu:

dotnet run program.cs

Výstup

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

Podrobnosti kódu

Porozumění výsledkům

Ve výše uvedeném kódu se ukázková data čtou a převedou na DetectRequest objekt. Voláme File.ReadAllLines s cestou k souboru a vytvoříme seznam TimeSeriesPoint objektů a odstraníme všechny znaky nového řádku. Extrahujte hodnoty a oddělte časové razítko od jeho číselné hodnoty a přidejte je do nového TimeSeriesPoint objektu. Objekt DetectRequest se skládá z řady datových bodů s TimeGranularity.Daily členitostí (nebo periodikou) datových bodů. Dále zavoláme metodu klienta DetectEntireSeriesAsync s objektem DetectRequest a očekáváme odpověď jako EntireDetectResponse objekt. Pak iterujeme hodnoty odpovědi IsAnomaly a vytiskneme všechny hodnoty, které jsou pravdivé. Tyto hodnoty odpovídají indexu neobvyklých datových bodů, pokud byly nalezeny.

Vyčištění prostředků

Pokud chcete vyčistit a odebrat prostředek Detektor anomálií, můžete prostředek nebo skupinu prostředků odstranit. Odstraněním skupiny prostředků se odstraní také všechny ostatní prostředky, které jsou k ní přidružené. Můžete také zvážit odstranění proměnných prostředí, které jste vytvořili, pokud už je nechcete používat.

Referenční dokumentace ke |knihovně – Balíček zdrojového kódu | knihovny (npm) |Vyhledání ukázkového kódu na GitHubu

Začínáme s klientskou knihovnou Detektor anomálií pro JavaScript Podle těchto kroků nainstalujte balíček a začněte používat algoritmy poskytované službou. Služba Detektor anomálií umožňuje automaticky najít odchylky v datech časových řad pomocí nejvhodnějšího modelu bez ohledu na obor, scénář nebo objem dat.

Pomocí klientské knihovny Detektor anomálií pro JavaScript můžete:

  • Detekce anomálií v datové sadě časových řad jako dávkové žádosti
  • Zjištění stavu anomálií nejnovějšího datového bodu v časové řadě
  • Detekujte body změn trendu ve vaší sadě dat.

Požadavky

Nastavení

Vytvoření nové aplikace Node.js

V okně konzoly (například cmd, PowerShell nebo Bash) vytvořte pro vaši aplikaci nový adresář a přejděte do něj.

mkdir myapp && cd myapp

Vytvořte package.json soubor s následujícím obsahem:

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

Instalace klientské knihovny

Nainstalujte požadované balíčky npm spuštěním následujícího příkazu ze stejného adresáře jako soubor package.json:

npm install

Načtení klíče a koncového bodu

K úspěšnému volání služby Detektor anomálií budete potřebovat následující hodnoty:

Název proměnné Hodnota
ANOMALY_DETECTOR_ENDPOINT Tuto hodnotu najdete v části Klíče a koncový bod při zkoumání prostředku na webu Azure Portal. Příklad koncového bodu: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/
ANOMALY_DETECTOR_API_KEY Hodnotu klíče rozhraní API najdete v části Klíče a koncový bod při zkoumání prostředku na webu Azure Portal. Použít můžete předponu KEY1 nebo KEY2.
datapath V tomto rychlém startu request-data.csv se používá soubor, který si můžete stáhnout z našich ukázkových dat GitHubu.

Na webu Azure Portal přejděte ke svému prostředku. Koncový bod a klíče najdete v části Správa prostředků. Zkopírujte koncový bod a přístupový klíč, protože budete potřebovat obojí pro ověřování volání rozhraní API. Použít můžete předponu KEY1 nebo KEY2. Vždy mít dva klíče vám umožní bezpečně otáčet a znovu vygenerovat klíče, aniž by to způsobilo přerušení služeb.

Vytvoření proměnných prostředí

Vytvořte a přiřaďte trvalé proměnné prostředí pro klíč a koncový bod.

Důležité

Pokud používáte klíč rozhraní API, uložte ho bezpečně někam jinam, například ve službě Azure Key Vault. Nezahrnujte klíč rozhraní API přímo do kódu a nikdy ho nevštěvujte veřejně.

Další informace o zabezpečení služeb AI najdete v tématu Ověřování požadavků na služby Azure AI.

setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"

Stažení ukázkových dat

V tomto rychlém startu se request-data.csv používá soubor, který je možné stáhnout z ukázkových dat GitHubu.

Ukázková data si můžete stáhnout také spuštěním následujícího příkazu:

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

Detekce anomálií

Vytvořte soubor s názvem index.js a nahraďte následujícím kódem:

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

Spuštění aplikace

Spusťte aplikaci pomocí příkazu node pro soubor rychlého startu.

node index.js

Výstup

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

Porozumění výsledkům

Ve výše uvedeném kódu voláme rozhraní API Detektor anomálií k detekci anomálií prostřednictvím celé časové řady jako dávky pomocí metody detectEntireSeries() klienta. Vrácený objekt AnomalyDetectorDetectEntireSeriesResponse ukládáme. Pak iterujeme seznamem odpovědí isAnomaly a vytiskneme index všech true hodnot. Tyto hodnoty odpovídají indexu neobvyklých datových bodů, pokud byly nalezeny.

Vyčištění prostředků

Pokud chcete vyčistit a odebrat prostředek Detektor anomálií, můžete prostředek nebo skupinu prostředků odstranit. Odstraněním skupiny prostředků se odstraní také všechny ostatní prostředky, které jsou k ní přidružené. Můžete také zvážit odstranění proměnných prostředí, které jste vytvořili, pokud už je nechcete používat.

Referenční dokumentace ke |knihovně – Balíček zdrojového kódu | knihovny (PyPi) |Vyhledání ukázkového kódu na GitHubu

Začínáme s klientskou knihovnou Detektor anomálií pro Python Podle těchto kroků nainstalujte balíček a začněte používat algoritmy poskytované službou. Služba Detektor anomálií umožňuje najít odchylky v datech časových řad automaticky pomocí nejvhodnějších modelů bez ohledu na obor, scénář nebo objem dat.

Pomocí klientské knihovny Detektor anomálií pro Python můžete:

  • Detekce anomálií v datové sadě časových řad jako dávkové žádosti
  • Zjištění stavu anomálií nejnovějšího datového bodu v časové řadě
  • Detekujte body změn trendu ve vaší sadě dat.

Požadavky

Nastavení

Nainstalujte klientskou knihovnu. Klientskou knihovnu můžete nainstalovat pomocí následujících:

pip install --upgrade azure.ai.anomalydetector

Načtení klíče a koncového bodu

K úspěšnému volání služby Detektor anomálií budete potřebovat následující hodnoty:

Název proměnné Hodnota
ANOMALY_DETECTOR_ENDPOINT Tuto hodnotu najdete v části Klíče a koncový bod při zkoumání prostředku na webu Azure Portal. Příklad koncového bodu: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/
ANOMALY_DETECTOR_API_KEY Hodnotu klíče rozhraní API najdete v části Klíče a koncový bod při zkoumání prostředku na webu Azure Portal. Použít můžete předponu KEY1 nebo KEY2.
DATA_PATH V tomto rychlém startu request-data.csv se používá soubor, který si můžete stáhnout z našich ukázkových dat GitHubu. Příklad cesty: c:\\test\\request-data.csv

Na webu Azure Portal přejděte ke svému prostředku. Koncový bod a klíče najdete v části Správa prostředků. Zkopírujte koncový bod a přístupový klíč, protože budete potřebovat obojí pro ověřování volání rozhraní API. Použít můžete předponu KEY1 nebo KEY2. Vždy mít dva klíče vám umožní bezpečně otáčet a znovu vygenerovat klíče, aniž by to způsobilo přerušení služeb.

Vytvoření proměnných prostředí

Vytvořte a přiřaďte trvalé proměnné prostředí pro klíč a koncový bod.

Důležité

Pokud používáte klíč rozhraní API, uložte ho bezpečně někam jinam, například ve službě Azure Key Vault. Nezahrnujte klíč rozhraní API přímo do kódu a nikdy ho nevštěvujte veřejně.

Další informace o zabezpečení služeb AI najdete v tématu Ověřování požadavků na služby Azure AI.

setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"

Stažení ukázkových dat

V tomto rychlém startu se request-data.csv používá soubor, který je možné stáhnout z ukázkových dat GitHubu.

Ukázková data si můžete stáhnout také spuštěním následujícího příkazu:

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

Detekce anomálií

  1. Vytvořte nový soubor Pythonu s názvem quickstart.py. Pak ho otevřete v preferovaném editoru nebo integrovaném vývojovém prostředí (IDE).

  2. Obsah quickstart.py nahraďte následujícím kódem. Upravte kód tak, aby přidal názvy proměnných prostředí pro klíč, koncový bod a cestu k datům časové řady:

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

    Důležité

    V produkčním prostředí použijte bezpečný způsob ukládání přihlašovacích údajů a přístupu k vašim přihlašovacím údajům, jako je Azure Key Vault. Další informace o zabezpečení přihlašovacích údajů najdete v článku zabezpečení služeb Azure AI.

  3. Spuštění aplikace pomocí příkazu v souboru rychlého python startu

    python quickstart.py
    

Výstup

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

Porozumění výsledkům

Ve výše uvedeném kódu voláme rozhraní API Detektor anomálií dvakrát. První volání kontroluje body změn trendu v naší ukázkové datové řadě pomocí detect_change_point metody. Toto volání vrátí ChangePointDetectResponse hodnotu, kterou jsme uložili do proměnné, kterou jsme pojmenovali change_point_request. Pak iterujeme seznamem odpovědí is_change_point a vytiskneme index všech hodnot s logickou hodnotou true.

Druhé volání zkontroluje pomocí metody celou ukázkovou datovou řadu anomálií detect_entire_series . Toto volání vrátí EntireDetectResponse hodnotu, kterou jsme uložili do proměnné, kterou jsme pojmenovali anomaly_response. Iterujeme seznamem odpovědí is_anomaly a vytiskneme index všech hodnot s logickou hodnotou true. Případně bychom mohli použít metodu detect_last_point , která je vhodnější pro detekci anomálií v datech v reálném čase. Další informace najdete v průvodci osvědčenými postupy.

Vizualizace výsledků

K vizualizaci anomálií a změn bodů ve vztahu k ukázkové datové řadě použijeme oblíbenou knihovnu matplotlib pro open source.

  1. Nainstalujte knihovnu.

    pip install matplotlib
    
  2. Upravte soubor quickstart.py následujícím kódem:

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

    Důležité

    V produkčním prostředí použijte bezpečný způsob ukládání přihlašovacích údajů a přístupu k vašim přihlašovacím údajům, jako je Azure Key Vault. Další informace o zabezpečení přihlašovacích údajů najdete v článku zabezpečení služeb Azure AI.

  3. Spuštění aplikace pomocí příkazu v souboru rychlého python startu

    python quickstart.py
    

Výstup

V tomto příkladu kódu jsme přidali knihovnu matplotlib , která nám umožní vizualizovat a snadno odlišit běžné datové body od bodů změn a anomálií. Body změn jsou reprezentovány modrými čtverci, anomálie jsou červené trojúhelníky a normální datové body jsou zelené kruhy. Kalendářní data se převedou na čísla pomocí matplotlibmetody" date2num , která poskytuje grafové popisné hodnoty pro osu y grafů.

Snímek obrazovky s výsledky s indexy anomálií a body změn v bodovém grafu Různé obrazce a barvy se používají pro různé datové typy.

Vyčištění prostředků

Pokud chcete vyčistit a odebrat prostředek Detektor anomálií, můžete prostředek nebo skupinu prostředků odstranit. Odstraněním skupiny prostředků se odstraní také všechny ostatní prostředky, které jsou k ní přidružené. Můžete také zvážit odstranění proměnných prostředí, které jste vytvořili, pokud už je nechcete používat.

V tomto rychlém startu se dozvíte, jak pomocí služby Detektor anomálií a cURL detekovat anomálie v dávce dat časových řad.

Základní informace o konceptech Detektor anomálií najdete v článku s přehledem.

Požadavky

Načtení klíče a koncového bodu

K úspěšnému volání služby Detektor anomálií budete potřebovat následující hodnoty:

Název proměnné Hodnota
ANOMALY_DETECTOR_ENDPOINT Tuto hodnotu najdete v části Klíče a koncový bod při zkoumání prostředku na webu Azure Portal. Příklad koncového bodu: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/
ANOMALY_DETECTOR_API_KEY Hodnotu klíče rozhraní API najdete v části Klíče a koncový bod při zkoumání prostředku na webu Azure Portal. Použít můžete předponu KEY1 nebo KEY2.

Na webu Azure Portal přejděte ke svému prostředku. Koncový bod a klíče najdete v části Správa prostředků. Zkopírujte koncový bod a přístupový klíč, protože budete potřebovat obojí pro ověřování volání rozhraní API. Použít můžete předponu KEY1 nebo KEY2. Vždy mít dva klíče vám umožní bezpečně otáčet a znovu vygenerovat klíče, aniž by to způsobilo přerušení služeb.

Vytvoření proměnných prostředí

Vytvořte a přiřaďte trvalé proměnné prostředí pro klíč a koncový bod.

Důležité

Pokud používáte klíč rozhraní API, uložte ho bezpečně někam jinam, například ve službě Azure Key Vault. Nezahrnujte klíč rozhraní API přímo do kódu a nikdy ho nevštěvujte veřejně.

Další informace o zabezpečení služeb AI najdete v tématu Ověřování požadavků na služby Azure AI.

setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Detekce anomálií

Na příkazovém řádku spusťte následující příkaz. Do příkazu budete muset vložit následující hodnoty.

  • Klíč předplatného služby Detektor anomálií.
  • Adresa koncového bodu detektoru anomálií
  • Platný soubor JSON s daty časových řad pro testování anomálií. Pokud nemáte vlastní soubor, můžete z ukázky textu požadavku vytvořit sample.json soubor.
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" 

Příklad úplného příkazu jako jednoho řádku:

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"

Případně pokud spouštíte příkaz cURL z prostředí Bash, bude se váš příkaz mírně lišit:

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"

Pokud jste použili ukázková data z požadavků, měli byste obdržet odpověď 200 s následujícími výsledky:

{
  "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
}

Další informace najdete v referenčních informacích k rozhraní REST pro detekci anomálií.

Vyčištění prostředků

Pokud chcete vyčistit a odebrat předplatné služeb Azure AI, můžete odstranit prostředek nebo skupinu prostředků. Odstraněním skupiny prostředků odstraníte také všechny ostatní prostředky přidružené ke skupině prostředků.

Další kroky

Koncepty:

Kurzy: