A Machine Learning Studio (klasszikus) webszolgáltatás használata

ÉRVÉNYES:Ez egy pipa, ami azt jelenti, hogy ez a cikk a Machine Learning Studióra (klasszikus) vonatkozik. Machine Learning Studio (klasszikus) Ez egy X, ami azt jelenti, hogy ez a cikk az Azure Machine Learningre vonatkozik.Azure Machine Learning

Fontos

A (klasszikus) Machine Learning Studio támogatása 2024. augusztus 31-én megszűnik. Javasoljuk, hogy addig térjen át az Azure Machine Learning használatára.

2021. december 1-től kezdve nem fog tudni létrehozni új (klasszikus) Machine Learning Studio-erőforrásokat. 2024. augusztus 31-ig továbbra is használhatja a meglévő (klasszikus) Machine Learning Studio-erőforrásokat.

A (klasszikus) ML Studio dokumentációjának kivezetése folyamatban van, és a jövőben nem várható a frissítése.

Miután üzembe helyez egy Machine Learning Studio (klasszikus) prediktív modellt webszolgáltatásként, rest API-val elküldheti az adatokat, és előrejelzéseket kaphat. Az adatokat valós időben vagy kötegelt módban is elküldheti.

A Machine Learning Web Service a Machine Learning Studio (klasszikus) használatával történő létrehozásáról és üzembe helyezéséről itt talál további információt:

Áttekintés

A Machine Learning webszolgáltatással egy külső alkalmazás valós időben kommunikál egy Machine Learning-munkafolyamat pontozási modelljével. A Machine Learning Web Service-hívások előrejelzési eredményeket adnak vissza egy külső alkalmazásnak. Machine Learning Web Service-hívás indításához át kell adnia egy API-kulcsot, amely egy előrejelzés üzembe helyezésekor jön létre. A Machine Learning webszolgáltatás a REST-en alapul, amely népszerű architektúra webprogramozási projektekhez.

A Machine Learning Studio (klasszikus) kétféle szolgáltatással rendelkezik:

  • Request-Response Service (RRS) – Alacsony késésű, nagy mértékben méretezhető szolgáltatás, amely interfészt biztosít a Machine Learning Studióból létrehozott és üzembe helyezett állapot nélküli modellekhez (klasszikus).
  • Batch Execution Service (BES) – Aszinkron szolgáltatás, amely az adatrekordok kötegét pontja.

A Machine Learning webszolgáltatásokkal kapcsolatos további információkért lásd: Machine Learning-webszolgáltatás üzembe helyezése.

Engedélyezési kulcs lekérése

A kísérlet üzembe helyezésekor a rendszer API-kulcsokat hoz létre a webszolgáltatáshoz. A kulcsokat több helyről is lekérheti.

A Machine Learning Web Services portálról

Jelentkezzen be a Machine Learning Web Services portálra.

Új Machine Learning-webszolgáltatás API-kulcsának lekérése:

  1. A Machine Learning Web Services portálon kattintson a WebSzolgáltatások elemre a felső menüben.
  2. Kattintson arra a webszolgáltatásra, amelyhez le szeretné kérni a kulcsot.
  3. A felső menüben kattintson a Felhasználás gombra.
  4. Másolja és mentse az elsődleges kulcsot.

Klasszikus Machine Learning-webszolgáltatás API-kulcsának lekérése:

  1. Az Azure Machine Learning Web Services portálon kattintson a klasszikus webszolgáltatások elemre a felső menüben.
  2. Kattintson arra a webszolgáltatásra, amellyel dolgozik.
  3. Kattintson arra a végpontra, amelyhez le szeretné kérni a kulcsot.
  4. A felső menüben kattintson a Felhasználás gombra.
  5. Másolja és mentse az elsődleges kulcsot.

Klasszikus webszolgáltatás

A klasszikus webszolgáltatások kulcsát a Machine Learning Studióból (klasszikus) is lekérheti.

Machine Learning Studio (klasszikus)

  1. A (klasszikus) Machine Learning Studióban kattintson a webszolgáltatások elemre a bal oldalon.
  2. Kattintson egy webszolgáltatásra. Az API-kulcs az IRÁNYÍTÓPULT lapon található.

Csatlakozás Machine Learning-webszolgáltatáshoz

A Machine Learning Web Service-hez bármilyen olyan programozási nyelvvel csatlakozhat, amely támogatja a HTTP-kéréseket és -válaszokat. A Példák c#, Python és R nyelven a Machine Learning Web Service súgóoldaláról tekinthetők meg.

A Machine Learning API súgója A Machine Learning API súgója webszolgáltatás üzembe helyezésekor jön létre. Lásd a 3. oktatóanyagot: Hitelkockázati modell üzembe helyezése. A Machine Learning API súgója az előrejelzési webszolgáltatás részleteit tartalmazza.

  1. Kattintson arra a webszolgáltatásra, amellyel dolgozik.
  2. Kattintson arra a végpontra, amelynek az API súgóoldalát meg szeretné tekinteni.
  3. A felső menüben kattintson a Felhasználás gombra.
  4. Kattintson az API súgóoldalára a Request-Response vagy a Batch végrehajtási végpontjai alatt.

A Machine Learning API súgójának megtekintése új webszolgáltatáshoz

A Machine Learning Web Services portálon:

  1. Kattintson a WEBSZOLGÁLTATÁSOK elemre a felső menüben.
  2. Kattintson arra a webszolgáltatásra, amelyhez le szeretné kérni a kulcsot.

Kattintson a Webszolgáltatás használata elemre a Request-Response és a Batch Végrehajtási szolgáltatások URI-jának, valamint a C#, R és Python-mintakód URI-jának lekéréséhez.

Kattintson a Swagger API-ra a megadott URI-kból meghívott API-k Swagger-alapú dokumentációjának lekéréséhez.

C# minta

A Machine Learning Web Service-hez való csatlakozáshoz használjon httpClient-átadási ScoreData-t. A ScoreData tartalmaz egy FeatureVectort, amely numerikus jellemzők n dimenziós vektora, amely a ScoreData-t jelöli. Egy API-kulccsal hitelesítheti magát a Machine Learning szolgáltatásban.

A Machine Learning Web Service-hez való csatlakozáshoz telepíteni kell a Microsoft.AspNet.WebApi.Client NuGet-csomagot.

A Microsoft.AspNet.WebApi.Client NuGet telepítése a Visual Studióban

  1. Tegye közzé a Download adathalmazt az UCI: Adult 2 osztály adathalmaz webszolgáltatásából.
  2. Kattintson az Eszközök>NuGet-csomagkezelő csomagkezelő>konzoljára.
  3. Válassza az Install-Package Microsoft.AspNet.WebApi.Client elemet.

A kódminta futtatása

  1. A Machine Learning-mintagyűjtemény részeként tegye közzé az "1. minta: Adathalmaz letöltése az UCI- ból: Felnőtt 2. osztály adathalmazból" kísérletet.
  2. ApiKey hozzárendelése a kulccsal egy webszolgáltatásból. Lásd a fenti engedélyezési kulcs lekérése című témakört .
  3. ServiceUri hozzárendelése a kérelem URI-jával.

Így fog kinézni egy teljes kérelem.

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

Python-minta

A Machine Learning Web Service-hez való csatlakozáshoz használja a Python 2.X urllib2 kódtárát és a Python 3.X urllib.request kódtárát. Át fogja adni a ScoreData-t, amely egy FeatureVectort, egy numerikus jellemzők n dimenziós vektorát tartalmazza, amely a ScoreData-t jelöli. Egy API-kulccsal hitelesítheti magát a Machine Learning szolgáltatásban.

A kódminta futtatása

  1. Helyezze üzembe az "1. minta: Adathalmaz letöltése az UCI- ból: Felnőtt 2. osztály adathalmaz" kísérletét, amely a Machine Learning-mintagyűjtemény része.
  2. ApiKey hozzárendelése a kulccsal egy webszolgáltatásból. Lásd a cikk elején található Engedélyezési kulcs lekérése című szakaszt.
  3. ServiceUri hozzárendelése a kérelem URI-jával.

Így fog kinézni egy teljes kérelem.

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

R-minta

A Machine Learning Web Service-hez való csatlakozáshoz használja az RCurl - és rjson-kódtárakat a kérés létrehozásához és a visszaadott JSON-válasz feldolgozásához. Át fogja adni a ScoreData-t, amely egy FeatureVectort, egy numerikus jellemzők n dimenziós vektorát tartalmazza, amely a ScoreData-t jelöli. Egy API-kulccsal hitelesítheti magát a Machine Learning szolgáltatásban.

Így fog kinézni egy teljes kérelem.

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)

JavaScript-minta

A Machine Learning Web Service-hez való csatlakozáshoz használja a projekt npm-csomagjának kérését . Az objektummal JSON formázhatja a bemenetet, és elemezheti az eredményt. Telepítse a package.json használatával npm install request --save, vagy adja hozzá "request": "*" a package.json fájlhoz, dependencies és futtassa npm install.

Így fog kinézni egy teljes kérelem.

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