Cara menggunakan layanan web Azure Machine Learning Studio (klasik)

BERLAKU UNTUK:Ini adalah tanda centang yang berarti bahwa artikel ini berlaku untuk Azure Machine Learning Studio (klasik). Azure Machine Learning Studio (klasik) Ini adalah X yang berarti bahwa artikel ini berlaku untuk Azure Machine Learning.Azure Machine Learning

Penting

Dukungan untuk Studio Azure Machine Learning (klasik) akan berakhir pada 31 Agustus 2024. Sebaiknya Anda transisi ke Azure Machine Learning sebelum tanggal tersebut.

Mulai 1 Desember 2021, Anda tidak akan dapat membuat sumber daya Studio Azure Machine Learning (klasik) baru. Hingga 31 Agustus 2024, Anda dapat terus menggunakan sumber daya Pembelajaran Mesin Studio (klasik) yang ada.

ML Dokumentasi Studio (klasik) sedang berhenti dan mungkin tidak diperbarui di masa mendatang.

Setelah Anda menerapkan model prediktif Machine Learning Studio (klasik) sebagai layanan Web, Anda dapat menggunakan REST API untuk mengirimkan data dan mendapatkan prediksi. Anda dapat mengirim data secara real time atau dalam mode batch.

Anda dapat menemukan informasi selengkapnya tentang cara membuat dan menyebarkan layanan web Azure Machine Learning menggunakan Azure Machine Learning Studio (klasik) di sini:

Gambaran Umum

Dengan layanan Web Machine Learning, aplikasi eksternal berkomunikasi dengan model penilaian alur kerja Machine Learning secara real time. Panggilan Layanan web Azure Machine Learning mengembalikan hasil prediksi ke aplikasi eksternal. Untuk melakukan panggilan Layanan web Azure Machine Learning, Anda melewati kunci API yang dibuat saat Anda menyebarkan prediksi. Layanan web Azure Machine Learning didasarkan REST, pada pilihan arsitektur populer untuk proyek pemrograman web.

Machine Learning Studio (klasik) memiliki dua jenis layanan:

  • Request-Response Service (RRS) – Layanan latensi rendah dan sangat mampu diskalakan yang menyediakan antarmuka untuk model stateless yang dibuat dan disebarkan dari Azure Machine Learning Studio (klasik).
  • Batch Execution Service (BES): Layanan asinkron yang mencetak batch untuk rekaman data.

Untuk informasi selengkapnya tentang layanan web Azure Machine Learning, lihat Sebarkan layanan web Azure Machine Learning.

Dapatkan kode otorisasi

Saat Anda menerapkan eksperimen, kunci API dibuat untuk layanan Web. Anda dapat mengambil kunci dari beberapa lokasi.

Dari portal Layanan Web Machine Learning

Masuk ke portal Layanan Web Machine Learning.

Untuk mengambil kunci API untuk layanan Web Azure Machine Learning Baru:

  1. Di portal Layanan Web Machine Learning, klik Layanan Web di bagian atas menu.
  2. Klik Layanan web yang ingin Anda ambil kuncinya.
  3. Pada menu atas, klik Pakai.
  4. Salin dan simpan Kunci Primer.

Untuk mengambil kunci API untuk Klasik Layanan web Machine Learning Baru:

  1. Di portal Layanan Web Azure Machine Learning, klik Layanan Web Klasik di bagian atas menu.
  2. Klik Layanan web tempat Anda bekerja.
  3. Klik titik akhir yang ingin Anda ambil kuncinya.
  4. Pada menu atas, klik Pakai.
  5. Salin dan simpan Kunci Primer.

Layanan Web Klasik

Anda juga dapat mengambil kunci untuk Layanan web Klasik dari Azure Machine Learning Studio (klasik).

Azure Machine Learning Studio (klasik)

  1. Di Studio Azure Machine Learning (klasik), klik LAYANAN WEB di sebelah kiri.
  2. Klik layanan Web. Kunci API ada di tab DASBOR.

Sambungkan ke Layanan Web Azure Machine Learning

Anda dapat terhubung ke layanan Web Azure Machine Learning menggunakan bahasa pemrograman apa pun yang mendukung permintaan dan respons HTTP. Anda dapat melihat sampel di C#, Python, dan R dari halaman bantuan layanan Web Azure Machine Learning.

Bantuan API Azure Machine Learning Bantuan API Azure Machine Learning dibuat saat Anda menyebarkan layanan Web. Lihat Tutorial 3: Sebarkan model risiko kredit. Bantuan API Azure Machine Learning berisi detail tentang layanan Web prediksi.

  1. Klik Layanan web tempat Anda bekerja.
  2. Klik titik akhir yang ingin Anda lihat Halaman Bantuan API.
  3. Pada menu atas, klik Pakai.
  4. Klik halaman bantuan API di bawah titik akhir Request-Response atau Eksekusi Batch.

Untuk melihat bantuan API Azure Machine Learning untuk layanan Web Baru

Di Portal Layanan Web Machine Learning:

  1. Klik LAYANAN WEB di menu atas.
  2. Klik Layanan web yang ingin Anda ambil kuncinya.

Klik Gunakan Layanan Web untuk mendapatkan URI untuk Layanan eksekusi Request-Response dan Batch dan Kode sampel di C#, R, dan Python.

Klik Swagger API untuk mendapatkan dokumentasi berbasis Swagger untuk API yang dipanggil dari URI yang disediakan.

Sampel C#

Untuk menyambungkan ke layanan Web Azure Machine Learning, gunakan HttpClient yang melewati ScoreData. ScoreData berisi FeatureVector, vektor n-dimensi fitur numerik yang mewakili ScoreData. Anda mengautentikasi ke Azure Machine Learning service dengan kunci API.

Untuk menyambungkan ke layanan Web Azure Machine Learning, paket NuGet Microsoft.AspNet.WebApi.Client harus diinstal.

Pasang Microsoft.AspNet.WebApi.Client NuGet di Visual Studio

  1. Terbitkan himpunan data Pengunduhan dari UCI: Layanan Web himpunan data kelas Adult 2.
  2. Klik Alat>NuGet Package Manager>Package Manager Console.
  3. Pilih Install-Package Microsoft.AspNet.WebApi.Client.

Menjalankan sampel kode

  1. Terbitkan eksperimen "Sampel 1: Unduh himpunan data dari UCI: Adult 2 class dataset", bagian dari kumpulan sampel Azure Machine Learning.
  2. Tetapkan apiKey dengan kunci dari Layanan web. Lihat Dapatkan kunci otorisasi di atas.
  3. Tetapkan serviceUri dengan Permintaan URI.

Berikut adalah tampilan permintaan lengkap.

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

Sampel Python

Untuk menyambungkan ke layanan web Azure Machine Learning, gunakan pustaka urllib2 untuk Python 2.X dan pustaka urllib.request untuk Python 3.X. Anda akan lulus ScoreData, yang berisi FeatureVector, vektor n-dimensi fitur numerik yang mewakili ScoreData. Anda mengautentikasi ke Azure Machine Learning service dengan kunci API.

Menjalankan sampel kode

  1. Sebarkan eksperimen "Sampel 1: Unduh himpunan data dari UCI: Adult 2 class dataset", bagian dari kumpulan sampel Azure Machine Learning.
  2. Tetapkan apiKey dengan kunci dari Layanan web. Lihat bagian Dapatkan kunci otorisasi di dekat awal artikel ini.
  3. Tetapkan serviceUri dengan Permintaan URI.

Berikut adalah tampilan permintaan lengkap.

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-sampel

Untuk menyambungkan ke Layanan Web Azure Machine Learning, gunakan pustaka RCurl dan rjson untuk membuat permintaan dan memproses respons JSON yang dikembalikan. Anda akan lulus ScoreData, yang berisi FeatureVector, vektor n-dimensi fitur numerik yang mewakili ScoreData. Anda mengautentikasi ke Azure Machine Learning service dengan kunci API.

Berikut adalah tampilan permintaan lengkap.

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)

Sampel JavaScript

Untuk menyambungkan ke Layanan Web Azure Machine Learning, gunakan paket ermintaan npm di proyek Anda. Anda juga akan menggunakan JSON objek untuk memformat input Anda dan mengurai hasilnya. Pasang menggunakan npm install request --save, atau tambahkan "request": "*" ke package.json Anda didependencies dan jalankan npm install.

Berikut adalah tampilan permintaan lengkap.

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