快速入門:使用 Univariate 異常偵測程式 客戶端連結庫

重要

從 2023 年 9 月 20 日起,您將無法建立新的 異常偵測程式 資源。 異常偵測程式 服務將於 2026 年 10 月 1 日淘汰。

連結庫參考文件 |連結庫原始程式碼 | 套件 (NuGet) |在 GitHub 上尋找範例程式代碼

開始使用適用於 C# 的 異常偵測程式 用戶端連結庫。 請遵循下列步驟,以使用服務所提供的演算法來安裝套件。 異常偵測程式 服務可讓您在時間序列數據中自動使用最適合的模型,而不論產業、案例或數據量為何,都能在時間序列數據中找到異常狀況。

使用適用於 C# 的 異常偵測程式 用戶端連結庫來:

  • 以批次要求的形式偵測整個時間序列數據集的異常
  • 偵測時間序列中最新數據點的異常狀態
  • 偵測數據集中的趨勢變更點。

必要條件

設定

建立新的 .NET Core 應用程式

在主控台視窗中 (例如 cmd、PowerShell 或 Bash),使用 dotnet new 命令建立名為 anomaly-detector-quickstart 的新主控台應用程式。 此命令會建立具有單一 C# 原始程式檔的簡單 「Hello World」 專案: Program.cs

dotnet new console -n anomaly-detector-quickstart

將您的目錄變更為新建立的應用程式資料夾。 您可以使用下列項目建置應用程式:

dotnet build

組建輸出不應包含警告或錯誤。

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

安裝客戶端連結庫

在應用程式目錄中,使用下列命令安裝適用於 .NET 的 異常偵測程式 用戶端連結庫:

dotnet add package Azure.AI.AnomalyDetector --prerelease

擷取金鑰和端點

若要成功對 異常偵測程式 服務進行呼叫,您需要下列值:

變數名稱
ANOMALY_DETECTOR_ENDPOINT 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 範例端點: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/
ANOMALY_DETECTOR_API_KEY 從 Azure 入口網站 檢查您的資源時,可以在 [金鑰與端點] 區段中找到 API 金鑰值。 您可以使用 KEY1KEY2
DATA_PATH 本快速入門使用 request-data.csv 可從 GitHub 範例數據下載的檔案。 範例路徑: c:\\test\\request-data.csv

移至 Azure 入口網站 中的資源。 您可以在 [資源管理] 區段中找到端點和金鑰。 複製您的端點和存取密鑰,因為您需要這兩者來驗證 API 呼叫。 您可以使用 KEY1KEY2。 一律有兩個金鑰可讓您安全地輪替和重新產生密鑰,而不會造成服務中斷。

建立環境變數

為您的金鑰和端點建立並指派持續性環境變數。

setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"

下載範例資料

本快速入門使用 request-data.csv 可從 GitHub 範例數據下載的檔案

您也可以執行下列命令來下載範例資料:

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

偵測異常

從項目目錄開啟 program.cs 檔案,並以下列程式代碼取代 :

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


重要

針對生產環境,請使用安全的方式來儲存和存取您的認證,例如 Azure 金鑰保存庫。 如需有關認證安全性的詳細資訊,請參閱 Azure AI 服務安全性一文。

dotnet run program.cs

輸出

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

程式代碼詳細數據

瞭解您的結果

在上述程式代碼中,範例數據會讀取並轉換成 DetectRequest 物件。 我們會使用檔案路徑呼叫 File.ReadAllLines ,並建立物件清單 TimeSeriesPoint ,並移除任何新的行字元。 擷取值,並將時間戳與其數值分開,並將其新增至新的 TimeSeriesPoint 物件。 物件 DetectRequest 是由一系列數據點所組成,具有 TimeGranularity.Daily 數據點的數據點粒度(或週期性)。 接下來,我們會使用 DetectRequest 物件呼叫用戶端DetectEntireSeriesAsync的 方法,並以 物件的形式EntireDetectResponse等候回應。 然後,逐一查看回應 IsAnomaly 的值,並列印任何真實值。 如果找到任何值,這些值會對應至異常數據點的索引。

清除資源

如果您想要清除和移除 異常偵測程式 資源,您可以刪除資源或資源群組。 刪除資源群組也會刪除與其相關聯的任何其他資源。 如果您不想再使用環境變數,您也可以考慮 刪除您所建立的環境變數

連結庫參考文件 |連結庫原始程式碼 | 套件 (npm) |在 GitHub 上尋找範例程式代碼

開始使用適用於 JavaScript 的 異常偵測程式 客戶端連結庫。 請遵循下列步驟來安裝套件,並開始使用服務所提供的演算法。 異常偵測程式 服務可讓您在時間序列數據中自動使用最適合的模型來尋找異常狀況,而不論產業、案例或數據量為何。

使用適用於 JavaScript 的 異常偵測程式 客戶端連結庫來:

  • 以批次要求的形式偵測整個時間序列數據集的異常
  • 偵測時間序列中最新數據點的異常狀態
  • 偵測數據集中的趨勢變更點。

必要條件

  • Azure 訂用帳戶 - 免費建立一個訂用帳戶
  • Node.js 的 目前版本
  • 擁有 Azure 訂用帳戶之後,請在 Azure 入口網站 中建立 異常偵測程式 資源,以取得您的密鑰和端點。 等候部署它,然後選取 [移至資源 ] 按鈕。
    • 您需要從您建立的資源取得密鑰和端點,才能將應用程式連線到 異常偵測程式 API。 您將使用金鑰和端點來建立環境變數。 您可以使用免費定價層 (F0) 來試用服務,稍後再升級至生產環境的付費層。

設定

建立新的 Node.js 應用程式

在主控台視窗中(例如 cmd、PowerShell 或 Bash),為您的應用程式建立新的目錄,然後流覽至它。

mkdir myapp && cd myapp

使用下列內容建立 package.json 檔案:

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

安裝客戶端連結庫

從與 package.json 檔案相同的目錄中執行下列命令,以安裝必要的 npm 套件:

npm install

擷取金鑰和端點

若要成功對 異常偵測程式 服務進行呼叫,您需要下列值:

變數名稱
ANOMALY_DETECTOR_ENDPOINT 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 範例端點: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/
ANOMALY_DETECTOR_API_KEY 檢查來自 Azure 入口網站 的資源時,可以在 [金鑰與端點] 區段中找到 API 金鑰值。 您可以使用 KEY1KEY2
datapath 本快速入門使用 request-data.csv 可從 GitHub 範例數據下載的檔案。

移至 Azure 入口網站 中的資源。 您可以在 [資源管理] 區段中找到端點和金鑰。 複製您的端點和存取密鑰,因為您需要這兩者來驗證 API 呼叫。 您可以使用 KEY1KEY2。 一律有兩個金鑰可讓您安全地輪替和重新產生密鑰,而不會造成服務中斷。

建立環境變數

為您的金鑰和端點建立並指派持續性環境變數。

setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"

下載範例資料

本快速入門使用 request-data.csv 可從 GitHub 範例數據下載的檔案

您也可以執行下列命令來下載範例資料:

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

偵測異常

建立名為 index.js 的檔案,並以下列程式代碼取代 :

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

// You will need to set this environment variables or edit the following values
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 };

執行應用程式

node 快速入門檔案上使用 命令執行應用程式。

node index.js

輸出

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

瞭解您的結果

在上述程式代碼中,我們會呼叫 異常偵測程式 API,以使用用戶端的 detectEntireSeries() 方法,透過整個時間序列偵測異常。 我們會儲存傳 回的 AnomalyDetectorDetectEntireSeriesResponse 物件。 然後,我們會逐一查看響應 isAnomaly 的清單,並列印任何 true 值的索引。 如果找到任何值,這些值會對應至異常數據點的索引。

清除資源

如果您想要清除並移除 異常偵測程式 資源,您可以刪除資源或資源群組。 刪除資源群組也會刪除與其相關聯的任何其他資源。 如果您不想再使用環境變數,您也可以考慮 刪除您所建立的環境變數

連結庫參考文件 |連結庫原始程式碼 | 套件 (PyPi) |在 GitHub 上尋找範例程式代碼

開始使用適用於 Python 的 異常偵測程式 客戶端連結庫。 請遵循下列步驟來安裝套件,並開始使用服務所提供的演算法。 異常偵測程式 服務可讓您在時間序列數據中自動使用最適合的模型,而不論產業、案例或數據量為何,都能在時間序列數據中找到異常狀況。

使用適用於 Python 的 異常偵測程式 用戶端連結庫來:

  • 以批次要求的形式偵測整個時間序列數據集的異常
  • 偵測時間序列中最新數據點的異常狀態
  • 偵測數據集中的趨勢變更點。

必要條件

設定

安裝客戶端連結庫。 您可以使用下列項目來安裝客戶端連結庫:

pip install --upgrade azure.ai.anomalydetector

擷取金鑰和端點

若要成功對 異常偵測程式 服務進行呼叫,您需要下列值:

變數名稱
ANOMALY_DETECTOR_ENDPOINT 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 範例端點: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/
ANOMALY_DETECTOR_API_KEY 檢查來自 Azure 入口網站 的資源時,可以在 [金鑰與端點] 區段中找到 API 金鑰值。 您可以使用 KEY1KEY2
DATA_PATH 本快速入門使用 request-data.csv 可從 GitHub 範例數據下載的檔案。 範例路徑: c:\\test\\request-data.csv

移至 Azure 入口網站 中的資源。 您可以在 [資源管理] 區段中找到端點和金鑰。 複製您的端點和存取密鑰,因為您需要這兩者來驗證 API 呼叫。 您可以使用 KEY1KEY2。 一律有兩個金鑰可讓您安全地輪替和重新產生密鑰,而不會造成服務中斷。

建立環境變數

為您的金鑰和端點建立並指派持續性環境變數。

setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"

下載範例資料

本快速入門使用 request-data.csv 可從 GitHub 範例數據下載的檔案

您也可以執行下列命令來下載範例資料:

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

偵測異常

  1. 建立名為 quickstart.py 的新 Python 檔案。 然後在您慣用的編輯器或 IDE 中開啟它。

  2. 將 quickstart.py 的內容取代為下列程式碼。 變更程式代碼以新增金鑰、端點和時間序列資料路徑的環境變數名稱:

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

    重要

    針對生產環境,請使用安全的方式來儲存和存取您的認證,例如 Azure 金鑰保存庫。 如需有關認證安全性的詳細資訊,請參閱 Azure AI 服務安全性一文。

  3. python 快速入門檔案上使用 命令執行應用程式

    python quickstart.py
    

輸出

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

瞭解您的結果

在上述程式代碼中,我們會呼叫 異常偵測程式 API 兩次。 第一次呼叫會使用 detect_change_point 方法檢查範例數據系列的趨勢變更點。 這個呼叫會傳 ChangePointDetectResponse 回我們儲存在名為 change_point_request之變數中的 。 接著,我們會逐一查看響應 is_change_point 的清單,並以布爾值 true列印任何值的索引。

第二個呼叫會使用 detect_entire_series 方法檢查整個範例數據系列是否有異常狀況。 這個呼叫會傳 EntireDetectResponse 回我們儲存在名為 anomaly_response之變數中的 。 我們會逐一查看響應 is_anomaly 的清單,並以布爾值 true列印任何值的索引。 或者,我們也可以使用 detect_last_point 方法,更適合用來偵測實時數據中的異常狀況。 若要深入瞭解,請參閱 最佳做法指南

將結果可視化

為了可視化與範例數據系列相關的異常和變更點,我們將使用熱門的開放原始碼連結庫 matplotlib

  1. 安裝 程式庫。

    pip install matplotlib
    
  2. 使用下列程式代碼修改您的 quickstart.py 檔案:

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

    重要

    針對生產環境,請使用安全的方式來儲存和存取您的認證,例如 Azure 金鑰保存庫。 如需有關認證安全性的詳細資訊,請參閱 Azure AI 服務安全性一文。

  3. python 快速入門檔案上使用 命令執行應用程式

    python quickstart.py
    

輸出

在此程式代碼範例中,我們已新增連結 matplotlib 庫,讓我們能夠可視化並輕鬆地區分一般數據點與變更點和異常狀況。 變更點會以藍色方塊表示,異常是紅色三角形,而一般數據點則為綠色圓圈。 日期會使用 matplotlibdate2num 方法來轉換成數位,以提供圖表 y 軸的圖形易記值。

Screenshot of results with indexes of anomalies and change points on a scatter plot. Different shapes and colors are used for different data types..

清除資源

如果您想要清除和移除 異常偵測程式 資源,您可以刪除資源或資源群組。 刪除資源群組也會刪除與其相關聯的任何其他資源。 如果您不想再使用環境變數,您也可以考慮 刪除您所建立的環境變數

在本快速入門中,您將瞭解如何使用 異常偵測程式 服務和 cURL,在一批時間序列數據中偵測異常。

如需概念 異常偵測程式 概念的高階檢視,請參閱概觀文章。

必要條件

  • Azure 訂用帳戶 - 免費建立一個訂用帳戶
  • 擁有 Azure 訂用帳戶之後,請在 Azure 入口網站 中建立 異常偵測程式 資源,以取得您的密鑰和端點。 等候部署它,然後選取 [移至資源 ] 按鈕。 您可以使用免費定價層 (F0) 來試用服務,稍後再升級至生產環境的付費層。
  • 要測試異常之時間序列數據的有效 JSON 檔案。 如果您沒有自己的檔案,您可以從要求本文範例建立 sample.json 檔案

擷取金鑰和端點

若要成功對 異常偵測程式 服務進行呼叫,您需要下列值:

變數名稱
ANOMALY_DETECTOR_ENDPOINT 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 範例端點: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/
ANOMALY_DETECTOR_API_KEY 檢查來自 Azure 入口網站 的資源時,可以在 [金鑰與端點] 區段中找到 API 金鑰值。 您可以使用 KEY1KEY2

移至 Azure 入口網站 中的資源。 您可以在 [資源管理] 區段中找到端點和金鑰。 複製您的端點和存取密鑰,因為您需要這兩者來驗證 API 呼叫。 您可以使用 KEY1KEY2。 一律有兩個金鑰可讓您安全地輪替和重新產生密鑰,而不會造成服務中斷。

建立環境變數

為您的金鑰和端點建立並指派持續性環境變數。

setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

偵測異常

在命令提示字元中,執行下列命令。 您必須將下列值插入命令中。

  • 您的異常偵測器服務訂用帳戶金鑰。
  • 您的異常偵測器端點位址。
  • 要測試異常之時間序列數據的有效 JSON 檔案。 如果您沒有自己的檔案,您可以從要求本文範例建立 sample.json 檔案
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" 

完整命令作為單行的範例:

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"

或者,如果您是從Bash殼層執行 cURL 命令,則命令會稍有不同:

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"

如果您使用必要條件的範例數據,您應該會收到回應 200,其中包含下列結果:

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

如需詳細資訊,請參閱 異常偵測 REST 參考

清除資源

如果您想要清除和移除 Azure AI 服務訂用帳戶,則可以刪除資源或資源群組。 刪除資源群組也會刪除與資源群組相關聯的任何其他資源。

下一步

概念:

教學課程: