كيفية استهلاك خدمة ويب التعلم الآلي Studio (كلاسيكية)
ينطبق على:
استوديو التعلم الآلي (كلاسيكي)
Azure التعلم الآلي
هام
سينتهي دعم Machine Learning Studio (classic) في 31 أغسطس 2024. نوصي بالانتقال إلى zure Machine Learning بحلول ذلك التاريخ.
ابتداء من 1 ديسمبر 2021، لن تتمكن من إنشاء موارد Machine Learning Studio (classic). خلال 31 أغسطس 2024، يمكنك الاستمرار في استخدام موارد Machine Learning Studio (classic) الموجودة.
- يمكنك الاطلاع على معلومات عن نقل مشاريع التعلم الآلي من ML Studio (classic) إلى Azure Machine Learning.
- تعرف على المزيد حول Azure Machine Learning
يتم الآن استبعاد وثائق ML Studio (classic) وقد لا يتم تحديثها في المستقبل.
بمجرد نشر نموذج تنبؤي التعلم الآلي Studio (كلاسيكي) كخدمة ويب، يمكنك استخدام واجهة برمجة تطبيقات REST لإرسال البيانات إليه والحصول على التنبؤات. يمكنك إرسال البيانات في الوقت الفعلي أو في وضع الدفعات.
يمكنك العثور على مزيد من المعلومات حول كيفية إنشاء خدمة ويب التعلم الآلي ونشرها باستخدام التعلم الآلي Studio (كلاسيكي) هنا:
- للحصول على برنامج تعليمي حول كيفية إنشاء تجربة في التعلم الآلي Studio (كلاسيكي)، راجع إنشاء تجربتك الأولى.
- للحصول على تفاصيل حول كيفية نشر خدمة ويب، راجع نشر خدمة ويب التعلم الآلي.
- لمزيد من المعلومات حول التعلم الآلي بشكل عام، تفضل بزيارة مركز توثيق التعلم الآلي.
نظرة عامة
باستخدام خدمة الويب التعلم الآلي، يتصل تطبيق خارجي بنموذج تسجيل سير عمل التعلم الآلي في الوقت الفعلي. تقوم مكالمة خدمة ويب التعلم الآلي بإرجاع نتائج التنبؤ إلى تطبيق خارجي. لإجراء مكالمة خدمة ويب التعلم الآلي، يمكنك تمرير مفتاح API الذي يتم إنشاؤه عند نشر تنبؤ. تعتمد خدمة التعلم الآلي Web على REST ، وهو خيار معماري شائع لمشاريع برمجة الويب.
يحتوي التعلم الآلي Studio (الكلاسيكي) على نوعين من الخدمات:
- خدمة Request-Response (RRS) - خدمة منخفضة الكمون وقابلة للتطوير بدرجة عالية توفر واجهة للنماذج عديمة الجنسية التي تم إنشاؤها ونشرها من استوديو التعلم الآلي (الكلاسيكي).
- خدمة تنفيذ الدفعات (BES) – خدمة غير متزامنة تسجل دفعة لسجلات البيانات.
لمزيد من المعلومات حول خدمات ويب التعلم الآلي، راجع نشر خدمة ويب التعلم الآلي.
الحصول على مفتاح تفويض
عند نشر تجربتك، يتم إنشاء مفاتيح واجهة برمجة التطبيقات لخدمة الويب. يمكنك استرداد المفاتيح من عدة مواقع.
من بوابة خدمات الويب التعلم الآلي
سجل الدخول إلى مدخل خدمات ويب التعلم الآلي.
لاسترداد مفتاح واجهة برمجة التطبيقات لخدمة ويب التعلم الآلي جديد:
- في مدخل "خدمات ويب التعلم الآلي"، انقر فوق "خدمات ويب" القائمة العلوية.
- انقر فوق خدمة ويب التي تريد استرداد المفتاح لها.
- في القائمة العلوية، انقر فوق استهلاك.
- انسخ المفتاح الأساسي واحفظه.
لاسترداد مفتاح واجهة برمجة التطبيقات لخدمة ويب التعلم الآلي الكلاسيكية:
- في مدخل خدمات ويب Azure التعلم الآلي، انقر فوق خدمات ويب الكلاسيكية القائمة العلوية.
- انقر فوق خدمة ويب التي تعمل معها.
- انقر فوق نقطة النهاية التي تريد استرداد المفتاح لها.
- في القائمة العلوية، انقر فوق استهلاك.
- انسخ المفتاح الأساسي واحفظه.
خدمة الويب الكلاسيكية
يمكنك أيضا استرداد مفتاح لخدمة ويب كلاسيكية من التعلم الآلي Studio (كلاسيكي).
Machine Learning Studio (الكلاسيكي)
- في التعلم الآلي Studio (كلاسيكي)، انقر على WEB SERVICES على اليمين.
- انقر فوق خدمة ويب. يوجد مفتاح API في علامة التبويب لوحة المعلومات.
الاتصال إلى خدمة ويب التعلم الآلي
يمكنك الاتصال بخدمة ويب التعلم الآلي باستخدام أي لغة برمجة تدعم طلب HTTP والاستجابة له. يمكنك عرض أمثلة في C# و Python و R من صفحة تعليمات خدمة ويب التعلم الآلي.
التعلم الآلي تعليمات واجهة برمجة التطبيقات التعلم الآلي يتم إنشاء تعليمات واجهة برمجة التطبيقات عند نشر خدمة ويب. راجع البرنامج التعليمي 3: نشر نموذج مخاطر الائتمان. تحتوي تعليمات واجهة برمجة تطبيقات التعلم الآلي على تفاصيل حول خدمة ويب للتنبؤ.
- انقر فوق خدمة ويب التي تعمل معها.
- انقر فوق نقطة النهاية التي تريد عرض صفحة مساعدة واجهة برمجة التطبيقات الخاصة بها.
- في القائمة العلوية، انقر فوق استهلاك.
- انقر على صفحة تعليمات واجهة برمجة التطبيقات ضمن Request-Response أو نقاط نهاية التنفيذ الدفعي.
لعرض تعليمات واجهة برمجة التطبيقات التعلم الآلي لخدمة ويب جديدة
في بوابة خدمات الويب التعلم الآلي:
- انقر على WEB SERVICES في القائمة العلوية.
- انقر فوق خدمة ويب التي تريد استرداد المفتاح لها.
انقر فوق استخدام خدمة ويب للحصول على عناوين URI لخدمات تنفيذ الدفعات Request-Response ونماذج التعليمات البرمجية في C# وR وPython.
انقر فوق Swagger API للحصول على الوثائق المستندة إلى Swagger لواجهات برمجة التطبيقات التي تم استدعاؤها من عناوين URI المتوفرة.
C # عينة
للاتصال بخدمة ويب التعلم الآلي، استخدم ScoreData يقوم ScoreData بتمرير HttpClient. يحتوي ScoreData على FeatureVector ، وهو متجه n الأبعاد للميزات العددية التي تمثل ScoreData. يمكنك المصادقة على الخدمة التعلم الآلي باستخدام مفتاح API.
للاتصال بخدمة ويب التعلم الآلي، يجب تثبيت حزمة NuGet الخاصة ب Microsoft.AspNet.WebApi.Client.
تثبيت Microsoft.AspNet.WebApi.Client NuGet في Visual Studio
- نشر مجموعة بيانات التنزيل من UCI: خدمة ويب لمجموعة بيانات فئة 2 للبالغين.
- انقر فوق أدواتNuGet> مدير الحِزَم مدير الحِزَم> وحدة التحكم.
- اختر تثبيت حزمة Microsoft.AspNet.WebApi.Client.
لتشغيل نموذج التعليمات البرمجية
- نشر تجربة "العينة 1: تنزيل مجموعة البيانات من UCI: مجموعة بيانات فئة البالغين 2"، وهي جزء من التعلم الآلي جمع العينات.
- تعيين apiKey مع المفتاح من خدمة ويب. راجع الحصول على مفتاح تفويض أعلاه.
- تعيين serviceUri مع طلب URI.
إليك الشكل الذي سيبدو عليه الطلب الكامل.
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);
}
}
}
}
}
عينة بايثون
للاتصال بخدمة ويب التعلم الآلي، استخدم مكتبة urllib2 ل Python 2.X ومكتبة urllib.request ل Python 3.X. ستقوم بتمرير ScoreData ، الذي يحتوي على FeatureVector ، وهو متجه n الأبعاد للميزات العددية التي تمثل ScoreData. يمكنك المصادقة على الخدمة التعلم الآلي باستخدام مفتاح API.
لتشغيل نموذج التعليمات البرمجية
- نشر تجربة "العينة 1: تنزيل مجموعة البيانات من UCI: مجموعة بيانات فئة البالغين 2"، وهي جزء من التعلم الآلي جمع العينات.
- تعيين apiKey مع المفتاح من خدمة ويب. راجع القسم الحصول على مفتاح تفويض بالقرب من بداية هذه المقالة.
- تعيين serviceUri مع طلب URI.
إليك الشكل الذي سيبدو عليه الطلب الكامل.
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
للاتصال بخدمة ويب التعلم الآلي، استخدم مكتبتي RCurlوrjson لتقديم الطلب ومعالجة استجابة JSON التي تم إرجاعها. ستقوم بتمرير ScoreData ، الذي يحتوي على FeatureVector ، وهو متجه n الأبعاد للميزات العددية التي تمثل ScoreData. يمكنك المصادقة على الخدمة التعلم الآلي باستخدام مفتاح API.
إليك الشكل الذي سيبدو عليه الطلب الكامل.
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)
نموذج جافا سكريبت
للاتصال بخدمة ويب التعلم الآلي، استخدم حزمة npm للطلب في مشروعك. ستستخدم أيضا الكائن لتنسيق الإدخال JSON الخاص بك وتحليل النتيجة. تثبيت باستخدام npm install request --save، أو إضافة "request": "*" إلى package.json الخاص بك تحت dependencies وتشغيل npm install.
إليك الشكل الذي سيبدو عليه الطلب الكامل.
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);
}
});