Machine Learning Studio (klasik) web hizmetini kullanma

ŞUNUN IÇIN GEÇERLIDIR:Bu bir onay işaretidir; bu, bu makaleNin Machine Learning Studio (klasik) için geçerli olduğu anlamına gelir. Machine Learning Studio (klasik) Bu bir X'tir, yani bu makale Azure Machine Learning için geçerlidir.Azure Machine Learning

Önemli

Machine Learning Stüdyosu (klasik) desteği 31 Ağustos 2024'te sona erecektir. Bu tarihe kadar Azure Machine Learning'e geçmenizi öneririz.

1 Aralık 2021'den başlayarak artık yeni Machine Learning Stüdyosu (klasik) kaynakları oluşturamayacaksınız. 31 Ağustos 2024'e kadar mevcut Machine Learning Stüdyosu (klasik) kaynaklarını kullanmaya devam edebilirsiniz.

ML Stüdyosu (klasik) belgeleri kullanımdan kaldırılacak ve gelecekte güncelleştirilmeyecektir.

Bir Machine Learning Studio (klasik) tahmine dayalı modeli web hizmeti olarak dağıttığınızda, veri göndermek ve tahminler almak için REST API kullanabilirsiniz. Verileri gerçek zamanlı olarak veya toplu iş modunda gönderebilirsiniz.

Machine Learning Studio (klasik) kullanarak Machine Learning Web hizmeti oluşturma ve dağıtma hakkında daha fazla bilgiyi burada bulabilirsiniz:

Genel Bakış

Machine Learning Web hizmeti ile dış uygulama, Machine Learning iş akışı puanlama modeliyle gerçek zamanlı olarak iletişim kurar. Machine Learning Web hizmeti çağrısı, tahmin sonuçlarını bir dış uygulamaya döndürür. Machine Learning Web hizmeti çağrısı yapmak için bir tahmin dağıttığınızda oluşturulan bir API anahtarını geçirirsiniz. Machine Learning Web hizmeti, web programlama projeleri için popüler bir mimari seçimi olan REST'i temel alır.

Machine Learning Studio 'nun (klasik) iki hizmet türü vardır:

  • Request-Response Hizmeti (RRS): Machine Learning Studio'dan (klasik) oluşturulan ve dağıtılan durum bilgisi olmayan modellere arabirim sağlayan düşük gecikme süreli, yüksek oranda ölçeklenebilir bir hizmettir.
  • Batch Execution Service (BES) – Veri kayıtları için toplu iş puanlayan zaman uyumsuz bir hizmet.

Machine Learning Web hizmetleri hakkında daha fazla bilgi için bkz. Machine Learning Web hizmeti dağıtma.

Yetkilendirme anahtarı alma

Denemenizi dağıttığınızda, Web hizmeti için API anahtarları oluşturulur. Anahtarları birkaç konumdan alabilirsiniz.

Machine Learning Web Hizmetleri portalından

Machine Learning Web Hizmetleri portalında oturum açın.

Yeni Machine Learning Web hizmetinin API anahtarını almak için:

  1. Machine Learning Web Hizmetleri portalında üstteki menüden Web Hizmetleri'ne tıklayın.
  2. Anahtarını almak istediğiniz Web hizmetine tıklayın.
  3. Üstteki menüde Tüket'e tıklayın.
  4. Birincil Anahtarı kopyalayın ve kaydedin.

Klasik Machine Learning Web hizmetinin API anahtarını almak için:

  1. Azure Machine Learning Web Hizmetleri portalında üstteki menüde Klasik Web Hizmetleri'ne tıklayın.
  2. Üzerinde çalıştığınız Web hizmetine tıklayın.
  3. Anahtarını almak istediğiniz uç noktaya tıklayın.
  4. Üstteki menüde Tüket'e tıklayın.
  5. Birincil Anahtarı kopyalayın ve kaydedin.

Klasik Web hizmeti

Ayrıca Machine Learning Studio'dan (klasik) Klasik Web hizmeti için bir anahtar da alabilirsiniz.

Machine Learning Studio (klasik)

  1. Machine Learning Studio'da (klasik), soldaki WEB HİzMETLerİ'ne tıklayın.
  2. Bir Web hizmetine tıklayın. API anahtarıPANO sekmesindedir.

Machine Learning Web hizmetine bağlanma

HTTP isteğini ve yanıtlarını destekleyen herhangi bir programlama dilini kullanarak bir Machine Learning Web hizmetine bağlanabilirsiniz. C#, Python ve R'deki örnekleri bir Machine Learning Web hizmeti yardım sayfasından görüntüleyebilirsiniz.

Machine Learning API yardımı Bir Web hizmeti dağıttığınızda Machine Learning API yardımı oluşturulur. Bkz . Öğretici 3: Kredi riski modelini dağıtma. Machine Learning API'sinin yardımı, tahmin Web hizmeti hakkındaki ayrıntıları içerir.

  1. Üzerinde çalıştığınız Web hizmetine tıklayın.
  2. API Yardım Sayfasını görüntülemek istediğiniz uç noktaya tıklayın.
  3. Üstteki menüde Tüket'e tıklayın.
  4. Request-Response veya Toplu Yürütme uç noktalarının altında API yardım sayfasına tıklayın.

Yeni Web hizmeti için Machine Learning API yardımlarını görüntülemek için

Machine Learning Web Hizmetleri Portalı'nda:

  1. Üstteki menüde WEB HİzMETLerİ'ne tıklayın.
  2. Anahtarını almak istediğiniz Web hizmetine tıklayın.

C#, R ve Python'da Request-Response ve Batch Yürütme Hizmetleri ile Örnek kodun URI'lerini almak için Web Hizmetini Kullan'a tıklayın.

Sağlanan URI'lerden çağrılan API'ler için Swagger tabanlı belgeler almak için Swagger API'sine tıklayın.

C# Örneği

Bir Machine Learning Web hizmetine bağlanmak için ScoreData geçiren bir HttpClient kullanın. ScoreData, ScoreData'yı temsil eden sayısal özelliklerden oluşan n boyutlu bir vektör olan FeatureVector içerir. Bir API anahtarıyla Machine Learning hizmetinde kimlik doğrulaması yaparsınız.

Bir Machine Learning Web hizmetine bağlanmak için Microsoft.AspNet.WebApi.Client NuGet paketi yüklenmelidir.

Visual Studio'da Microsoft.AspNet.WebApi.Client NuGet'i yükleme

  1. UCI: Adult 2 sınıf veri kümesi Web Hizmeti'nden veri kümesini indir'i yayımlayın.
  2. Araçlar>NuGet Paket Yöneticisi Paket Yöneticisi>Konsolu'nu tıklatın.
  3. Install-Package Microsoft.AspNet.WebApi.Client öğesini seçin.

Kod örneğini çalıştırmak için

  1. Machine Learning örnek koleksiyonunun bir parçası olan "Örnek 1: UCI'den veri kümesi indirme: Yetişkin 2 sınıf veri kümesi" denemesini yayımlayın.
  2. ApiKey'i bir Web hizmetinden anahtarla atayın. Yukarıdaki Yetkilendirme anahtarını alma bölümüne bakın.
  3. İstek URI'siyle serviceUri atayın.

Tam bir isteğin nasıl görüneceği aşağıdadır.

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 Örneği

Machine Learning Web hizmetine bağlanmak için Python 2.X için urllib2 kitaplığını ve Python 3.X için urllib.request kitaplığını kullanın. ScoreData'yı temsil eden sayısal özelliklerin n boyutlu vektörü olan FeatureVector'ı içeren ScoreData'yı geçireceksiniz. Bir API anahtarıyla Machine Learning hizmetinde kimlik doğrulaması yaparsınız.

Kod örneğini çalıştırmak için

  1. Machine Learning örnek koleksiyonunun bir parçası olan "Örnek 1: UCI'den veri kümesi indirme: Yetişkin 2 sınıf veri kümesi" denemesini dağıtın.
  2. ApiKey'i bir Web hizmetinden anahtarla atayın. Bu makalenin başındaki Yetkilendirme anahtarı alma bölümüne bakın.
  3. İstek URI'siyle serviceUri atayın.

Tam bir isteğin nasıl görüneceği aşağıdadır.

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 Örneği

Machine Learning Web Hizmetine bağlanmak için RCurl ve rjson kitaplıklarını kullanarak isteği yapın ve döndürülen JSON yanıtını işleyin. ScoreData'yı temsil eden sayısal özelliklerin n boyutlu vektörü olan FeatureVector'ı içeren ScoreData'yı geçireceksiniz. Bir API anahtarıyla Machine Learning hizmetinde kimlik doğrulaması yaparsınız.

Tam bir isteğin nasıl görüneceği aşağıdadır.

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 Örneği

Machine Learning Web Hizmetine bağlanmak için projenizde istek npm paketini kullanın. Girdinizi biçimlendirmek JSON ve sonucu ayrıştırmak için nesnesini de kullanacaksınız. kullanarak npm install request --saveyükleyin veya altında dependencies package.json dosyasına ekleyin "request": "*" ve komutunu çalıştırınnpm install.

Tam bir isteğin nasıl görüneceği aşağıdadır.

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