共用方式為


快速入門:使用單變量異常偵測器用戶端程式庫

重要

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

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

開始使用適用於 C# 的異常偵測器用戶端程式庫。 請依照下列步驟,開始使用服務提供的演算法安裝套件。 Anomaly Detector 服務可藉由自動對時間序列資料使用最適合的模型,而讓您找出其中的異常狀況,不論是什麼產業、情境或資料量都沒問題。

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

  • 以批次要求方式偵測整個時間序列資料集的異常狀況
  • 偵測您的時間序列中最新資料點的異常狀態
  • 偵測您資料集內的趨勢變更點。

必要條件

  • Azure 訂用帳戶 - 建立免費帳戶
  • 最新版 .NET Core
  • 擁有 Azure 訂用帳戶之後,在 Azure 入口網站中建立異常偵測程式資源,以取得您的金鑰和端點。 部署完成後,選取 [移至資源] 按鈕。 您可以使用免費定價層 (F0) 來試用服務,之後可升級至付費層以用於實際執行環境。

設定

建立新的 .NET Core 應用程式

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

dotnet new console -n anomaly-detector-quickstart

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

dotnet build

建置輸出應該不會有警告或錯誤。

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

安裝用戶端程式庫

在應用程式目錄中,使用下列命令安裝適用於 .NET 的 Anomaly Detector 用戶端程式庫:

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。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。

建立環境變數

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

重要

如果您使用 API 金鑰,請將其安全地儲存在別處,例如 Azure Key Vault。 請勿在程式碼中直接包含 API 金鑰,且切勿公開張貼金鑰。

如需 AI 服務安全性的詳細資訊,請參閱驗證對 Azure AI 服務的要求 (英文)。

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


使用下列命令執行您的應用程式:

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 值,並列印任何為 true 的值。 如果有找到,這些值會對應到異常資料點的索引。

清除資源

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

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

開始使用適用於 JavaScript 的 Anomaly Detector 用戶端程式庫。 請遵循下列步驟安裝套件,並開始使用服務提供的演算法。 異常偵測器服務可藉由自動對時間序列資料使用最適合的模型,而讓您找出其中的異常狀況,不論是什麼產業、情境或資料量都沒問題。

使用適用於 JavaScript 的 Anomaly Detector 用戶端程式庫來:

  • 以批次要求方式偵測整個時間序列資料集的異常狀況
  • 偵測您的時間序列中最新資料點的異常狀態
  • 偵測您資料集內的趨勢變更點。

必要條件

  • Azure 訂用帳戶 - 建立免費帳戶
  • 最新版的 Node.js
  • 擁有 Azure 訂用帳戶之後,在 Azure 入口網站中建立異常偵測程式資源,以取得您的金鑰和端點。 部署完成後,選取 [移至資源] 按鈕。 您可以使用免費定價層 (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。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。

建立環境變數

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

重要

如果您使用 API 金鑰,請將其安全地儲存在別處,例如 Azure Key Vault。 請勿在程式碼中直接包含 API 金鑰,且切勿公開張貼金鑰。

如需 AI 服務安全性的詳細資訊,請參閱驗證對 Azure AI 服務的要求 (英文)。

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

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

執行應用程式

使用快速入門檔案上使用 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 的 Anomaly Detector 用戶端程式庫。 請遵循下列步驟安裝套件,並開始使用服務提供的演算法。 Anomaly Detector 服務可藉由自動對時間序列資料使用最適合的模型,而讓您找出其中的異常狀況,不論是什麼產業、情境或資料量都沒問題。

使用適用於 Python 的 Anomaly Detector 用戶端程式庫來:

  • 以批次要求方式偵測整個時間序列資料集的異常狀況
  • 偵測您的時間序列中最新資料點的異常狀態
  • 偵測您資料集內的趨勢變更點。

必要條件

設定

安裝用戶端程式庫。 您可以使用下列命令來安裝用戶端程式庫:

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。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。

建立環境變數

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

重要

如果您使用 API 金鑰,請將其安全地儲存在別處,例如 Azure Key Vault。 請勿在程式碼中直接包含 API 金鑰,且切勿公開張貼金鑰。

如需 AI 服務安全性的詳細資訊,請參閱驗證對 Azure AI 服務的要求 (英文)。

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 Key Vault。 如需有關認證安全性的詳細資訊,請參閱 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 方法,檢查範例資料數列的趨勢變更點。 此呼叫會傳回儲存在名為 change_point_request 變數中的 ChangePointDetectResponse。 接著逐一查看回應的 is_change_point 清單,然後使用 true 布林值列印任何值的索引。

第二個呼叫會使用 detect_entire_series 方法檢查整個範例資料數列是否有異常。 此呼叫會傳回儲存在名為 anomaly_response 變數中的 EntireDetectResponse。 逐一查看回應的 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 Key Vault。 如需有關認證安全性的詳細資訊,請參閱 Azure AI 服務安全性一文。

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

    python quickstart.py
    

輸出

在此程式碼範例中,我們已新增 matplotlib 程式庫,讓我們能夠視覺化並輕鬆區分一般資料點與變更點以及異常情形。 變更點以藍色方塊表示,異常情形是紅色三角形,而一般資料點則是綠色圓形。 日期會使用 matplotlibdate2num 方法來轉換成數字,以提供圖表 Y 軸的圖形易記值。

螢幕擷取畫面:散佈圖上包含異常索引和變更點的結果。不同的圖形和色彩會用於不同的資料類型。

清除資源

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

在本快速入門中,您將了解如何使用異常偵測器服務和 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。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。

建立環境變數

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

重要

如果您使用 API 金鑰,請將其安全地儲存在別處,例如 Azure Key Vault。 請勿在程式碼中直接包含 API 金鑰,且切勿公開張貼金鑰。

如需 AI 服務安全性的詳細資訊,請參閱驗證對 Azure AI 服務的要求 (英文)。

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 服務訂用帳戶,則可以刪除資源或資源群組。 刪除資源群組也會刪除與資源群組相關聯的任何其他資源。

下一步

概念:

教學課程: