Udostępnij za pośrednictwem


Jak korzystać z usługi internetowej Machine Learning Studio (klasycznej)

DOTYCZY:Jest to znacznik wyboru, co oznacza, że ten artykuł dotyczy usługi Machine Learning Studio (klasycznej). Machine Learning Studio (wersja klasyczna) To jest X, co oznacza, że ten artykuł dotyczy usługi Azure Machine Learning.Azure Machine Learning

Ważne

Obsługa programu Machine Learning Studio (wersja klasyczna) zakończy się 31 sierpnia 2024 r. Zalecamy przejście do usługi Azure Machine Learning przed tym terminem.

Od 1 grudnia 2021 r. nie będzie można tworzyć nowych zasobów programu Machine Learning Studio (wersja klasyczna). Do 31 sierpnia 2024 r. można będzie nadal korzystać z istniejących zasobów programu Machine Learning Studio (wersja klasyczna).

Dokumentacja programu ML Studio (wersja klasyczna) jest wycofywana i może nie być aktualizowana w przyszłości.

Po wdrożeniu modelu predykcyjnego usługi Machine Learning Studio (klasycznej) jako usługi internetowej możesz użyć interfejsu API REST do wysyłania danych i uzyskiwania przewidywań. Dane można wysyłać w czasie rzeczywistym lub w trybie wsadowym.

Więcej informacji na temat tworzenia i wdrażania usługi sieci Web Machine Learning przy użyciu usługi Machine Learning Studio (klasycznej) można znaleźć tutaj:

Omówienie

Dzięki usłudze sieci Web Machine Learning aplikacja zewnętrzna komunikuje się z modelem oceniania przepływu pracy usługi Machine Learning w czasie rzeczywistym. Wywołanie usługi sieci Web Machine Learning zwraca wyniki przewidywania do aplikacji zewnętrznej. Aby wykonać wywołanie usługi sieci Web Machine Learning, należy przekazać klucz interfejsu API tworzony podczas wdrażania przewidywania. Usługa sieci Web Machine Learning jest oparta na protokole REST, popularnym wyborem architektury dla projektów programowania internetowego.

Usługa Machine Learning Studio (klasyczna) ma dwa typy usług:

  • Request-Response Service (RRS) — usługa o małym opóźnieniu, wysoce skalowalna, która zapewnia interfejs do modeli bezstanowych utworzonych i wdrożonych z poziomu usługi Machine Learning Studio (klasycznej).
  • Usługa wykonywania wsadowego (BES) — usługa asynchroniczna, która ocenia partię rekordów danych.

Aby uzyskać więcej informacji na temat usług sieci Web Machine Learning, zobacz Deploy a Machine Learning Web Service (Wdrażanie usługi sieci Web Machine Learning).

Uzyskiwanie klucza autoryzacji

Podczas wdrażania eksperymentu klucze interfejsu API są generowane dla usługi internetowej. Klucze można pobrać z kilku lokalizacji.

Z poziomu portalu usług sieci Web Machine Learning

Zaloguj się do portalu usług sieci Web Machine Learning .

Aby pobrać klucz interfejsu API dla nowej usługi sieci Web Machine Learning:

  1. W portalu usług sieci Web Machine Learning kliknij pozycję Usługi sieci Web w górnym menu.
  2. Kliknij usługę sieci Web, dla której chcesz pobrać klucz.
  3. W górnym menu kliknij pozycję Zużyj.
  4. Skopiuj i zapisz klucz podstawowy.

Aby pobrać klucz interfejsu API dla klasycznej usługi sieci Web Machine Learning:

  1. W portalu usług sieci Web Azure Machine Learning kliknij pozycję Klasyczne usługi sieci Web w górnym menu.
  2. Kliknij usługę sieci Web, z którą pracujesz.
  3. Kliknij punkt końcowy, dla którego chcesz pobrać klucz.
  4. W górnym menu kliknij pozycję Zużyj.
  5. Skopiuj i zapisz klucz podstawowy.

Klasyczna usługa sieci Web

Możesz również pobrać klucz klasycznej usługi internetowej z usługi Machine Learning Studio (wersja klasyczna).

Usługa Machine Learning Studio (klasyczna)

  1. W usłudze Machine Learning Studio (wersja klasyczna) kliknij pozycję USŁUGI INTERNETOWE po lewej stronie.
  2. Kliknij usługę sieci Web. Klucz interfejsu API znajduje się na karcie PULPIT NAWIGACYJNY.

Nawiązywanie połączenia z usługą sieci Web Machine Learning

Możesz nawiązać połączenie z usługą sieci Web Machine Learning przy użyciu dowolnego języka programowania obsługującego żądania HTTP i odpowiedzi. Przykłady można wyświetlić w językach C#, Python i R na stronie pomocy usługi sieci Web Machine Learning.

Pomoc interfejsu API usługi Machine Learning Pomoc interfejsu API usługi Machine Learning jest tworzona podczas wdrażania usługi internetowej. Zobacz Samouczek 3: wdrażanie modelu ryzyka kredytowego. Pomoc interfejsu API usługi Machine Learning zawiera szczegółowe informacje o usłudze internetowej przewidywania.

  1. Kliknij usługę sieci Web, z którą pracujesz.
  2. Kliknij punkt końcowy, dla którego chcesz wyświetlić stronę Pomocy interfejsu API.
  3. W górnym menu kliknij pozycję Zużyj.
  4. Kliknij stronę pomocy interfejsu API w obszarze Request-Response lub punktów końcowych wykonywania usługi Batch.

Aby wyświetlić pomoc interfejsu API usługi Machine Learning dla nowej usługi sieci Web

W portalu usług sieci Web Machine Learning:

  1. Kliknij pozycję USŁUGI INTERNETOWE w górnym menu.
  2. Kliknij usługę sieci Web, dla której chcesz pobrać klucz.

Kliknij pozycję Użyj usługi internetowej , aby pobrać identyfikatory URI dla usług Request-Response i Batch Execution Services oraz przykładowy kod w językach C#, R i Python.

Kliknij pozycję Interfejs API struktury Swagger , aby uzyskać dokumentację opartą na strukturze Swagger dla interfejsów API wywoływanych z podanych identyfikatorów URI.

Przykład w języku C#

Aby nawiązać połączenie z usługą sieci Web Machine Learning, użyj obiektu ScoreData z przekazywaniem elementu HttpClient . ScoreData zawiera Element FeatureVector, nwymiarowy wektor cech liczbowych, który reprezentuje scoreData. Uwierzytelniasz się w usłudze Machine Learning przy użyciu klucza interfejsu API.

Aby nawiązać połączenie z usługą sieci Web Machine Learning, należy zainstalować pakiet NuGet Microsoft.AspNet.WebApi.Client .

Instalowanie pakietu NuGet Microsoft.AspNet.WebApi.Client w programie Visual Studio

  1. Opublikuj zestaw danych Pobierania z uci: zestaw danych dla dorosłych 2 klasy Usługa sieci Web.
  2. Kliknij pozycję Narzędzia>Konsola menedżera pakietówNuGet Package Manager>.
  3. Wybierz pozycję Install-Package Microsoft.AspNet.WebApi.Client.

Aby uruchomić przykładowy kod

  1. Publikowanie eksperymentu "Sample 1: Download dataset from UCI: Adult 2 class dataset" (Przykład 1: pobieranie zestawu danych z uci: zestaw danych klasy dla dorosłych), część kolekcji przykładów usługi Machine Learning.
  2. Przypisz wartość apiKey przy użyciu klucza z usługi internetowej. Zobacz Temat Uzyskiwanie klucza autoryzacji powyżej.
  3. Przypisz identyfikator serviceUri za pomocą identyfikatora URI żądania.

Oto jak będzie wyglądać pełne żądanie.

using System;
using System.Collections.Generic;
using System.IO;
using System.Net.Http;
using System.Net.Http.Formatting;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;

namespace CallRequestResponseService
{
    class Program
    {
        static void Main(string[] args)
        {
            InvokeRequestResponseService().Wait();
        }

        static async Task InvokeRequestResponseService()
        {
            using (var client = new HttpClient())
            {
                var scoreRequest = new
                {
                    Inputs = new Dictionary<string, List<Dictionary<string, string>>> () {
                        {
                            "input1",
                            // Replace columns labels with those used in your dataset
                            new List<Dictionary<string, string>>(){new Dictionary<string, string>(){
                                    {
                                        "column1", "value1"
                                    },
                                    {
                                        "column2", "value2"
                                    },
                                    {
                                        "column3", "value3"
                                    }
                                }
                            }
                        },
                    },
                    GlobalParameters = new Dictionary<string, string>() {}
                };

                // Replace these values with your API key and URI found on https://services.azureml.net/
                const string apiKey = "<your-api-key>"; 
                const string apiUri = "<your-api-uri>";
                
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue( "Bearer", apiKey);
                client.BaseAddress = new Uri(apiUri);

                // WARNING: The 'await' statement below can result in a deadlock
                // if you are calling this code from the UI thread of an ASP.NET application.
                // One way to address this would be to call ConfigureAwait(false)
                // so that the execution does not attempt to resume on the original context.
                // For instance, replace code such as:
                //      result = await DoSomeTask()
                // with the following:
                //      result = await DoSomeTask().ConfigureAwait(false)

                HttpResponseMessage response = await client.PostAsJsonAsync("", scoreRequest);

                if (response.IsSuccessStatusCode)
                {
                    string result = await response.Content.ReadAsStringAsync();
                    Console.WriteLine("Result: {0}", result);
                }
                else
                {
                    Console.WriteLine(string.Format("The request failed with status code: {0}", response.StatusCode));

                    // Print the headers - they include the request ID and the timestamp,
                    // which are useful for debugging the failure
                    Console.WriteLine(response.Headers.ToString());

                    string responseContent = await response.Content.ReadAsStringAsync();
                    Console.WriteLine(responseContent);
                }
            }
        }
    }
}

Przykładowy język Python

Aby nawiązać połączenie z usługą sieci Web Machine Learning, użyj biblioteki urllib2 dla języka Python 2.X i biblioteki urllib.request dla języka Python 3.X. Przekażesz element ScoreData, który zawiera element FeatureVector, nwymiarowy wektor cech liczbowych, który reprezentuje WynikData. Uwierzytelniasz się w usłudze Machine Learning przy użyciu klucza interfejsu API.

Aby uruchomić przykładowy kod

  1. Wdróż eksperyment "Sample 1: Download dataset from UCI: Adult 2 class dataset" (Przykład 1: pobieranie zestawu danych z uci: zestaw danych klasy dla dorosłych), część kolekcji przykładów usługi Machine Learning.
  2. Przypisz wartość apiKey przy użyciu klucza z usługi internetowej. Zobacz sekcję Pobieranie klucza autoryzacji na początku tego artykułu.
  3. Przypisz identyfikator serviceUri za pomocą identyfikatora URI żądania.

Oto jak będzie wyglądać pełne żądanie.

import urllib2 # urllib.request and urllib.error for Python 3.X
import json

data = {
    "Inputs": {
        "input1":
        [
            {
                'column1': "value1",   
                'column2': "value2",   
                'column3': "value3"
            }
        ],
    },
    "GlobalParameters":  {}
}

body = str.encode(json.dumps(data))

# Replace this with the URI and API Key for your web service
url = '<your-api-uri>'
api_key = '<your-api-key>'
headers = {'Content-Type':'application/json', 'Authorization':('Bearer '+ api_key)}

# "urllib.request.Request(url, body, headers)" for Python 3.X
req = urllib2.Request(url, body, headers)

try:
    # "urllib.request.urlopen(req)" for Python 3.X
    response = urllib2.urlopen(req)

    result = response.read()
    print(result)
# "urllib.error.HTTPError as error" for Python 3.X
except urllib2.HTTPError, error: 
    print("The request failed with status code: " + str(error.code))

    # Print the headers - they include the request ID and the timestamp, which are useful for debugging the failure
    print(error.info())
    print(json.loads(error.read())) 

Przykład języka R

Aby nawiązać połączenie z usługą sieci Web Machine Learning, użyj bibliotek RCurl i rjson , aby wysłać żądanie i przetworzyć zwróconą odpowiedź JSON. Przekażesz element ScoreData, który zawiera element FeatureVector, nwymiarowy wektor cech liczbowych, który reprezentuje WynikData. Uwierzytelniasz się w usłudze Machine Learning przy użyciu klucza interfejsu API.

Oto jak będzie wyglądać pełne żądanie.

library("curl")
library("httr")
library("rjson")

requestFailed = function(response) {
    return (response$status_code >= 400)
}

printHttpResult = function(response, result) {
    if (requestFailed(response)) {
        print(paste("The request failed with status code:", response$status_code, sep=" "))
    
        # Print the headers - they include the request ID and the timestamp, which are useful for debugging the failure
        print(response$headers)
    }
    
    print("Result:") 
    print(fromJSON(result))  
}

req = list(
        Inputs = list( 
            "input1" = list(
                "ColumnNames" = list("Col1", "Col2", "Col3"),
                "Values" = list( list( "0", "value", "0" ),  list( "0", "value", "0" )  )
            )                ),
        GlobalParameters = setNames(fromJSON('{}'), character(0))
)

body = enc2utf8(toJSON(req))
api_key = "abc123" # Replace this with the API key for the web service
authz_hdr = paste('Bearer', api_key, sep=' ')

response = POST(url= "<your-api-uri>",
        add_headers("Content-Type" = "application/json", "Authorization" = authz_hdr),
        body = body)

result = content(response, type="text", encoding="UTF-8")

printHttpResult(response, result)

Przykład w języku JavaScript

Aby nawiązać połączenie z usługą sieci Web Machine Learning, użyj pakietu npm żądania w projekcie. Użyjesz również JSON obiektu , aby sformatować dane wejściowe i przeanalizować wynik. Zainstaluj plik przy użyciu polecenia npm install request --savelub dodaj "request": "*" go do pliku package.json w obszarze dependencies i uruchom polecenie npm install.

Oto jak będzie wyglądać pełne żądanie.

let req = require("request");

const uri = "<your-api-uri>";
const apiKey = "<your-api-key>";

let data = {
    "Inputs": {
        "input1":
        [
            {
                'column1': "value1",
                'column2': "value2",
                'column3': "value3"
            }
        ],
    },
    "GlobalParameters": {}
}

const options = {
    uri: uri,
    method: "POST",
    headers: {
        "Content-Type": "application/json",
        "Authorization": "Bearer " + apiKey,
    },
    body: JSON.stringify(data)
}

req(options, (err, res, body) => {
    if (!err && res.statusCode == 200) {
        console.log(body);
    } else {
        console.log("The request failed with status code: " + res.statusCode);
    }
});