Dela via


Snabbstart: Använda Univariate Avvikelseidentifiering-klientbiblioteket

Viktigt!

Från och med den 20 september 2023 kan du inte skapa nya Avvikelseidentifiering resurser. Tjänsten Avvikelseidentifiering dras tillbaka den 1 oktober 2026.

Biblioteksreferensdokumentation Bibliotekets källkodspaket | (NuGet) |Hitta exempelkoden på GitHub |

Kom igång med Avvikelseidentifiering-klientbiblioteket för C#. Följ de här stegen för att installera paketet med hjälp av de algoritmer som tillhandahålls av tjänsten. Med Avvikelseidentifiering-tjänsten kan du hitta avvikelser i dina tidsseriedata genom att automatiskt använda de bästa modellerna på den, oavsett bransch, scenario eller datavolym.

Använd Avvikelseidentifiering-klientbiblioteket för C# för att:

  • Identifiera avvikelser i tidsseriedatauppsättningen som en batchbegäran
  • Identifiera avvikelsestatusen för den senaste datapunkten i tidsserien
  • Identifiera trendändringspunkter i datauppsättningen.

Förutsättningar

  • En Azure-prenumeration – Skapa en kostnadsfritt
  • Den aktuella versionen av .NET Core
  • När du har din Azure-prenumeration skapar du en Avvikelseidentifiering resurs i Azure Portal för att hämta din nyckel och slutpunkt. Vänta tills den har distribuerats och välj knappen Gå till resurs . Du kan använda den kostnadsfria prisnivån (F0) för att prova tjänsten och uppgradera senare till en betald nivå för produktion.

Konfigurera

Skapa en ny .NET Core-app

I ett konsolfönster (till exempel cmd, PowerShell eller Bash) använder du dotnet new kommandot för att skapa en ny konsolapp med namnet anomaly-detector-quickstart. Det här kommandot skapar ett enkelt "Hello World"-projekt med en enda C#-källfil: Program.cs.

dotnet new console -n anomaly-detector-quickstart

Ändra katalogen till den nyligen skapade appmappen. Du kan skapa programmet med:

dotnet build

Kompileringsutdata får inte innehålla några varningar eller fel.

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

Installera klientbiblioteket

Installera Avvikelseidentifiering-klientbiblioteket för .NET i programkatalogen med följande kommando:

dotnet add package Azure.AI.AnomalyDetector --prerelease

Hämta nyckel och slutpunkt

Om du vill göra ett anrop mot Avvikelseidentifiering-tjänsten behöver du följande värden:

Variabelnamn Värde
ANOMALY_DETECTOR_ENDPOINT Det här värdet finns i avsnittet Nycklar och slutpunkt när du undersöker resursen från Azure-portalen. Exempelslutpunkt: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/
ANOMALY_DETECTOR_API_KEY API-nyckelvärdet finns i avsnittet Nycklar och slutpunkter när du undersöker resursen från Azure Portal. Du kan använda antingen KEY1 eller KEY2.
DATA_PATH Den här snabbstarten request-data.csv använder filen som kan laddas ned från våra GitHub-exempeldata. Exempelsökväg: c:\\test\\request-data.csv

Gå till resursen i Azure Portal. Slutpunkten och nycklarna finns i avsnittet Resurshantering . Kopiera slutpunkten och åtkomstnyckeln eftersom du behöver båda för att autentisera dina API-anrop. Du kan använda antingen KEY1 eller KEY2. Om du alltid har två nycklar kan du rotera och återskapa nycklar på ett säkert sätt utan att orsaka avbrott i tjänsten.

Skapa miljövariabler

Skapa och tilldela beständiga miljövariabler för din nyckel och slutpunkt.

Viktigt!

Om du använder en API-nyckel lagrar du den på ett säkert sätt någon annanstans, till exempel i Azure Key Vault. Inkludera inte API-nyckeln direkt i koden och publicera den aldrig offentligt.

Mer information om säkerhet för AI-tjänster finns i Autentisera begäranden till Azure AI-tjänster.

setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"

Ladda ned exempeldata

Den här snabbstarten request-data.csv använder filen som kan laddas ned från våra GitHub-exempeldata

Du kan också ladda ned exempeldata genom att köra:

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

Identifiera avvikelser

Öppna filen program.cs från projektkatalogen och ersätt med följande kod:

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


Kör programmet med följande kommando:

dotnet run program.cs

Output

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

Kodinformation

Förstå dina resultat

I koden ovan läse och konverteras exempeldata till ett DetectRequest objekt. Vi anropar File.ReadAllLines med filsökvägen och skapar en lista över TimeSeriesPoint objekt och tar bort eventuella nya radtecken. Extrahera värdena och separera tidsstämpeln från dess numeriska värde och lägg till dem i ett nytt TimeSeriesPoint objekt. Objektet DetectRequest består av en serie datapunkter, med TimeGranularity.Daily för datapunkternas kornighet (eller periodicitet). Därefter anropar vi klientens DetectEntireSeriesAsync -metod med DetectRequest -objektet och väntar på svaret som ett EntireDetectResponse objekt. Sedan itererar vi genom svarets IsAnomaly värden och skriver ut alla som är sanna. Dessa värden motsvarar indexet för avvikande datapunkter, om några hittades.

Rensa resurser

Om du vill rensa och ta bort en Avvikelseidentifiering resurs kan du ta bort resursen eller resursgruppen. Om du tar bort resursgruppen tas även alla andra resurser som är associerade med den bort. Du kan också överväga att ta bort de miljövariabler som du skapade om du inte längre tänker använda dem.

Biblioteksreferensdokumentation Bibliotekets källkodspaket | (npm) |Hitta exempelkoden på GitHub |

Kom igång med Avvikelseidentifiering-klientbiblioteket för JavaScript. Följ de här stegen för att installera paketet och börja använda de algoritmer som tillhandahålls av tjänsten. Med Avvikelseidentifiering-tjänsten kan du hitta avvikelser i dina tidsseriedata genom att automatiskt använda den bäst passande modellen på den, oavsett bransch, scenario eller datavolym.

Använd Avvikelseidentifiering-klientbiblioteket för JavaScript för att:

  • Identifiera avvikelser i tidsseriedatauppsättningen som en batchbegäran
  • Identifiera avvikelsestatusen för den senaste datapunkten i tidsserien
  • Identifiera trendändringspunkter i datauppsättningen.

Förutsättningar

  • En Azure-prenumeration – Skapa en kostnadsfritt
  • Den aktuella versionen av Node.js
  • När du har din Azure-prenumeration skapar du en Avvikelseidentifiering resurs i Azure Portal för att hämta din nyckel och slutpunkt. Vänta tills den har distribuerats och välj knappen Gå till resurs . Du kan använda den kostnadsfria prisnivån (F0) för att prova tjänsten och uppgradera senare till en betald nivå för produktion.

Konfigurera

Skapa ett nytt Node.js-program

Skapa en ny katalog för din app i ett konsolfönster (till exempel cmd, PowerShell eller bash) och navigera till den.

mkdir myapp && cd myapp

Skapa en package.json fil med följande innehåll:

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

Installera klientbiblioteket

Installera nödvändiga npm-paket genom att köra följande från samma katalog som din package.json-fil:

npm install

Hämta nyckel och slutpunkt

Om du vill göra ett anrop mot Avvikelseidentifiering-tjänsten behöver du följande värden:

Variabelnamn Värde
ANOMALY_DETECTOR_ENDPOINT Det här värdet finns i avsnittet Nycklar och slutpunkt när du undersöker resursen från Azure-portalen. Exempelslutpunkt: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/
ANOMALY_DETECTOR_API_KEY API-nyckelvärdet finns i avsnittet Nycklar och slutpunkter när du undersöker resursen från Azure Portal. Du kan använda antingen KEY1 eller KEY2.
datapath Den här snabbstarten request-data.csv använder filen som kan laddas ned från våra GitHub-exempeldata.

Gå till resursen i Azure Portal. Slutpunkten och nycklarna finns i avsnittet Resurshantering . Kopiera slutpunkten och åtkomstnyckeln eftersom du behöver båda för att autentisera dina API-anrop. Du kan använda antingen KEY1 eller KEY2. Om du alltid har två nycklar kan du rotera och återskapa nycklar på ett säkert sätt utan att orsaka avbrott i tjänsten.

Skapa miljövariabler

Skapa och tilldela beständiga miljövariabler för din nyckel och slutpunkt.

Viktigt!

Om du använder en API-nyckel lagrar du den på ett säkert sätt någon annanstans, till exempel i Azure Key Vault. Inkludera inte API-nyckeln direkt i koden och publicera den aldrig offentligt.

Mer information om säkerhet för AI-tjänster finns i Autentisera begäranden till Azure AI-tjänster.

setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"

Ladda ned exempeldata

Den här snabbstarten request-data.csv använder filen som kan laddas ned från våra GitHub-exempeldata

Du kan också ladda ned exempeldata genom att köra:

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

Identifiera avvikelser

Skapa en fil med namnet index.js och ersätt med följande kod:

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

Kör appen

Kör programmet med kommandot node på din snabbstartsfil.

node index.js

Output

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

Förstå dina resultat

I koden ovan anropar vi Avvikelseidentifiering-API:et för att identifiera avvikelser genom hela tidsserien som en batch med klientens detectEntireSeries()-metod. Vi lagrar det returnerade Objektet AnomalyDetectorDetectEntireSeriesResponse . Sedan itererar vi igenom svarets isAnomaly lista och skriver ut indexet för alla true värden. Dessa värden motsvarar indexet för avvikande datapunkter, om några hittades.

Rensa resurser

Om du vill rensa och ta bort en Avvikelseidentifiering resurs kan du ta bort resursen eller resursgruppen. Om du tar bort resursgruppen tas även alla andra resurser som är associerade med den bort. Du kan också överväga att ta bort de miljövariabler som du skapade om du inte längre tänker använda dem.

Biblioteksreferensdokumentation Bibliotekets källkodspaket | (PyPi) |Hitta exempelkoden på GitHub |

Kom igång med Avvikelseidentifiering-klientbiblioteket för Python. Följ de här stegen för att installera paketet och börja använda de algoritmer som tillhandahålls av tjänsten. Med Avvikelseidentifiering-tjänsten kan du hitta avvikelser i dina tidsseriedata genom att automatiskt använda de bästa modellerna på den, oavsett bransch, scenario eller datavolym.

Använd Avvikelseidentifiering-klientbiblioteket för Python för att:

  • Identifiera avvikelser i tidsseriedatauppsättningen som en batchbegäran
  • Identifiera avvikelsestatusen för den senaste datapunkten i tidsserien
  • Identifiera trendändringspunkter i datauppsättningen.

Förutsättningar

Konfigurera

Installera klientbiblioteket. Du kan installera klientbiblioteket med:

pip install --upgrade azure.ai.anomalydetector

Hämta nyckel och slutpunkt

Om du vill göra ett anrop mot Avvikelseidentifiering-tjänsten behöver du följande värden:

Variabelnamn Värde
ANOMALY_DETECTOR_ENDPOINT Det här värdet finns i avsnittet Nycklar och slutpunkt när du undersöker resursen från Azure-portalen. Exempelslutpunkt: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/
ANOMALY_DETECTOR_API_KEY API-nyckelvärdet finns i avsnittet Nycklar och slutpunkter när du undersöker resursen från Azure Portal. Du kan använda antingen KEY1 eller KEY2.
DATA_PATH Den här snabbstarten request-data.csv använder filen som kan laddas ned från våra GitHub-exempeldata. Exempelsökväg: c:\\test\\request-data.csv

Gå till resursen i Azure Portal. Slutpunkten och nycklarna finns i avsnittet Resurshantering . Kopiera slutpunkten och åtkomstnyckeln eftersom du behöver båda för att autentisera dina API-anrop. Du kan använda antingen KEY1 eller KEY2. Om du alltid har två nycklar kan du rotera och återskapa nycklar på ett säkert sätt utan att orsaka avbrott i tjänsten.

Skapa miljövariabler

Skapa och tilldela beständiga miljövariabler för din nyckel och slutpunkt.

Viktigt!

Om du använder en API-nyckel lagrar du den på ett säkert sätt någon annanstans, till exempel i Azure Key Vault. Inkludera inte API-nyckeln direkt i koden och publicera den aldrig offentligt.

Mer information om säkerhet för AI-tjänster finns i Autentisera begäranden till Azure AI-tjänster.

setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"

Ladda ned exempeldata

Den här snabbstarten request-data.csv använder filen som kan laddas ned från våra GitHub-exempeldata

Du kan också ladda ned exempeldata genom att köra:

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

Identifiera avvikelser

  1. Skapa en ny Python-fil med namnet quickstart.py. Öppna den sedan i önskad redigerare eller IDE.

  2. Ersätt innehållet i quickstart.py med följande kod. Ändra koden för att lägga till miljövariabelnamnen för din nyckel, slutpunkt och datasökvägen för tidsserier:

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

    Viktigt!

    För produktion använder du ett säkert sätt att lagra och komma åt dina autentiseringsuppgifter som Azure Key Vault. Mer information om säkerhet för autentiseringsuppgifter finns i artikeln om Säkerhet för Azure AI-tjänster.

  3. Kör programmet med python kommandot på snabbstartsfilen

    python quickstart.py
    

Output

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

Förstå dina resultat

I koden ovan anropar vi Avvikelseidentifiering API två gånger. Det första anropet söker efter trendändringspunkter i våra exempeldataserier med detect_change_point metoden . Det här anropet returnerar en ChangePointDetectResponse som vi lagrade i en variabel med namnet change_point_request. Vi itererar sedan igenom svarets is_change_point lista och skriver ut indexet för alla värden med booleskt värde av true.

Det andra anropet kontrollerar hela exempeldataserien efter avvikelser med hjälp av detect_entire_series metoden. Det här anropet returnerar en EntireDetectResponse som vi lagrade i en variabel med namnet anomaly_response. Vi itererar genom svarets is_anomaly lista och skriver ut indexet för alla värden med ett booleskt värde av true. Alternativt kunde vi ha använt detect_last_point metoden, vilket är lämpligare för att identifiera avvikelser i realtidsdata. Mer information finns i guiden för bästa praxis.

Visualisera resultat

För att visualisera avvikelser och ändringspunkter i förhållande till exempeldataserien använder vi det populära biblioteksmatplotlib med öppen källkod.

  1. Installera biblioteket.

    pip install matplotlib
    
  2. Ändra din quickstart.py-fil med följande kod:

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

    Viktigt!

    För produktion använder du ett säkert sätt att lagra och komma åt dina autentiseringsuppgifter som Azure Key Vault. Mer information om säkerhet för autentiseringsuppgifter finns i artikeln om Säkerhet för Azure AI-tjänster.

  3. Kör programmet med python kommandot på snabbstartsfilen

    python quickstart.py
    

Output

I det här kodexemplet har vi lagt till matplotlib biblioteket så att vi kan visualisera och enkelt skilja normala datapunkter från ändringspunkter och avvikelser. Ändringspunkter representeras av blå fyrkanter, avvikelser är röda trianglar och normala datapunkter är gröna cirklar. Datum konverteras till tal med metoden matplotlib's date2num för att tillhandahålla grafvänliga värden för diagram-y-axeln.

Skärmbild av resultat med index över avvikelser och ändringspunkter i ett punktdiagram. Olika former och färger används för olika datatyper..

Rensa resurser

Om du vill rensa och ta bort en Avvikelseidentifiering resurs kan du ta bort resursen eller resursgruppen. Om du tar bort resursgruppen tas även alla andra resurser som är associerade med den bort. Du kan också överväga att ta bort de miljövariabler som du skapade om du inte längre tänker använda dem.

I den här snabbstarten lär du dig att identifiera avvikelser i en batch med tidsseriedata med hjälp av Avvikelseidentifiering-tjänsten och cURL.

En övergripande titt på Avvikelseidentifiering begrepp finns i översiktsartikeln.

Förutsättningar

  • En Azure-prenumeration – Skapa en kostnadsfritt
  • När du har din Azure-prenumeration skapar du en Avvikelseidentifiering resurs i Azure Portal för att hämta din nyckel och slutpunkt. Vänta tills den har distribuerats och välj knappen Gå till resurs . Du kan använda den kostnadsfria prisnivån (F0) för att prova tjänsten och uppgradera senare till en betald nivå för produktion.
  • En giltig JSON-fil med tidsseriedata som ska testas för avvikelser. Om du inte har en egen fil kan du skapa en sample.json fil från brödtextexemplet Request

Hämta nyckel och slutpunkt

Om du vill göra ett anrop mot Avvikelseidentifiering-tjänsten behöver du följande värden:

Variabelnamn Värde
ANOMALY_DETECTOR_ENDPOINT Det här värdet finns i avsnittet Nycklar och slutpunkt när du undersöker resursen från Azure-portalen. Exempelslutpunkt: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/
ANOMALY_DETECTOR_API_KEY API-nyckelvärdet finns i avsnittet Nycklar och slutpunkter när du undersöker resursen från Azure Portal. Du kan använda antingen KEY1 eller KEY2.

Gå till resursen i Azure Portal. Slutpunkten och nycklarna finns i avsnittet Resurshantering . Kopiera slutpunkten och åtkomstnyckeln eftersom du behöver båda för att autentisera dina API-anrop. Du kan använda antingen KEY1 eller KEY2. Om du alltid har två nycklar kan du rotera och återskapa nycklar på ett säkert sätt utan att orsaka avbrott i tjänsten.

Skapa miljövariabler

Skapa och tilldela beständiga miljövariabler för din nyckel och slutpunkt.

Viktigt!

Om du använder en API-nyckel lagrar du den på ett säkert sätt någon annanstans, till exempel i Azure Key Vault. Inkludera inte API-nyckeln direkt i koden och publicera den aldrig offentligt.

Mer information om säkerhet för AI-tjänster finns i Autentisera begäranden till Azure AI-tjänster.

setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Identifiera avvikelser

Kör följande kommando i en kommandotolk. Du måste infoga följande värden i kommandot .

  • Prenumerationsnyckeln för tjänsten Avvikelseidentifiering.
  • Slutpunktsadressen för avvikelseidentifiering.
  • En giltig JSON-fil med tidsseriedata som ska testas för avvikelser. Om du inte har en egen fil kan du skapa en sample.json fil från brödtextexemplet Begäran.
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" 

Ett exempel på det fullständiga kommandot som en enda rad:

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"

Alternativt om du kör cURL-kommandot från ett Bash-gränssnitt skulle kommandot vara något annorlunda:

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"

Om du använde exempeldata från förutsättningar bör du få ett svar 200 med följande resultat:

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

Mer information finns i REST-referensen för avvikelseidentifiering.

Rensa resurser

Om du vill rensa och ta bort en Azure AI-tjänstprenumeration kan du ta bort resursen eller resursgruppen. Om du tar bort resursgruppen tas även alla andra resurser som är associerade med resursgruppen bort.

Nästa steg

Koncept:

Självstudier: