Início rápido: usar a biblioteca de clientes do Detector de Anomalias Univariadas
Importante
A partir de 20 de setembro de 2023, você não poderá criar novos recursos do Detector de Anomalias. O serviço Detector de Anomalias está sendo desativado em 1º de outubro de 2026.
Documentação de referência da biblioteca |Código-fonte da biblioteca | Pacote (NuGet) |Encontre o código de amostra no GitHub
Introdução à biblioteca de clientes Detector de Anomalias para C#. Siga estas etapas para instalar o pacote e começar a usar os algoritmos fornecidos pelo serviço. O serviço Detector de Anomalias permite localizar anormalidades em seus dados de série temporal usando automaticamente os modelos de melhor ajuste, independentemente do setor, cenário ou volume de dados.
Use a biblioteca de cliente do Detector de Anomalias para C# para:
- Detectar anomalias em todo o seu conjunto de dados de série temporal, como uma solicitação em lote
- Detectar o status de anomalias do ponto de dados mais recente em sua série temporal
- Detectar pontos de alteração de tendência no conjunto de dados.
Pré-requisitos
- Uma assinatura do Azure – crie uma gratuitamente
- Versão atual do .NET Core
- Depois de obter sua assinatura do Azure, crie um recurso Detector de Anomalias no portal do Azure para obter a chave e o ponto de extremidade. Aguarde até que ele seja implantado e selecione o botão Ir para o recurso. Use o tipo de preço gratuito (
F0
) para experimentar o serviço e atualizar mais tarde para um nível pago para produção.
Configuração
Criar um aplicativo .NET Core
Em uma janela de console (como cmd, PowerShell ou Bash), use o comando dotnet new
para criar um novo aplicativo do console com o nome anomaly-detector-quickstart
. Este comando cria um projeto "Olá, Mundo" simples com um único arquivo de origem C#: Program.cs.
dotnet new console -n anomaly-detector-quickstart
Altere o diretório para a pasta do aplicativo recém-criado. É possível criar o aplicativo com:
dotnet build
A saída de compilação não deve conter nenhum aviso ou erro.
...
Build succeeded.
0 Warning(s)
0 Error(s)
...
Instalar a biblioteca de clientes
Dentro do diretório do aplicativo, instale a biblioteca de clientes do Detector de Anomalias para .NET com o seguinte comando:
dotnet add package Azure.AI.AnomalyDetector --prerelease
Recuperar chave e ponto de extremidade
Para fazer uma chamada com sucesso no serviço Detector de Anomalias, você precisará dos seguintes valores:
Nome da variável | Valor |
---|---|
ANOMALY_DETECTOR_ENDPOINT |
Esse valor pode ser encontrado na seção Chaves & Ponto de Extremidade ao examinar o recurso no portal do Azure. Exemplo de ponto de extremidade: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/ |
ANOMALY_DETECTOR_API_KEY |
O valor da chave de API pode ser encontrado na seção Chaves e Ponto de extremidade ao examinar seu recurso no portal do Azure. Você pode usar KEY1 ou KEY2 . |
DATA_PATH |
Este início rápido usa o arquivo request-data.csv que pode ser baixado de nossos dados de amostra do GitHub. Exemplo de caminho: c:\\test\\request-data.csv |
Acesse o seu recurso no portal do Azure. O Ponto de extremidade e as Chaves podem ser encontrados na seção Gerenciamento de recursos. Copie o ponto de extremidade e as chave de acesso, pois você precisará de ambos para autenticar suas chamadas à API. Você pode usar KEY1
ou KEY2
. Ter sempre duas chaves permite girar e regenerar chaves com segurança, sem causar interrupção de serviço.
Criar variáveis de ambiente
Crie e atribua variáveis de ambiente persistentes para sua chave e ponto de extremidade.
Importante
Se você usar uma chave de API, armazene-a com segurança em outro lugar, como no Azure Key Vault. Não inclua a chave da API diretamente no seu código e nunca a publique publicamente.
Para obter mais informações sobre a segurança dos serviços de IA, confira Autenticar solicitações para serviços de IA do Azure.
setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Baixar dados de exemplo
Este início rápido usa o arquivo request-data.csv
que pode ser baixado de nossos dados de amostra do GitHub
Você também pode baixar os dados de amostra executando:
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
Detectar anomalias
No diretório do projeto, abra o arquivo program.cs e substitua pelo seguinte código:
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.");
}
}
}
}
Execute o aplicativo com o seguinte comando:
dotnet run program.cs
Saída
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
Detalhes do código
Compreensão dos resultados
No código acima, os dados de amostra são lidos e convertidos em um objeto DetectRequest
. Chamamos File.ReadAllLines
com o caminho do arquivo e criamos uma lista de objetos TimeSeriesPoint
e removemos quaisquer novos caracteres de linha. Extraia os valores e separe o carimbo de data/hora do seu valor numérico e adicione-os a um novo objeto TimeSeriesPoint
. O objeto DetectRequest
consiste em uma série de pontos de dados, com TimeGranularity.Daily
para a granularidade (ou periodicidade) dos pontos de dados.
Em seguida, chamamos o método DetectEntireSeriesAsync
do cliente com o objeto DetectRequest
e aguardamos a resposta como um objeto EntireDetectResponse
. Em seguida, iteramos os valores IsAnomaly
da resposta e imprimimos qualquer um que seja verdadeiro. Esses valores correspondem ao índice de pontos de dados anômalos, caso algum seja encontrado.
Limpar os recursos
Se você quiser limpar e remover um recurso do Detector de Anomalias, poderá excluir o recurso ou o grupo de recursos. Excluir o grupo de recursos também exclui todos os recursos associados a ele. Você também pode considerar excluir as variáveis de ambiente que você criou se não pretende mais usá-las.
Documentação de referência da biblioteca |Código-fonte da biblioteca | Pacote (npm) |Encontre o código de amostra no GitHub
Introdução à biblioteca de clientes do Detector de Anomalias para JavaScript. Siga estas etapas para instalar o pacote e comece a usar os algoritmos fornecidos pelo serviço. O serviço Detector de Anomalias permite que você encontre anormalidades em seus dados de séries temporais usando automaticamente o modelo mais adequado, independentemente do setor, cenário ou volume de dados.
Use a biblioteca de cliente do Detector de Anomalias para JavaScript para:
- Detectar anomalias em todo o seu conjunto de dados de série temporal, como uma solicitação em lote
- Detectar o status de anomalias do ponto de dados mais recente em sua série temporal
- Detectar pontos de alteração de tendência no conjunto de dados.
Pré-requisitos
- Uma assinatura do Azure – crie uma gratuitamente
- A versão atual do Node.js
- Depois de obter sua assinatura do Azure, crie um recurso Detector de Anomalias no portal do Azure para obter a chave e o ponto de extremidade. Aguarde até que ele seja implantado e selecione o botão Ir para o recurso. Use o tipo de preço gratuito (
F0
) para experimentar o serviço e atualizar mais tarde para um nível pago para produção.
Configuração
Criar um novo aplicativo do Node.js
Em uma janela de console (como cmd, PowerShell ou Bash), crie um novo diretório para seu aplicativo e navegue até ele.
mkdir myapp && cd myapp
Crie um arquivo package.json
com os conteúdos a seguir:
{
"dependencies": {
"@azure/ai-anomaly-detector": "next",
"@azure-rest/ai-anomaly-detector": "next",
"@azure/core-auth": "^1.3.0",
"csv-parse": "^5.3.0"
}
}
Instalar a biblioteca de clientes
Instale os pacotes npm necessários executando o seguinte no mesmo diretório do arquivo package.json:
npm install
Recuperar chave e ponto de extremidade
Para fazer uma chamada com sucesso no serviço Detector de Anomalias, você precisará dos seguintes valores:
Nome da variável | Valor |
---|---|
ANOMALY_DETECTOR_ENDPOINT |
Esse valor pode ser encontrado na seção Chaves & Ponto de Extremidade ao examinar o recurso no portal do Azure. Exemplo de ponto de extremidade: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/ |
ANOMALY_DETECTOR_API_KEY |
O valor da chave de API pode ser encontrado na seção Chaves e Ponto de extremidade ao examinar seu recurso no portal do Azure. Você pode usar KEY1 ou KEY2 . |
datapath |
Este início rápido usa o arquivo request-data.csv que pode ser baixado de nossos dados de amostra do GitHub. |
Acesse o seu recurso no portal do Azure. O Ponto de extremidade e as Chaves podem ser encontrados na seção Gerenciamento de recursos. Copie o ponto de extremidade e as chave de acesso, pois você precisará de ambos para autenticar suas chamadas à API. Você pode usar KEY1
ou KEY2
. Ter sempre duas chaves permite girar e regenerar chaves com segurança, sem causar interrupção de serviço.
Criar variáveis de ambiente
Crie e atribua variáveis de ambiente persistentes para sua chave e ponto de extremidade.
Importante
Se você usar uma chave de API, armazene-a com segurança em outro lugar, como no Azure Key Vault. Não inclua a chave da API diretamente no seu código e nunca a publique publicamente.
Para obter mais informações sobre a segurança dos serviços de IA, confira Autenticar solicitações para serviços de IA do Azure.
setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Baixar dados de exemplo
Este início rápido usa o arquivo request-data.csv
que pode ser baixado de nossos dados de amostra do GitHub
Você também pode baixar os dados de amostra executando:
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
Detectar anomalias
Crie um arquivo chamado index.js
e substitua pelo seguinte código:
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 };
Executar o aplicativo
Execute o aplicativo com o comando node
no seu arquivo de início rápido.
node index.js
Saída
Anomalies were detected from the series at index:
3
18
21
22
23
24
25
28
29
30
31
32
35
44
Compreensão dos resultados
No código acima, chamamos a API do Detector de Anomalias para detectar anomalias em toda a série temporal como um lote com o método detectEntireSeries() do cliente. Armazenamos o objeto AnomalyDetectorDetectEntireSeriesResponse retornado. Em seguida, iteramos a lista isAnomaly
da resposta e imprimimos o índice de quaisquer valores true
. Esses valores correspondem ao índice de pontos de dados anômalos, caso algum seja encontrado.
Limpar os recursos
Se você quiser limpar e remover um recurso do Detector de Anomalias, poderá excluir o recurso ou o grupo de recursos. Excluir o grupo de recursos também exclui todos os recursos associados a ele. Você também pode considerar excluir as variáveis de ambiente que você criou se não pretende mais usá-las.
Documentação de referência da biblioteca |Código-fonte da biblioteca | Pacote (PyPi) |Localize o código de exemplo no GitHub
Introdução à biblioteca de clientes do Detector de Anomalias para Python. Siga estas etapas para instalar o pacote e começar a usar os algoritmos fornecidos pelo serviço. O serviço Detector de Anomalias permite localizar anormalidades em seus dados de série temporal usando automaticamente os modelos de melhor ajuste, independentemente do setor, cenário ou volume de dados.
Use a biblioteca de cliente do Detector de Anomalias para Python para:
- Detectar anomalias em todo o seu conjunto de dados de série temporal, como uma solicitação em lote
- Detectar o status de anomalias do ponto de dados mais recente em sua série temporal
- Detectar pontos de alteração de tendência no conjunto de dados.
Pré-requisitos
- Uma assinatura do Azure – crie uma gratuitamente
- Python 3.x
- Biblioteca de análise de dados do Pandas
- Depois de obter sua assinatura do Azure, crie um recurso Detector de Anomalias no portal do Azure para obter a chave e o ponto de extremidade. Aguarde até que ele seja implantado e selecione o botão Ir para o recurso. Use o tipo de preço gratuito (
F0
) para experimentar o serviço e atualizar mais tarde para um nível pago para produção.
Configuração
Instalar a biblioteca de clientes. É possível instalar a biblioteca de clientes com:
pip install --upgrade azure.ai.anomalydetector
Recuperar chave e ponto de extremidade
Para fazer uma chamada com sucesso no serviço Detector de Anomalias, você precisará dos seguintes valores:
Nome da variável | Valor |
---|---|
ANOMALY_DETECTOR_ENDPOINT |
Esse valor pode ser encontrado na seção Chaves & Ponto de Extremidade ao examinar o recurso no portal do Azure. Exemplo de ponto de extremidade: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/ |
ANOMALY_DETECTOR_API_KEY |
O valor da chave de API pode ser encontrado na seção Chaves e Ponto de extremidade ao examinar seu recurso no portal do Azure. Você pode usar KEY1 ou KEY2 . |
DATA_PATH |
Este início rápido usa o arquivo request-data.csv que pode ser baixado de nossos dados de amostra do GitHub. Exemplo de caminho: c:\\test\\request-data.csv |
Acesse o seu recurso no portal do Azure. O Ponto de extremidade e as Chaves podem ser encontrados na seção Gerenciamento de recursos. Copie o ponto de extremidade e as chave de acesso, pois você precisará de ambos para autenticar suas chamadas à API. Você pode usar KEY1
ou KEY2
. Ter sempre duas chaves permite girar e regenerar chaves com segurança, sem causar interrupção de serviço.
Criar variáveis de ambiente
Crie e atribua variáveis de ambiente persistentes para sua chave e ponto de extremidade.
Importante
Se você usar uma chave de API, armazene-a com segurança em outro lugar, como no Azure Key Vault. Não inclua a chave da API diretamente no seu código e nunca a publique publicamente.
Para obter mais informações sobre a segurança dos serviços de IA, confira Autenticar solicitações para serviços de IA do Azure.
setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Baixar dados de exemplo
Este início rápido usa o arquivo request-data.csv
que pode ser baixado de nossos dados de amostra do GitHub
Você também pode baixar os dados de amostra executando:
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
Detectar anomalias
Criar um arquivo Python chamado quickstart.py. Depois, abra-o no editor ou IDE de sua preferência.
Substitua o conteúdo do arquivo quickstart.py pelo código a seguir. Modifique o código para adicionar os nomes das variáveis de ambiente para sua chave, ponto de extremidade e caminho de dados da série temporal:
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))
Importante
Para produção, use uma maneira segura de armazenar e acessar suas credenciais, como o Azure Key Vault. Para obter mais informações sobre segurança de credenciais, consulte o artigo segurança dos serviços de IA do Azure.
Executar o aplicativo com o comando
python
no arquivo de início rápidopython quickstart.py
Saída
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
Compreensão dos resultados
Em nosso código acima, chamamos a API Detector de Anomalias duas vezes. A primeira chamada verifica os pontos de alteração de tendência em nossa série de dados de exemplo com o método detect_change_point
. Essa chamada retorna um ChangePointDetectResponse
que armazenamos em uma variável que chamamos de change_point_request
. Em seguida, iteramos a lista is_change_point
da resposta e imprimimos o índice de quaisquer valores com um booleano de true
.
A segunda chamada verifica a série de dados de amostra inteira em busca de anomalias usando o método detect_entire_series
. Essa chamada retorna um EntireDetectResponse
que armazenamos em uma variável que chamamos de anomaly_response
. Nós iteramos pela lista is_anomaly
da resposta e imprimimos o índice de quaisquer valores com um booleano de true
. Como alternativa, poderíamos ter usado o método detect_last_point
, que é mais apropriado para detectar anomalias em dados em tempo real. Para saber mais, consulte o guia de práticas recomendadas.
Visualizar os resultados
Para visualizar as anomalias e os pontos de mudança em relação à série de dados de amostra, usaremos a popular biblioteca de código aberto matplotlib.
Instalar a biblioteca.
pip install matplotlib
Modifique seu arquivo quickstart.py com o seguinte código:
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()
Importante
Para produção, use uma maneira segura de armazenar e acessar suas credenciais, como o Azure Key Vault. Para obter mais informações sobre segurança de credenciais, confira o artigo segurança dos serviços de IA do Azure.
Executar o aplicativo com o comando
python
no arquivo de início rápidopython quickstart.py
Saída
Neste exemplo de código, adicionamos a biblioteca matplotlib
para nos permitir visualizar e distinguir facilmente pontos de dados normais de pontos de alteração e anomalias. Os pontos de mudança são representados por quadrados azuis, as anomalias são triângulos vermelhos e os pontos de dados normais são círculos verdes. As datas são convertidas em números usando o método date2num
de matplotlib
para fornecer valores amigáveis do gráfico para o eixo y dos gráficos.
Limpar os recursos
Se você quiser limpar e remover um recurso do Detector de Anomalias, poderá excluir o recurso ou o grupo de recursos. Excluir o grupo de recursos também exclui todos os recursos associados a ele. Você também pode considerar excluir as variáveis de ambiente que você criou se não pretende mais usá-las.
Neste início rápido, você aprende a detectar anomalias em um lote de dados de série temporal usando o serviço de Detector de Anomalias e o cURL.
Para obter uma visão de alto nível dos conceitos do Detector de Anomalias, confira o artigo de visão geral.
Pré-requisitos
- Uma assinatura do Azure – crie uma gratuitamente
- Depois de obter sua assinatura do Azure, crie um recurso Detector de Anomalias no portal do Azure para obter a chave e o ponto de extremidade. Aguarde até que ele seja implantado e selecione o botão Ir para o recurso. Use o tipo de preço gratuito (
F0
) para experimentar o serviço e atualizar mais tarde para um nível pago para produção. - Um arquivo JSON válido de dados de série temporal para testar se há anomalias. Se você não tiver seu próprio arquivo, poderá criar um arquivo sample.json a partir da amostra do corpo da solicitação
Recuperar chave e ponto de extremidade
Para fazer uma chamada com sucesso no serviço Detector de Anomalias, você precisará dos seguintes valores:
Nome da variável | Valor |
---|---|
ANOMALY_DETECTOR_ENDPOINT |
Esse valor pode ser encontrado na seção Chaves & Ponto de Extremidade ao examinar o recurso no portal do Azure. Exemplo de ponto de extremidade: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/ |
ANOMALY_DETECTOR_API_KEY |
O valor da chave de API pode ser encontrado na seção Chaves e Ponto de extremidade ao examinar seu recurso no portal do Azure. Você pode usar KEY1 ou KEY2 . |
Acesse o seu recurso no portal do Azure. O Ponto de extremidade e as Chaves podem ser encontrados na seção Gerenciamento de recursos. Copie o ponto de extremidade e as chave de acesso, pois você precisará de ambos para autenticar suas chamadas à API. Você pode usar KEY1
ou KEY2
. Ter sempre duas chaves permite girar e regenerar chaves com segurança, sem causar interrupção de serviço.
Criar variáveis de ambiente
Crie e atribua variáveis de ambiente persistentes para sua chave e ponto de extremidade.
Importante
Se você usar uma chave de API, armazene-a com segurança em outro lugar, como no Azure Key Vault. Não inclua a chave da API diretamente no seu código e nunca a publique publicamente.
Para obter mais informações sobre a segurança dos serviços de IA, confira Autenticar solicitações para serviços de IA do Azure.
setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Detectar anomalias
No prompt de comando, execute o comando a seguir. Você precisará inserir os seguintes valores no comando.
- A chave de assinatura do serviço de Detector de Anomalias.
- O endereço do ponto de extremidade do Detector de Anomalias.
- Um arquivo JSON válido de dados de série temporal para testar se há anomalias. Se você não tiver um arquivo próprio, poderá criar um arquivo sample.json com base no Exemplo de corpo da solicitação.
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"
Um exemplo do comando completo como uma única linha:
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"
Como alternativa, se você estiver executando o comando cURL de um shell bash, seu comando será um pouco diferente:
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"
Se você tiver usado os dados de exemplo dos pré-requisitos, deverá receber uma resposta 200 com estes resultados:
{
"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
}
Para obter mais informações, confira Referência REST da Detecção de Anomalias.
Limpar os recursos
Se quiser limpar e remover uma assinatura dos serviços de IA do Azure, você poderá excluir o recurso ou grupo de recursos. Excluir o grupo de recursos também exclui todos os recursos associados ao grupo de recursos.
Próximas etapas
Conceitos:
- O que é a API do Detector de Anomalias?
- Métodos de detecção de anomalias
- Melhores práticas ao usar a API do Detector de Anomalias.
Tutoriais: