Краткое руководство. Использование клиентской библиотеки univariate Детектор аномалий
Внимание
Начиная с 20 сентября 2023 г. вы не сможете создавать новые Детектор аномалий ресурсы. Служба Детектор аномалий отменяется 1 октября 2026 года.
Справочная документация по библиотеке исходного кода библиотеки |(NuGet) |Найти пример кода | на GitHub
Приступите к работе с клиентской библиотекой Детектора аномалий для C#. Выполните следующие действия, чтобы установить пакет и приступить к использованию алгоритмов, предоставляемых службой. Служба Детектора аномалий позволяет находить аномалии в данных временных рядов, автоматически применяя для них наиболее подходящие модели, независимо от отрасли, сценария или объема данных.
Клиентскую библиотеку Детектора аномалий для 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 с помощью следующей команды:
dotnet add package Azure.AI.AnomalyDetector --prerelease
Получение ключа и конечной точки
Чтобы успешно вызвать службу Детектор аномалий, вам потребуется следующее:
Имя переменной | Значение |
---|---|
ANOMALY_DETECTOR_ENDPOINT |
Это значение можно найти в разделе Ключи и конечная точка при просмотре ресурса на портале Azure. Пример конечной точки: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/ |
ANOMALY_DETECTOR_API_KEY |
Значение ключа API можно найти в разделе "Ключи и конечная точка" при изучении ресурса из портал Azure. Вы можете использовать KEY1 или KEY2 . |
DATA_PATH |
В этом кратком руководстве используется request-data.csv файл, который можно скачать из примера данных GitHub. Пример пути: c:\\test\\request-data.csv |
Перейдите к своему ресурсу на портале Azure. Конечную точку и ключи можно найти в разделе Управление ресурсами. Скопируйте конечную точку и ключ доступа, так как они потребуются для проверки подлинности вызовов API. Вы можете использовать KEY1
или KEY2
. Наличие двух ключей позволяет безопасно менять и повторно создавать ключи без прерывания работы службы.
Создание переменной среды
Создайте и назначьте переменные постоянной среды для ключа и конечной точки.
Внимание
Если вы используете ключ API, сохраните его в другом месте, например в Azure Key Vault. Не включайте ключ API непосредственно в код и никогда не публикуйте его.
Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".
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
детализацией (или периодичностью) точек данных.
Затем мы вызываем метод клиента DetectEntireSeriesAsync
с DetectRequest
объектом и ожидаем ответа в качестве EntireDetectResponse
объекта. Затем мы выполните итерацию по значениям ответа IsAnomaly
и распечатаем все, которые являются истинными. Эти значения соответствуют индексу аномальных точек данных, если они были найдены.
Очистка ресурсов
Если вы хотите очистить и удалить ресурс Детектор аномалий, можно удалить ресурс или группу ресурсов. При удалении группы ресурсов также удаляются все связанные с ней ресурсы. Вы также можете рассмотреть возможность удаления созданных переменных среды, если вы больше не планируете их использовать.
Пакет исходного кода библиотеки библиотеки справочника по библиотеке |(npm) |Найти пример кода | на GitHub
Приступите к работе с клиентской библиотекой Детектора аномалий для JavaScript. Выполните следующие действия, чтобы установить пакет и начать использовать алгоритмы, предоставляемые службой. Служба Детектор аномалий позволяет находить аномалии в данных временных рядов, автоматически используя оптимальную модель в ней независимо от отрасли, сценария или объема данных.
Клиентскую библиотеку Детектора аномалий для JavaScript можно использовать для таких задач:
- обнаружение аномалий в наборе данных временных рядов с использованием пакетного запроса;
- Обнаружение состояния аномалии последней точки данных во временном ряду.
- обнаружение точек изменения тенденций в наборе данных.
Необходимые компоненты
- подписка 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"
}
}
Установка клиентской библиотеки
Установите необходимые пакеты npm, выполнив следующую команду из того же каталога, что и файл package.json:
npm install
Получение ключа и конечной точки
Чтобы успешно вызвать службу Детектор аномалий, вам потребуется следующее:
Имя переменной | Значение |
---|---|
ANOMALY_DETECTOR_ENDPOINT |
Это значение можно найти в разделе Ключи и конечная точка при просмотре ресурса на портале Azure. Пример конечной точки: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/ |
ANOMALY_DETECTOR_API_KEY |
Значение ключа API можно найти в разделе "Ключи и конечная точка" при изучении ресурса из портал Azure. Вы можете использовать KEY1 или KEY2 . |
datapath |
В этом кратком руководстве используется request-data.csv файл, который можно скачать из примера данных GitHub. |
Перейдите к своему ресурсу на портале Azure. Конечную точку и ключи можно найти в разделе Управление ресурсами. Скопируйте конечную точку и ключ доступа, так как они потребуются для проверки подлинности вызовов API. Вы можете использовать KEY1
или KEY2
. Наличие двух ключей позволяет безопасно менять и повторно создавать ключи без прерывания работы службы.
Создание переменной среды
Создайте и назначьте переменные постоянной среды для ключа и конечной точки.
Внимание
Если вы используете ключ API, сохраните его в другом месте, например в Azure Key Vault. Не включайте ключ API непосредственно в код и никогда не публикуйте его.
Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".
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
для файла quickstart.
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 можно использовать для таких задач:
- обнаружение аномалий в наборе данных временных рядов с использованием пакетного запроса;
- Обнаружение состояния аномалии последней точки данных во временном ряду.
- обнаружение точек изменения тенденций в наборе данных.
Необходимые компоненты
- подписка Azure — создайте бесплатную учетную запись.
- Python 3.x
- Библиотека анализа данных Pandas
- После получения подписки Azure создайте ресурс Детектор аномалий в портал Azure, чтобы получить ключ и конечную точку. Дождитесь, пока закончится развертывание, и нажмите кнопку Перейти к ресурсу. Используйте бесплатную ценовую категорию (
F0
), чтобы опробовать службу, а затем выполните обновление до платного уровня для рабочей среды.
Настройка
Установите клиентскую библиотеку. Клиентскую библиотеку можно установить с помощью следующей команды:
pip install --upgrade azure.ai.anomalydetector
Получение ключа и конечной точки
Чтобы успешно вызвать службу Детектор аномалий, вам потребуется следующее:
Имя переменной | Значение |
---|---|
ANOMALY_DETECTOR_ENDPOINT |
Это значение можно найти в разделе Ключи и конечная точка при просмотре ресурса на портале Azure. Пример конечной точки: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/ |
ANOMALY_DETECTOR_API_KEY |
Значение ключа API можно найти в разделе "Ключи и конечная точка" при изучении ресурса из портал Azure. Вы можете использовать KEY1 или KEY2 . |
DATA_PATH |
В этом кратком руководстве используется request-data.csv файл, который можно скачать из примера данных GitHub. Пример пути: c:\\test\\request-data.csv |
Перейдите к своему ресурсу на портале Azure. Конечную точку и ключи можно найти в разделе Управление ресурсами. Скопируйте конечную точку и ключ доступа, так как они потребуются для проверки подлинности вызовов API. Вы можете использовать KEY1
или KEY2
. Наличие двух ключей позволяет безопасно менять и повторно создавать ключи без прерывания работы службы.
Создание переменной среды
Создайте и назначьте переменные постоянной среды для ключа и конечной точки.
Внимание
Если вы используете ключ API, сохраните его в другом месте, например в Azure Key Vault. Не включайте ключ API непосредственно в код и никогда не публикуйте его.
Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".
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
Обнаружение аномалий
Создайте файл Python с именем quickstart.py. Затем откройте его в предпочитаемом редакторе или интегрированной среде разработки.
Замените содержимое файла 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.
Запустите приложение, выполнив команду
python
для файла quickstart.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.
Установите библиотеку .
pip install matplotlib
Измените файл 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.
Запустите приложение, выполнив команду
python
для файла quickstart.python quickstart.py
Выходные данные
В этом примере кода мы добавили библиотеку matplotlib
, чтобы позволить нам визуализировать и легко различать обычные точки данных от точек изменений и аномалий. Точки изменения представлены голубыми квадратами, аномалии являются красными треугольниками, а обычные точки данных — зелеными кругами. Даты преобразуются в числа с помощью matplotlib
метода 's date2num
' для предоставления понятных для диаграмм ось y диаграмм.
Очистка ресурсов
Если вы хотите очистить и удалить ресурс Детектор аномалий, можно удалить ресурс или группу ресурсов. При удалении группы ресурсов также удаляются все связанные с ней ресурсы. Вы также можете рассмотреть возможность удаления созданных переменных среды, если вы больше не планируете их использовать.
В этом кратком руководстве вы узнаете, как обнаруживать аномалии в пакете данных временных рядов, используя службу Детектора аномалий и cURL.
Общие сведения о концепциях Детектора аномалий см. в этом обзоре.
Необходимые компоненты
- подписка Azure — создайте бесплатную учетную запись.
- После получения подписки Azure создайте ресурс Детектор аномалий в портал Azure, чтобы получить ключ и конечную точку. Дождитесь, пока закончится развертывание, и нажмите кнопку Перейти к ресурсу. Используйте бесплатную ценовую категорию (
F0
), чтобы опробовать службу, а затем выполните обновление до платного уровня для рабочей среды. - Допустимый JSON-файл данных временных рядов для проверки аномалий. Если у вас нет собственного файла, можно создать файл sample.json из примера текста запроса.
Получение ключа и конечной точки
Чтобы успешно вызвать службу Детектор аномалий, вам потребуется следующее:
Имя переменной | Значение |
---|---|
ANOMALY_DETECTOR_ENDPOINT |
Это значение можно найти в разделе Ключи и конечная точка при просмотре ресурса на портале Azure. Пример конечной точки: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/ |
ANOMALY_DETECTOR_API_KEY |
Значение ключа API можно найти в разделе "Ключи и конечная точка" при изучении ресурса из портал Azure. Вы можете использовать KEY1 или KEY2 . |
Перейдите к своему ресурсу на портале Azure. Конечную точку и ключи можно найти в разделе Управление ресурсами. Скопируйте конечную точку и ключ доступа, так как они потребуются для проверки подлинности вызовов API. Вы можете использовать KEY1
или KEY2
. Наличие двух ключей позволяет безопасно менять и повторно создавать ключи без прерывания работы службы.
Создание переменной среды
Создайте и назначьте переменные постоянной среды для ключа и конечной точки.
Внимание
Если вы используете ключ API, сохраните его в другом месте, например в Azure Key Vault. Не включайте ключ API непосредственно в код и никогда не публикуйте его.
Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".
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"
Кроме того, если вы выполняете команду cURL из оболочки Bash, команда будет немного отличаться:
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 API обнаружения аномалий.
Очистка ресурсов
Если вы хотите очистить и удалить подписку на службы искусственного интеллекта Azure, можно удалить ресурс или группу ресурсов. При этом удаляются все ресурсы, связанные с этой группой ресурсов.
Следующие шаги
Основные понятия:
- Общие сведения об API Детектора аномалий
- Методы обнаружения аномалий
- Рекомендации по использованию API Детектора аномалий
Руководства.