Cara memperbarui model LUIS dengan API REST
Dalam artikel ini, Anda akan menambahkan contoh ucapan ke aplikasi Pizza dan melatih aplikasi. Contoh ucapan adalah teks pengguna percakapan yang dipetakan ke niat. Dengan memberikan contoh ucapan untuk LUIS, Anda mengajari LUIS jenis teks yang disediakan pengguna apa yang menjadi niatnya.
Sampel dokumentasi | referensi
Prasyarat
Contoh file JSON mengucapkan
Contoh ucapan mengikuti format tertentu.
Bidang text berisi teks ucapan contoh. Bidang intentName harus sesuai dengan nama niat yang ada di aplikasi LUIS. Bidang entityLabels wajib diisi. Jika Anda tidak ingin memberi label entitas apa pun, berikan array kosong.
Jika array entityLabels tidak kosong, startCharIndex dan endCharIndex perlu menandai entitas yang dimaksud di bidang entityName. Indeks berbasis nol. Jika Anda memulai atau mengakhiri label di spasi dalam teks, panggilan API untuk menambahkan ucapan gagal.
[
{
"text": "order a pizza",
"intentName": "ModifyOrder",
"entityLabels": [
{
"entityName": "Order",
"startCharIndex": 6,
"endCharIndex": 12
}
]
},
{
"text": "order a large pepperoni pizza",
"intentName": "ModifyOrder",
"entityLabels": [
{
"entityName": "Order",
"startCharIndex": 6,
"endCharIndex": 28
},
{
"entityName": "FullPizzaWithModifiers",
"startCharIndex": 6,
"endCharIndex": 28
},
{
"entityName": "PizzaType",
"startCharIndex": 14,
"endCharIndex": 28
},
{
"entityName": "Size",
"startCharIndex": 8,
"endCharIndex": 12
}
]
},
{
"text": "I want two large pepperoni pizzas on thin crust",
"intentName": "ModifyOrder",
"entityLabels": [
{
"entityName": "Order",
"startCharIndex": 7,
"endCharIndex": 46
},
{
"entityName": "FullPizzaWithModifiers",
"startCharIndex": 7,
"endCharIndex": 46
},
{
"entityName": "PizzaType",
"startCharIndex": 17,
"endCharIndex": 32
},
{
"entityName": "Size",
"startCharIndex": 11,
"endCharIndex": 15
},
{
"entityName": "Quantity",
"startCharIndex": 7,
"endCharIndex": 9
},
{
"entityName": "Crust",
"startCharIndex": 37,
"endCharIndex": 46
}
]
}
]
Buat aplikasi Pizza
Buat aplikasi pizza.
- Pilih pizza-app-for-luis-v6.jsanda untuk memunculkan halaman GitHub untuk file
pizza-app-for-luis.jsontersebut. - Klik kanan atau ketuk lama tombol Mentah dan pilih Simpan tautan sebagai untuk menyimpan
pizza-app-for-luis.jsonke komputer Anda. - Masuk ke portal LUIS.
- Pilih Aplikasi Saya.
- Di halaman Aplikasi Saya, pilih + Aplikasi baru untuk percakapan.
- Pilih Impor sebagai JSON.
- Di dialog Impor aplikasi baru, pilih tombol Pilih File.
- Pilih file
pizza-app-for-luis.jsonyang Anda unduh, lalu pilih Buka. - Di dialog Impor aplikasi baru bidang Nama, masukkan nama untuk aplikasi Pizza Anda, lalu pilih tombol Selesai.
Aplikasi akan diimpor.
Jika Anda melihat dialog Cara membuat aplikasi LUIS yang efektif, tutup dialog.
Melatih dan menerbitkan aplikasi Pizza
Anda akan melihat halaman Niat dengan daftar niat di aplikasi Pizza.
Di sisi kanan atas situs web LUIS, pilih tombol Train.

Pelatihan selesai ketika tombol Train dinonaktifkan.
Untuk menerima prediksi LUIS di bot obrolan atau aplikasi klien lainnya, Anda perlu memublikasikan aplikasi ke titik akhir prediksi.
Pilih Terbitkan di navigasi kanan atas.

Pilih slot Produksi, lalu pilih Selesai.

Pilih Akses URL titik akhir Anda di pemberitahuan untuk masuk ke halaman Sumber Daya Azure. Anda hanya akan dapat melihat URL jika Anda memiliki sumber daya prediksi yang terkait dengan aplikasi. Anda juga bisa menemukan halaman Sumber Daya Azure dengan mengeklik Kelola.

Menambahkan sumber daya penulisan ke aplikasi Pizza
- Pilih KELOLA.
- Pilih Sumber daya Azure.
- Pilih Sumber Daya Penulisan.
- Pilih Ubah sumber daya penulisan.
Jika Anda memiliki sumber daya penulisan, masukkan Nama Penyewa, Nama Langganan, dan Nama sumber daya LUIS dari sumber daya penulisan Anda.
Jika Anda tidak memiliki sumber daya penulisan:
- Pilih Buat sumber daya baru.
- Masukkan Nama Penyewa, Nama Sumber Daya, Nama Langganan, dan Nama Grup Sumber Daya Azure.
Aplikasi Pizza Anda kini siap digunakan.
Mencatat nilai akses untuk aplikasi Pizza
Untuk menggunakan aplikasi Pizza baru, Anda memerlukan ID aplikasi, kunci penulisan, dan penulisan titik akhir aplikasi Pizza Anda. Untuk mendapatkan prediksi, Anda akan memerlukan titik akhir prediksi dan kunci prediksi terpisah.
Untuk menemukan nilai-nilai tersebut:
- Dari halaman Niat, pilih KELOLA.
- Dari halaman Pengaturan Aplikasi, rekam ID Aplikasi.
- Pilih Sumber daya Azure.
- Pilih Sumber Daya Penulisan.
- Dari tab Sumber Daya Penulisan dan Sumber Daya Prediksi, catat Kunci Primer. Nilai ini adalah kunci penulisan Anda.
- Catat URL Titik Akhir. Nilai ini adalah titik akhir penulisan Anda.
Mengubah model secara terprogram
Buat aplikasi konsol baru yang menargetkan bahasa C#, dengan nama proyek dan folder
csharp-model-with-rest.dotnet new console -lang C# -n csharp-model-with-restUbah ke direktori
csharp-model-with-restyang Anda buat, dan instal dependensi yang diperlukan dengan perintah ini:cd csharp-model-with-rest dotnet add package System.Net.Http dotnet add package JsonFormatterPlusTimpa Program.cs dengan kode berikut:
// // This quickstart shows how to add utterances to a LUIS model using the REST APIs. // using System; using System.IO; using System.Net.Http; using System.Text; using System.Threading.Tasks; using System.Collections.Generic; using System.Linq; // 3rd party NuGet packages using JsonFormatterPlus; namespace AddUtterances { class Program { ////////// // Values to modify. // YOUR-APP-ID: The App ID GUID found on the www.luis.ai Application Settings page. static string appID = "PASTE_YOUR_LUIS_APP_ID_HERE"; // YOUR-AUTHORING-KEY: Your LUIS authoring key, 32 character value. static string authoringKey = "PASTE_YOUR_LUIS_AUTHORING_SUBSCRIPTION_KEY_HERE"; // YOUR-AUTHORING-ENDPOINT: Replace this endpoint with your authoring key endpoint. // For example, "https://your-resource-name.cognitiveservices.azure.com/" static string authoringEndpoint = "PASTE_YOUR_LUIS_AUTHORING_ENDPOINT_HERE"; // NOTE: Replace this your version number. static string appVersion = "0.1"; ////////// static string host = String.Format("{0}luis/authoring/v3.0-preview/apps/{1}/versions/{2}/", authoringEndpoint, appID, appVersion); // GET request with authentication async static Task<HttpResponseMessage> SendGet(string uri) { using (var client = new HttpClient()) using (var request = new HttpRequestMessage()) { request.Method = HttpMethod.Get; request.RequestUri = new Uri(uri); request.Headers.Add("Ocp-Apim-Subscription-Key", authoringKey); return await client.SendAsync(request); } } // POST request with authentication async static Task<HttpResponseMessage> SendPost(string uri, string requestBody) { using (var client = new HttpClient()) using (var request = new HttpRequestMessage()) { request.Method = HttpMethod.Post; request.RequestUri = new Uri(uri); if (!String.IsNullOrEmpty(requestBody)) { request.Content = new StringContent(requestBody, Encoding.UTF8, "text/json"); } request.Headers.Add("Ocp-Apim-Subscription-Key", authoringKey); return await client.SendAsync(request); } } // Add utterances as string with POST request async static Task AddUtterances(string utterances) { string uri = host + "examples"; var response = await SendPost(uri, utterances); var result = await response.Content.ReadAsStringAsync(); Console.WriteLine("Added utterances."); Console.WriteLine(JsonFormatter.Format(result)); } // Train app after adding utterances async static Task Train() { string uri = host + "train"; var response = await SendPost(uri, null); var result = await response.Content.ReadAsStringAsync(); Console.WriteLine("Sent training request."); Console.WriteLine(JsonFormatter.Format(result)); } // Check status of training async static Task Status() { var response = await SendGet(host + "train"); var result = await response.Content.ReadAsStringAsync(); Console.WriteLine("Requested training status."); Console.WriteLine(JsonFormatter.Format(result)); } // Add utterances, train, check status static void Main(string[] args) { string utterances = @" [ { 'text': 'order a pizza', 'intentName': 'ModifyOrder', 'entityLabels': [ { 'entityName': 'Order', 'startCharIndex': 6, 'endCharIndex': 12 } ] }, { 'text': 'order a large pepperoni pizza', 'intentName': 'ModifyOrder', 'entityLabels': [ { 'entityName': 'Order', 'startCharIndex': 6, 'endCharIndex': 28 }, { 'entityName': 'FullPizzaWithModifiers', 'startCharIndex': 6, 'endCharIndex': 28 }, { 'entityName': 'PizzaType', 'startCharIndex': 14, 'endCharIndex': 28 }, { 'entityName': 'Size', 'startCharIndex': 8, 'endCharIndex': 12 } ] }, { 'text': 'I want two large pepperoni pizzas on thin crust', 'intentName': 'ModifyOrder', 'entityLabels': [ { 'entityName': 'Order', 'startCharIndex': 7, 'endCharIndex': 46 }, { 'entityName': 'FullPizzaWithModifiers', 'startCharIndex': 7, 'endCharIndex': 46 }, { 'entityName': 'PizzaType', 'startCharIndex': 17, 'endCharIndex': 32 }, { 'entityName': 'Size', 'startCharIndex': 11, 'endCharIndex': 15 }, { 'entityName': 'Quantity', 'startCharIndex': 7, 'endCharIndex': 9 }, { 'entityName': 'Crust', 'startCharIndex': 37, 'endCharIndex': 46 } ] } ] "; AddUtterances(utterances).Wait(); Train().Wait(); Status().Wait(); } } }Ganti nilai yang dimulai dengan
YOUR-dengan nilai Anda sendiri.Informasi Tujuan YOUR-APP-IDID aplikasi LUIS. YOUR-AUTHORING-KEYKunci penulisan 32 karakter. YOUR-AUTHORING-ENDPOINTTitik akhir URL penulisan. Contohnya: https://replace-with-your-resource-name.api.cognitive.microsoft.com/Anda mengatur nama sumber daya saat membuat sumber daya.Kunci dan sumber daya yang ditetapkan terlihat di portal LUIS di bagian Kelola, di halaman Sumber daya Azure. ID aplikasi tersedia di bagian Kelola yang sama, di halaman Pengaturan Aplikasi.
Buat aplikasi konsol.
dotnet buildJalankan aplikasi konsol.
dotnet runTinjau respons penulisan:
Added utterances. [ { "value": { "ExampleId": 1137150691, "UtteranceText": "order a pizza" }, "hasError": false }, { "value": { "ExampleId": 1137150692, "UtteranceText": "order a large pepperoni pizza" }, "hasError": false }, { "value": { "ExampleId": 1137150693, "UtteranceText": "i want two large pepperoni pizzas on thin crust" }, "hasError": false } ] Sent training request. { "statusId": 9, "status": "Queued" } Requested training status. [ { "modelId": "edb46abf-0000-41ab-beb2-a41a0fe1630f", "details": { "statusId": 9, "status": "Queued", "exampleCount": 0 } }, { "modelId": "a5030be2-616c-4648-bf2f-380fa9417d37", "details": { "statusId": 9, "status": "Queued", "exampleCount": 0 } }, { "modelId": "3f2b1f31-a3c3-4fbd-8182-e9d9dbc120b9", "details": { "statusId": 9, "status": "Queued", "exampleCount": 0 } }, { "modelId": "e4b6704b-1636-474c-9459-fe9ccbeba51c", "details": { "statusId": 9, "status": "Queued", "exampleCount": 0 } }, { "modelId": "031d3777-2a00-4a7a-9323-9a3280a30000", "details": { "statusId": 9, "status": "Queued", "exampleCount": 0 } }, { "modelId": "9250e7a1-06eb-4413-9432-ae132ed32583", "details": { "statusId": 9, "status": "Queued", "exampleCount": 0 } } ]
Membersihkan sumber daya
Saat Anda selesai dengan mulai cepat ini, hapus folder proyek dari sistem file.
Langkah berikutnya
Sampel dokumentasi | referensi
Prasyarat
- JDK SE (Java Development Kit, Edisi Standar)
- Visual Studio Code atau IDE favorit Anda
Contoh file JSON mengucapkan
Contoh ucapan mengikuti format tertentu.
Bidang text berisi teks ucapan contoh. Bidang intentName harus sesuai dengan nama niat yang ada di aplikasi LUIS. Bidang entityLabels wajib diisi. Jika Anda tidak ingin memberi label entitas apa pun, berikan array kosong.
Jika array entityLabels tidak kosong, startCharIndex dan endCharIndex perlu menandai entitas yang dimaksud di bidang entityName. Indeks berbasis nol. Jika Anda memulai atau mengakhiri label di spasi dalam teks, panggilan API untuk menambahkan ucapan gagal.
[
{
"text": "order a pizza",
"intentName": "ModifyOrder",
"entityLabels": [
{
"entityName": "Order",
"startCharIndex": 6,
"endCharIndex": 12
}
]
},
{
"text": "order a large pepperoni pizza",
"intentName": "ModifyOrder",
"entityLabels": [
{
"entityName": "Order",
"startCharIndex": 6,
"endCharIndex": 28
},
{
"entityName": "FullPizzaWithModifiers",
"startCharIndex": 6,
"endCharIndex": 28
},
{
"entityName": "PizzaType",
"startCharIndex": 14,
"endCharIndex": 28
},
{
"entityName": "Size",
"startCharIndex": 8,
"endCharIndex": 12
}
]
},
{
"text": "I want two large pepperoni pizzas on thin crust",
"intentName": "ModifyOrder",
"entityLabels": [
{
"entityName": "Order",
"startCharIndex": 7,
"endCharIndex": 46
},
{
"entityName": "FullPizzaWithModifiers",
"startCharIndex": 7,
"endCharIndex": 46
},
{
"entityName": "PizzaType",
"startCharIndex": 17,
"endCharIndex": 32
},
{
"entityName": "Size",
"startCharIndex": 11,
"endCharIndex": 15
},
{
"entityName": "Quantity",
"startCharIndex": 7,
"endCharIndex": 9
},
{
"entityName": "Crust",
"startCharIndex": 37,
"endCharIndex": 46
}
]
}
]
Ubah model secara terprogram
Buat folder baru untuk menahan proyek Java Anda, seperti
java-model-with-rest.Buat subdirektori bernama
libdan salin dalam Java libs berikut ke dalam subdirektorilib:Buat file baru bernama
Model.java. Tambahkan kode berikut:// // This quickstart shows how to add utterances to a LUIS model using the REST APIs. // import java.io.*; import java.net.URI; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.utils.URIBuilder; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; // To compile, execute this command at the console: // Windows: javac -cp ";lib/*" Model.java // macOs: javac -cp ":lib/*" Model.java // Linux: javac -cp ":lib/*" Model.java // To run, execute this command at the console: // Windows: java -cp ";lib/*" Model // macOs: java -cp ":lib/*" Model // Linux: java -cp ":lib/*" Model public class Model { public static void main(String[] args) { try { ////////// // Values to modify. // YOUR-APP-ID: The App ID GUID found on the www.luis.ai Application Settings page. String AppId = "PASTE_YOUR_LUIS_APP_ID_HERE"; // YOUR-AUTHORING-KEY: Your LUIS authoring key, 32 character value. String Key = "PASTE_YOUR_LUIS_AUTHORING_SUBSCRIPTION_KEY_HERE"; // YOUR-AUTHORING-ENDPOINT: Replace this with your authoring key endpoint. // For example, "https://your-resource-name.cognitiveservices.azure.com/" String Endpoint = "PASTE_YOUR_LUIS_AUTHORING_ENDPOINT_HERE"; // NOTE: Replace this your version number. The Pizza app uses a version number of "0.1". String Version = "0.1"; ////////// // The list of utterances to add, in JSON format. String Utterances = "[{'text': 'order a pizza', 'intentName': 'ModifyOrder', 'entityLabels': [{'entityName': 'Order', 'startCharIndex': 6, 'endCharIndex': 12}]}, {'text': 'order a large pepperoni pizza', 'intentName': 'ModifyOrder', 'entityLabels': [{'entityName': 'Order', 'startCharIndex': 6, 'endCharIndex': 28}, {'entityName': 'FullPizzaWithModifiers', 'startCharIndex': 6, 'endCharIndex': 28}, {'entityName': 'PizzaType', 'startCharIndex': 14, 'endCharIndex': 28}, {'entityName': 'Size', 'startCharIndex': 8, 'endCharIndex': 12}]}, {'text': 'I want two large pepperoni pizzas on thin crust', 'intentName': 'ModifyOrder', 'entityLabels': [{'entityName': 'Order', 'startCharIndex': 7, 'endCharIndex': 46}, {'entityName': 'FullPizzaWithModifiers', 'startCharIndex': 7, 'endCharIndex': 46}, {'entityName': 'PizzaType', 'startCharIndex': 17, 'endCharIndex': 32}, {'entityName': 'Size', 'startCharIndex': 11, 'endCharIndex': 15}, {'entityName': 'Quantity', 'startCharIndex': 7, 'endCharIndex': 9}, {'entityName': 'Crust', 'startCharIndex': 37, 'endCharIndex': 46}]}]"; // Create the URLs for uploading example utterances and for training. URIBuilder addUtteranceURL = new URIBuilder(Endpoint + "luis/authoring/v3.0-preview/apps/" + AppId + "/versions/" + Version + "/examples"); URIBuilder trainURL = new URIBuilder(Endpoint + "luis/authoring/v3.0-preview/apps/" + AppId + "/versions/" + Version + "/train"); URI addUtterancesURI = addUtteranceURL.build(); URI trainURI = trainURL.build(); // Add the utterances. // Create the request. HttpClient addUtterancesClient = HttpClients.createDefault(); HttpPost addUtterancesRequest = new HttpPost(addUtterancesURI); // Add the headers. addUtterancesRequest.setHeader("Ocp-Apim-Subscription-Key",Key); addUtterancesRequest.setHeader("Content-type","application/json"); // Add the body. StringEntity stringEntity = new StringEntity(Utterances); addUtterancesRequest.setEntity(stringEntity); // Execute the request and obtain the response. HttpResponse addUtterancesResponse = addUtterancesClient.execute(addUtterancesRequest); HttpEntity addUtterancesEntity = addUtterancesResponse.getEntity(); // Print the response on the console. if (addUtterancesEntity != null) { System.out.println(EntityUtils.toString(addUtterancesEntity)); } // Train the model. // Create the request. HttpClient trainClient = HttpClients.createDefault(); HttpPost trainRequest = new HttpPost(trainURI); // Add the headers. trainRequest.setHeader("Ocp-Apim-Subscription-Key",Key); trainRequest.setHeader("Content-type","application/json"); // Execute the request and obtain the response. HttpResponse trainResponse = trainClient.execute(trainRequest); HttpEntity trainEntity = trainResponse.getEntity(); // Print the response on the console. if (trainEntity != null) { System.out.println(EntityUtils.toString(trainEntity)); } // Get the training status. // Create the request. HttpClient trainStatusClient = HttpClients.createDefault(); HttpGet trainStatusRequest = new HttpGet(trainURI); // Add the headers. trainStatusRequest.setHeader("Ocp-Apim-Subscription-Key",Key); trainStatusRequest.setHeader("Content-type","application/json"); // Execute the request and obtain the response. HttpResponse trainStatusResponse = trainStatusClient.execute(trainStatusRequest); HttpEntity trainStatusEntity = trainStatusResponse.getEntity(); // Print the response on the console. if (trainStatusEntity != null) { System.out.println(EntityUtils.toString(trainStatusEntity)); } } // Display errors if they occur. catch (Exception e) { System.out.println(e.getMessage()); } } }Ganti nilai yang dimulai dengan
YOUR-nilai Anda sendiri.Informasi Tujuan YOUR-APP-IDID aplikasi LUIS. YOUR-AUTHORING-KEYKunci penulisan 32 karakter. YOUR-AUTHORING-ENDPOINTTitik akhir URL penulisan. Contohnya: https://replace-with-your-resource-name.api.cognitive.microsoft.com/Anda mengatur nama sumber daya saat membuat sumber daya.Kunci dan sumber daya yang ditetapkan terlihat di portal LUIS di bagian Kelola, di halaman Sumber daya Azure. ID aplikasi tersedia di bagian Kelola yang sama, pada halaman Pengaturan Aplikasi.
Dengan prompt perintah di direktori yang sama dengan tempat Anda membuat
Model.javafile, masukkan perintah berikut untuk mengompilasi file Java:- Jika Anda menggunakan Windows, gunakan perintah ini:
javac -cp ";lib/*" Model.java - Jika Anda menggunakan macOS atau Linux, gunakan perintah ini:
javac -cp ":lib/*" Model.java
- Jika Anda menggunakan Windows, gunakan perintah ini:
Jalankan aplikasi Java dari baris perintah dengan memasukkan teks berikut ini di prompt perintah:
- Jika Anda menggunakan Windows, gunakan perintah ini:
java -cp ";lib/*" Model - Jika Anda menggunakan macOS atau Linux, gunakan perintah ini:
java -cp ":lib/*" Model
- Jika Anda menggunakan Windows, gunakan perintah ini:
Tinjau respons penulisan:
[{"value":{"ExampleId":1137150691,"UtteranceText":"order a pizza"},"hasError":false},{"value":{"ExampleId":1137150692,"UtteranceText":"order a large pepperoni pizza"},"hasError":false},{"value":{"ExampleId":1137150693,"UtteranceText":"i want two large pepperoni pizzas on thin crust"},"hasError":false}] {"statusId":9,"status":"Queued"} [{"modelId":"edb46abf-0000-41ab-beb2-a41a0fe1630f","details":{"statusId":9,"status":"Queued","exampleCount":0}},{"modelId":"a5030be2-616c-4648-bf2f-380fa9417d37","details":{"statusId":9,"status":"Queued","exampleCount":0}},{"modelId":"3f2b1f31-a3c3-4fbd-8182-e9d9dbc120b9","details":{"statusId":9,"status":"Queued","exampleCount":0}},{"modelId":"e4b6704b-1636-474c-9459-fe9ccbeba51c","details":{"statusId":9,"status":"Queued","exampleCount":0}},{"modelId":"031d3777-2a00-4a7a-9323-9a3280a30000","details":{"statusId":9,"status":"Queued","exampleCount":0}},{"modelId":"9250e7a1-06eb-4413-9432-ae132ed32583","details":{"statusId":3,"status":"InProgress","exampleCount":0,"progressSubstatus":"CollectingData"}}]Berikut adalah output yang diformat untuk keterbacaan:
[ { "value": { "ExampleId": 1137150691, "UtteranceText": "order a pizza" }, "hasError": false }, { "value": { "ExampleId": 1137150692, "UtteranceText": "order a large pepperoni pizza" }, "hasError": false }, { "value": { "ExampleId": 1137150693, "UtteranceText": "i want two large pepperoni pizzas on thin crust" }, "hasError": false } ] { "statusId": 9, "status": "Queued" } [ { "modelId": "edb46abf-0000-41ab-beb2-a41a0fe1630f", "details": { "statusId": 9, "status": "Queued", "exampleCount": 0 } }, { "modelId": "a5030be2-616c-4648-bf2f-380fa9417d37", "details": { "statusId": 9, "status": "Queued", "exampleCount": 0 } }, { "modelId": "3f2b1f31-a3c3-4fbd-8182-e9d9dbc120b9", "details": { "statusId": 9, "status": "Queued", "exampleCount": 0 } }, { "modelId": "e4b6704b-1636-474c-9459-fe9ccbeba51c", "details": { "statusId": 9, "status": "Queued", "exampleCount": 0 } }, { "modelId": "031d3777-2a00-4a7a-9323-9a3280a30000", "details": { "statusId": 9, "status": "Queued", "exampleCount": 0 } }, { "modelId": "9250e7a1-06eb-4413-9432-ae132ed32583", "details": { "statusId": 3, "status": "InProgress", "exampleCount": 0, "progressSubstatus": "CollectingData" } } ]
Membersihkan sumber daya
Saat Anda selesai dengan mulai cepat ini, hapus folder proyek dari sistem file.
Langkah berikutnya
Sampel dokumentasi | referensi
Prasyarat
- Bahasa pemrograman Go
- Visual Studio Code
Contoh file JSON mengucapkan
Contoh ucapan mengikuti format tertentu.
Bidang text berisi teks ucapan contoh. Bidang intentName harus sesuai dengan nama niat yang ada di aplikasi LUIS. Bidang entityLabels wajib diisi. Jika Anda tidak ingin memberi label entitas apa pun, berikan array kosong.
Jika array entityLabels tidak kosong, startCharIndex dan endCharIndex perlu menandai entitas yang dimaksud di bidang entityName. Indeks berbasis nol. Jika Anda memulai atau mengakhiri label di spasi dalam teks, panggilan API untuk menambahkan ucapan gagal.
[
{
"text": "order a pizza",
"intentName": "ModifyOrder",
"entityLabels": [
{
"entityName": "Order",
"startCharIndex": 6,
"endCharIndex": 12
}
]
},
{
"text": "order a large pepperoni pizza",
"intentName": "ModifyOrder",
"entityLabels": [
{
"entityName": "Order",
"startCharIndex": 6,
"endCharIndex": 28
},
{
"entityName": "FullPizzaWithModifiers",
"startCharIndex": 6,
"endCharIndex": 28
},
{
"entityName": "PizzaType",
"startCharIndex": 14,
"endCharIndex": 28
},
{
"entityName": "Size",
"startCharIndex": 8,
"endCharIndex": 12
}
]
},
{
"text": "I want two large pepperoni pizzas on thin crust",
"intentName": "ModifyOrder",
"entityLabels": [
{
"entityName": "Order",
"startCharIndex": 7,
"endCharIndex": 46
},
{
"entityName": "FullPizzaWithModifiers",
"startCharIndex": 7,
"endCharIndex": 46
},
{
"entityName": "PizzaType",
"startCharIndex": 17,
"endCharIndex": 32
},
{
"entityName": "Size",
"startCharIndex": 11,
"endCharIndex": 15
},
{
"entityName": "Quantity",
"startCharIndex": 7,
"endCharIndex": 9
},
{
"entityName": "Crust",
"startCharIndex": 37,
"endCharIndex": 46
}
]
}
]
Buat aplikasi Pizza
Buat aplikasi pizza.
- Pilih pizza-app-for-luis-v6.jsanda untuk memunculkan halaman GitHub untuk file
pizza-app-for-luis.jsontersebut. - Klik kanan atau ketuk lama tombol Mentah dan pilih Simpan tautan sebagai untuk menyimpan
pizza-app-for-luis.jsonke komputer Anda. - Masuk ke portal LUIS.
- Pilih Aplikasi Saya.
- Di halaman Aplikasi Saya, pilih + Aplikasi baru untuk percakapan.
- Pilih Impor sebagai JSON.
- Di dialog Impor aplikasi baru, pilih tombol Pilih File.
- Pilih file
pizza-app-for-luis.jsonyang Anda unduh, lalu pilih Buka. - Di dialog Impor aplikasi baru bidang Nama, masukkan nama untuk aplikasi Pizza Anda, lalu pilih tombol Selesai.
Aplikasi akan diimpor.
Jika Anda melihat dialog Cara membuat aplikasi LUIS yang efektif, tutup dialog.
Melatih dan menerbitkan aplikasi Pizza
Anda akan melihat halaman Niat dengan daftar niat di aplikasi Pizza.
Di sisi kanan atas situs web LUIS, pilih tombol Train.

Pelatihan selesai ketika tombol Train dinonaktifkan.
Untuk menerima prediksi LUIS di bot obrolan atau aplikasi klien lainnya, Anda perlu memublikasikan aplikasi ke titik akhir prediksi.
Pilih Terbitkan di navigasi kanan atas.

Pilih slot Produksi, lalu pilih Selesai.

Pilih Akses URL titik akhir Anda di pemberitahuan untuk masuk ke halaman Sumber Daya Azure. Anda hanya akan dapat melihat URL jika Anda memiliki sumber daya prediksi yang terkait dengan aplikasi. Anda juga bisa menemukan halaman Sumber Daya Azure dengan mengeklik Kelola.

Menambahkan sumber daya penulisan ke aplikasi Pizza
- Pilih KELOLA.
- Pilih Sumber daya Azure.
- Pilih Sumber Daya Penulisan.
- Pilih Ubah sumber daya penulisan.
Jika Anda memiliki sumber daya penulisan, masukkan Nama Penyewa, Nama Langganan, dan Nama sumber daya LUIS dari sumber daya penulisan Anda.
Jika Anda tidak memiliki sumber daya penulisan:
- Pilih Buat sumber daya baru.
- Masukkan Nama Penyewa, Nama Sumber Daya, Nama Langganan, dan Nama Grup Sumber Daya Azure.
Aplikasi Pizza Anda kini siap digunakan.
Mencatat nilai akses untuk aplikasi Pizza
Untuk menggunakan aplikasi Pizza baru, Anda memerlukan ID aplikasi, kunci penulisan, dan penulisan titik akhir aplikasi Pizza Anda. Untuk mendapatkan prediksi, Anda akan memerlukan titik akhir prediksi dan kunci prediksi terpisah.
Untuk menemukan nilai-nilai tersebut:
- Dari halaman Niat, pilih KELOLA.
- Dari halaman Pengaturan Aplikasi, rekam ID Aplikasi.
- Pilih Sumber daya Azure.
- Pilih Sumber Daya Penulisan.
- Dari tab Sumber Daya Penulisan dan Sumber Daya Prediksi, catat Kunci Primer. Nilai ini adalah kunci penulisan Anda.
- Catat URL Titik Akhir. Nilai ini adalah titik akhir penulisan Anda.
Mengubah model secara terprogram
Buat file baru bernama
predict.go. Tambahkan kode berikut:// // This quickstart shows how to add utterances to a LUIS model using the REST APIs. // // dependencies package main import ( "fmt" "net/http" "io/ioutil" "log" "strings" ) // main function func main() { ////////// // Values to modify. // YOUR-APP-ID: The App ID GUID found on the www.luis.ai Application Settings page. var appID = "PASTE_YOUR_LUIS_APP_ID_HERE" // YOUR-AUTHORING-KEY: Your LUIS authoring key, 32 character value. var authoringKey = "PASTE_YOUR_LUIS_AUTHORING_SUBSCRIPTION_KEY_HERE" // YOUR-AUTHORING-ENDPOINT: Replace this with your authoring key endpoint. // For example, "https://your-resource-name.cognitiveservices.azure.com/" var endpoint = "PASTE_YOUR_LUIS_AUTHORING_ENDPOINT_HERE" // NOTE: Replace this your version number. The Pizza app uses a version number of "0.1". var version = "0.1" ////////// var exampleUtterances = "[{'text': 'order a pizza', 'intentName': 'ModifyOrder', 'entityLabels': [{'entityName': 'Order', 'startCharIndex': 6, 'endCharIndex': 12}]}, {'text': 'order a large pepperoni pizza', 'intentName': 'ModifyOrder', 'entityLabels': [{'entityName': 'Order', 'startCharIndex': 6, 'endCharIndex': 28}, {'entityName': 'FullPizzaWithModifiers', 'startCharIndex': 6, 'endCharIndex': 28}, {'entityName': 'PizzaType', 'startCharIndex': 14, 'endCharIndex': 28}, {'entityName': 'Size', 'startCharIndex': 8, 'endCharIndex': 12}]}, {'text': 'I want two large pepperoni pizzas on thin crust', 'intentName': 'ModifyOrder', 'entityLabels': [{'entityName': 'Order', 'startCharIndex': 7, 'endCharIndex': 46}, {'entityName': 'FullPizzaWithModifiers', 'startCharIndex': 7, 'endCharIndex': 46}, {'entityName': 'PizzaType', 'startCharIndex': 17, 'endCharIndex': 32}, {'entityName': 'Size', 'startCharIndex': 11, 'endCharIndex': 15}, {'entityName': 'Quantity', 'startCharIndex': 7, 'endCharIndex': 9}, {'entityName': 'Crust', 'startCharIndex': 37, 'endCharIndex': 46}]}]" fmt.Println("add example utterances requested") addUtterance(authoringKey, appID, version, exampleUtterances, endpoint) fmt.Println("training selected") requestTraining(authoringKey, appID, version, endpoint) fmt.Println("training status selected") getTrainingStatus(authoringKey, appID, version, endpoint) } // Send the list of utterances to the model. func addUtterance(authoringKey string, appID string, version string, labeledExampleUtterances string, endpoint string){ var authoringUrl = fmt.Sprintf("%sluis/authoring/v3.0-preview/apps/%s/versions/%s/examples", endpoint, appID, version) httpRequest("POST", authoringUrl, authoringKey, labeledExampleUtterances) } // Request training. func requestTraining(authoringKey string, appID string, version string, endpoint string){ trainApp("POST", authoringKey, appID, version, endpoint) } func trainApp(httpVerb string, authoringKey string, appID string, version string, endpoint string){ var authoringUrl = fmt.Sprintf("%sluis/authoring/v3.0-preview/apps/%s/versions/%s/train", endpoint, appID, version) httpRequest(httpVerb,authoringUrl, authoringKey, "") } func getTrainingStatus(authoringKey string, appID string, version string, endpoint string){ trainApp("GET", authoringKey, appID, version, endpoint) } // generic HTTP request // includes setting header with authoring key func httpRequest(httpVerb string, url string, authoringKey string, body string){ client := &http.Client{} request, err := http.NewRequest(httpVerb, url, strings.NewReader(body)) request.Header.Add("Ocp-Apim-Subscription-Key", authoringKey) fmt.Println("body") fmt.Println(body) response, err := client.Do(request) if err != nil { log.Fatal(err) } else { defer response.Body.Close() contents, err := ioutil.ReadAll(response.Body) if err != nil { log.Fatal(err) } fmt.Println(" ", response.StatusCode) fmt.Println(string(contents)) } }Ganti nilai yang dimulai dengan
YOUR-dengan nilai Anda sendiri.Informasi Tujuan YOUR-APP-IDID aplikasi LUIS. YOUR-AUTHORING-KEYKunci penulisan 32 karakter. YOUR-AUTHORING-ENDPOINTTitik akhir URL penulisan. Contohnya: https://replace-with-your-resource-name.api.cognitive.microsoft.com/Anda mengatur nama sumber daya saat membuat sumber daya.Kunci dan sumber daya yang ditetapkan terlihat di portal LUIS di bagian Kelola, di halaman Sumber daya Azure. ID aplikasi tersedia di bagian Kelola yang sama, di halaman Pengaturan Aplikasi.
Dengan perintah di direktori yang sama dengan tempat Anda membuat file, masukkan perintah berikut untuk mengompilasi file Go:
go build model.goJalankan aplikasi Go dari baris perintah dengan memasukkan teks berikut ini di perintah:
go run model.goTinjau respons penulisan:
add example utterances requested body [{'text': 'order a pizza', 'intentName': 'ModifyOrder', 'entityLabels': [{'entityName': 'Order', 'startCharIndex': 6, 'endCharIndex': 12}]}, {'text': 'order a large pepperoni pizza', 'intentName': 'ModifyOrder', 'entityLabels': [{'entityName': 'Order', 'startCharIndex': 6, 'endCharIndex': 28}, {'entityName': 'FullPizzaWithModifiers', 'startCharIndex': 6, 'endCharIndex': 28}, {'entityName': 'PizzaType', 'startCharIndex': 14, 'endCharIndex': 28}, {'entityName': 'Size', 'startCharIndex': 8, 'endCharIndex': 12}]}, {'text': 'I want two large pepperoni pizzas on thin crust', 'intentName': 'ModifyOrder', 'entityLabels': [{'entityName': 'Order', 'startCharIndex': 7, 'endCharIndex': 46}, {'entityName': 'FullPizzaWithModifiers', 'startCharIndex': 7, 'endCharIndex': 46}, {'entityName': 'PizzaType', 'startCharIndex': 17, 'endCharIndex': 32}, {'entityName': 'Size', 'startCharIndex': 11, 'endCharIndex': 15}, {'entityName': 'Quantity', 'startCharIndex': 7, 'endCharIndex': 9}, {'entityName': 'Crust', 'startCharIndex': 37, 'endCharIndex': 46}]}] 201 [{"value":{"ExampleId":1137150691,"UtteranceText":"order a pizza"},"hasError":false},{"value":{"ExampleId":1137150692,"UtteranceText":"order a large pepperoni pizza"},"hasError":false},{"value":{"ExampleId":1137150693,"UtteranceText":"i want two large pepperoni pizzas on thin crust"},"hasError":false}] training selected body 202 {"statusId":9,"status":"Queued"} training status selected body 200 [{"modelId":"edb46abf-0000-41ab-beb2-a41a0fe1630f","details":{"statusId":9,"status":"Queued","exampleCount":0}},{"modelId":"a5030be2-616c-4648-bf2f-380fa9417d37","details":{"statusId":9,"status":"Queued","exampleCount":0}},{"modelId":"3f2b1f31-a3c3-4fbd-8182-e9d9dbc120b9","details":{"statusId":9,"status":"Queued","exampleCount":0}},{"modelId":"e4b6704b-1636-474c-9459-fe9ccbeba51c","details":{"statusId":9,"status":"Queued","exampleCount":0}},{"modelId":"031d3777-2a00-4a7a-9323-9a3280a30000","details":{"statusId":9,"status":"Queued","exampleCount":0}},{"modelId":"9250e7a1-06eb-4413-9432-ae132ed32583","details":{"statusId":9,"status":"Queued","exampleCount":0}}]Berikut adalah output yang diformat untuk keterbacaan:
add example utterances requested body [ { 'text': 'order a pizza', 'intentName': 'ModifyOrder', 'entityLabels': [ { 'entityName': 'Order', 'startCharIndex': 6, 'endCharIndex': 12 } ] }, { 'text': 'order a large pepperoni pizza', 'intentName': 'ModifyOrder', 'entityLabels': [ { 'entityName': 'Order', 'startCharIndex': 6, 'endCharIndex': 28 }, { 'entityName': 'FullPizzaWithModifiers', 'startCharIndex': 6, 'endCharIndex': 28 }, { 'entityName': 'PizzaType', 'startCharIndex': 14, 'endCharIndex': 28 }, { 'entityName': 'Size', 'startCharIndex': 8, 'endCharIndex': 12 } ] }, { 'text': 'I want two large pepperoni pizzas on thin crust', 'intentName': 'ModifyOrder', 'entityLabels': [ { 'entityName': 'Order', 'startCharIndex': 7, 'endCharIndex': 46 }, { 'entityName': 'FullPizzaWithModifiers', 'startCharIndex': 7, 'endCharIndex': 46 }, { 'entityName': 'PizzaType', 'startCharIndex': 17, 'endCharIndex': 32 }, { 'entityName': 'Size', 'startCharIndex': 11, 'endCharIndex': 15 }, { 'entityName': 'Quantity', 'startCharIndex': 7, 'endCharIndex': 9 }, { 'entityName': 'Crust', 'startCharIndex': 37, 'endCharIndex': 46 } ] } ] 201 [ { "value": { "ExampleId": 1137150691, "UtteranceText": "order a pizza" }, "hasError": false }, { "value": { "ExampleId": 1137150692, "UtteranceText": "order a large pepperoni pizza" }, "hasError": false }, { "value": { "ExampleId": 1137150693, "UtteranceText": "i want two large pepperoni pizzas on thin crust" }, "hasError": false } ] training selected body 202 { "statusId": 9, "status": "Queued" } training status selected body 200 [ { "modelId": "edb46abf-0000-41ab-beb2-a41a0fe1630f", "details": { "statusId": 9, "status": "Queued", "exampleCount": 0 } }, { "modelId": "a5030be2-616c-4648-bf2f-380fa9417d37", "details": { "statusId": 9, "status": "Queued", "exampleCount": 0 } }, { "modelId": "3f2b1f31-a3c3-4fbd-8182-e9d9dbc120b9", "details": { "statusId": 9, "status": "Queued", "exampleCount": 0 } }, { "modelId": "e4b6704b-1636-474c-9459-fe9ccbeba51c", "details": { "statusId": 9, "status": "Queued", "exampleCount": 0 } }, { "modelId": "031d3777-2a00-4a7a-9323-9a3280a30000", "details": { "statusId": 9, "status": "Queued", "exampleCount": 0 } }, { "modelId": "9250e7a1-06eb-4413-9432-ae132ed32583", "details": { "statusId": 9, "status": "Queued", "exampleCount": 0 } } ]
Membersihkan sumber daya
Saat Anda selesai dengan mulai cepat ini, hapus file dari sistem file.
Langkah berikutnya
Sampel dokumentasi | referensi
Prasyarat
- Bahasa pemrograman Node.js
- Visual Studio Code
Contoh file JSON mengucapkan
Contoh ucapan mengikuti format tertentu.
Bidang text berisi teks ucapan contoh. Bidang intentName harus sesuai dengan nama niat yang ada di aplikasi LUIS. Bidang entityLabels wajib diisi. Jika Anda tidak ingin memberi label entitas apa pun, berikan array kosong.
Jika array entityLabels tidak kosong, startCharIndex dan endCharIndex perlu menandai entitas yang dimaksud di bidang entityName. Indeks berbasis nol. Jika Anda memulai atau mengakhiri label di spasi dalam teks, panggilan API untuk menambahkan ucapan gagal.
[
{
"text": "order a pizza",
"intentName": "ModifyOrder",
"entityLabels": [
{
"entityName": "Order",
"startCharIndex": 6,
"endCharIndex": 12
}
]
},
{
"text": "order a large pepperoni pizza",
"intentName": "ModifyOrder",
"entityLabels": [
{
"entityName": "Order",
"startCharIndex": 6,
"endCharIndex": 28
},
{
"entityName": "FullPizzaWithModifiers",
"startCharIndex": 6,
"endCharIndex": 28
},
{
"entityName": "PizzaType",
"startCharIndex": 14,
"endCharIndex": 28
},
{
"entityName": "Size",
"startCharIndex": 8,
"endCharIndex": 12
}
]
},
{
"text": "I want two large pepperoni pizzas on thin crust",
"intentName": "ModifyOrder",
"entityLabels": [
{
"entityName": "Order",
"startCharIndex": 7,
"endCharIndex": 46
},
{
"entityName": "FullPizzaWithModifiers",
"startCharIndex": 7,
"endCharIndex": 46
},
{
"entityName": "PizzaType",
"startCharIndex": 17,
"endCharIndex": 32
},
{
"entityName": "Size",
"startCharIndex": 11,
"endCharIndex": 15
},
{
"entityName": "Quantity",
"startCharIndex": 7,
"endCharIndex": 9
},
{
"entityName": "Crust",
"startCharIndex": 37,
"endCharIndex": 46
}
]
}
]
Membuat proyek Node.js Anda
Buat folder baru untuk menyimpan proyek Node.js Anda, seperti
node-model-with-rest.Buka Perintah baru, navigasi ke folder yang Anda buat dan jalankan perintah berikut:
npm initTekan Enter di setiap perintah untuk menerima pengaturan default.
Instal modul request-promise dengan memasukkan perintah berikut:
npm install --save request npm install --save request-promise npm install --save querystring
Ubah model secara terprogram
Buat file baru bernama
model.js. Tambahkan kode berikut:// // This quickstart shows how to add utterances to a LUIS model using the REST APIs. // var request = require('request-promise'); ////////// // Values to modify. // YOUR-APP-ID: The App ID GUID found on the www.luis.ai Application Settings page. const LUIS_appId = "PASTE_YOUR_LUIS_APP_ID_HERE"; // YOUR-AUTHORING-KEY: Your LUIS authoring key, 32 character value. const LUIS_authoringKey = "PASTE_YOUR_LUIS_AUTHORING_SUBSCRIPTION_KEY_HERE"; // YOUR-AUTHORING-ENDPOINT: Replace this with your authoring key endpoint. // For example, "https://your-resource-name.cognitiveservices.azure.com/" const LUIS_endpoint = "PASTE_YOUR_LUIS_AUTHORING_ENDPOINT_HERE"; // NOTE: Replace this your version number. The Pizza app uses a version number of "0.1". const LUIS_versionId = "0.1"; ////////// const addUtterancesURI = `${LUIS_endpoint}luis/authoring/v3.0-preview/apps/${LUIS_appId}/versions/${LUIS_versionId}/examples`; const addTrainURI = `${LUIS_endpoint}luis/authoring/v3.0-preview/apps/${LUIS_appId}/versions/${LUIS_versionId}/train`; const utterances = [ { 'text': 'order a pizza', 'intentName': 'ModifyOrder', 'entityLabels': [ { 'entityName': 'Order', 'startCharIndex': 6, 'endCharIndex': 12 } ] }, { 'text': 'order a large pepperoni pizza', 'intentName': 'ModifyOrder', 'entityLabels': [ { 'entityName': 'Order', 'startCharIndex': 6, 'endCharIndex': 28 }, { 'entityName': 'FullPizzaWithModifiers', 'startCharIndex': 6, 'endCharIndex': 28 }, { 'entityName': 'PizzaType', 'startCharIndex': 14, 'endCharIndex': 28 }, { 'entityName': 'Size', 'startCharIndex': 8, 'endCharIndex': 12 } ] }, { 'text': 'I want two large pepperoni pizzas on thin crust', 'intentName': 'ModifyOrder', 'entityLabels': [ { 'entityName': 'Order', 'startCharIndex': 7, 'endCharIndex': 46 }, { 'entityName': 'FullPizzaWithModifiers', 'startCharIndex': 7, 'endCharIndex': 46 }, { 'entityName': 'PizzaType', 'startCharIndex': 17, 'endCharIndex': 32 }, { 'entityName': 'Size', 'startCharIndex': 11, 'endCharIndex': 15 }, { 'entityName': 'Quantity', 'startCharIndex': 7, 'endCharIndex': 9 }, { 'entityName': 'Crust', 'startCharIndex': 37, 'endCharIndex': 46 } ] } ]; // Main function. const main = async() =>{ await addUtterances(utterances); await train("POST"); await train("GET"); } // Adds the utterances to the model. const addUtterances = async (utterances) => { const options = { uri: addUtterancesURI, method: 'POST', headers: { 'Ocp-Apim-Subscription-Key': LUIS_authoringKey }, json: true, body: utterances }; const response = await request(options) console.log("addUtterance:\n" + JSON.stringify(response, null, 2)); } // With verb === "POST", sends a training request. // With verb === "GET", obtains the training status. const train = async (verb) => { const options = { uri: addTrainURI, method: verb, headers: { 'Ocp-Apim-Subscription-Key': LUIS_authoringKey }, json: true, body: null // The body can be empty for a training request }; const response = await request(options) console.log("train " + verb + ":\n" + JSON.stringify(response, null, 2)); } // MAIN main().then(() => console.log("done")).catch((err)=> console.log(err));Ganti nilai yang dimulai dengan
YOUR-dengan nilai Anda sendiri.Informasi Tujuan YOUR-APP-IDID aplikasi LUIS. YOUR-AUTHORING-KEYKunci penulisan 32 karakter. YOUR-AUTHORING-ENDPOINTTitik akhir URL penulisan. Contohnya: https://replace-with-your-resource-name.api.cognitive.microsoft.com/Anda mengatur nama sumber daya saat membuat sumber daya.Kunci dan sumber daya yang ditetapkan terlihat di portal LUIS di bagian Kelola, di halaman Sumber daya Azure. ID aplikasi tersedia di bagian Kelola yang sama, pada halaman Pengaturan Aplikasi.
Pada prompt perintah, masukkan perintah berikut untuk menjalankan proyek:
node model.jsTinjau respons penulisan:
addUtterance: [ { "value": { "ExampleId": 1137150691, "UtteranceText": "order a pizza" }, "hasError": false }, { "value": { "ExampleId": 1137150692, "UtteranceText": "order a large pepperoni pizza" }, "hasError": false }, { "value": { "ExampleId": 1137150693, "UtteranceText": "i want two large pepperoni pizzas on thin crust" }, "hasError": false } ] train POST: { "statusId": 9, "status": "Queued" } train GET: [ { "modelId": "edb46abf-0000-41ab-beb2-a41a0fe1630f", "details": { "statusId": 9, "status": "Queued", "exampleCount": 0 } }, { "modelId": "a5030be2-616c-4648-bf2f-380fa9417d37", "details": { "statusId": 9, "status": "Queued", "exampleCount": 0 } }, { "modelId": "3f2b1f31-a3c3-4fbd-8182-e9d9dbc120b9", "details": { "statusId": 9, "status": "Queued", "exampleCount": 0 } }, { "modelId": "e4b6704b-1636-474c-9459-fe9ccbeba51c", "details": { "statusId": 9, "status": "Queued", "exampleCount": 0 } }, { "modelId": "031d3777-2a00-4a7a-9323-9a3280a30000", "details": { "statusId": 9, "status": "Queued", "exampleCount": 0 } }, { "modelId": "9250e7a1-06eb-4413-9432-ae132ed32583", "details": { "statusId": 9, "status": "Queued", "exampleCount": 0 } } ] done
Membersihkan sumber daya
Saat Anda selesai dengan mulai cepat ini, hapus folder proyek dari sistem file.
Langkah berikutnya
Sampel dokumentasi | referensi
Prasyarat
- Python 3.6 atau yang lebih baru.
- Visual Studio Code
Contoh file JSON mengucapkan
Contoh ucapan mengikuti format tertentu.
Bidang text berisi teks ucapan contoh. Bidang intentName harus sesuai dengan nama niat yang ada di aplikasi LUIS. Bidang entityLabels wajib diisi. Jika Anda tidak ingin memberi label entitas apa pun, berikan array kosong.
Jika array entityLabels tidak kosong, startCharIndex dan endCharIndex perlu menandai entitas yang dimaksud di bidang entityName. Indeks berbasis nol. Jika Anda memulai atau mengakhiri label di spasi dalam teks, panggilan API untuk menambahkan ucapan gagal.
[
{
"text": "order a pizza",
"intentName": "ModifyOrder",
"entityLabels": [
{
"entityName": "Order",
"startCharIndex": 6,
"endCharIndex": 12
}
]
},
{
"text": "order a large pepperoni pizza",
"intentName": "ModifyOrder",
"entityLabels": [
{
"entityName": "Order",
"startCharIndex": 6,
"endCharIndex": 28
},
{
"entityName": "FullPizzaWithModifiers",
"startCharIndex": 6,
"endCharIndex": 28
},
{
"entityName": "PizzaType",
"startCharIndex": 14,
"endCharIndex": 28
},
{
"entityName": "Size",
"startCharIndex": 8,
"endCharIndex": 12
}
]
},
{
"text": "I want two large pepperoni pizzas on thin crust",
"intentName": "ModifyOrder",
"entityLabels": [
{
"entityName": "Order",
"startCharIndex": 7,
"endCharIndex": 46
},
{
"entityName": "FullPizzaWithModifiers",
"startCharIndex": 7,
"endCharIndex": 46
},
{
"entityName": "PizzaType",
"startCharIndex": 17,
"endCharIndex": 32
},
{
"entityName": "Size",
"startCharIndex": 11,
"endCharIndex": 15
},
{
"entityName": "Quantity",
"startCharIndex": 7,
"endCharIndex": 9
},
{
"entityName": "Crust",
"startCharIndex": 37,
"endCharIndex": 46
}
]
}
]
Buat aplikasi Pizza
Buat aplikasi pizza.
- Pilih pizza-app-for-luis-v6.jsanda untuk memunculkan halaman GitHub untuk file
pizza-app-for-luis.jsontersebut. - Klik kanan atau ketuk lama tombol Mentah dan pilih Simpan tautan sebagai untuk menyimpan
pizza-app-for-luis.jsonke komputer Anda. - Masuk ke portal LUIS.
- Pilih Aplikasi Saya.
- Di halaman Aplikasi Saya, pilih + Aplikasi baru untuk percakapan.
- Pilih Impor sebagai JSON.
- Di dialog Impor aplikasi baru, pilih tombol Pilih File.
- Pilih file
pizza-app-for-luis.jsonyang Anda unduh, lalu pilih Buka. - Di dialog Impor aplikasi baru bidang Nama, masukkan nama untuk aplikasi Pizza Anda, lalu pilih tombol Selesai.
Aplikasi akan diimpor.
Jika Anda melihat dialog Cara membuat aplikasi LUIS yang efektif, tutup dialog.
Melatih dan menerbitkan aplikasi Pizza
Anda akan melihat halaman Niat dengan daftar niat di aplikasi Pizza.
Di sisi kanan atas situs web LUIS, pilih tombol Train.

Pelatihan selesai ketika tombol Train dinonaktifkan.
Untuk menerima prediksi LUIS di bot obrolan atau aplikasi klien lainnya, Anda perlu memublikasikan aplikasi ke titik akhir prediksi.
Pilih Terbitkan di navigasi kanan atas.

Pilih slot Produksi, lalu pilih Selesai.

Pilih Akses URL titik akhir Anda di pemberitahuan untuk masuk ke halaman Sumber Daya Azure. Anda hanya akan dapat melihat URL jika Anda memiliki sumber daya prediksi yang terkait dengan aplikasi. Anda juga bisa menemukan halaman Sumber Daya Azure dengan mengeklik Kelola.

Menambahkan sumber daya penulisan ke aplikasi Pizza
- Pilih KELOLA.
- Pilih Sumber daya Azure.
- Pilih Sumber Daya Penulisan.
- Pilih Ubah sumber daya penulisan.
Jika Anda memiliki sumber daya penulisan, masukkan Nama Penyewa, Nama Langganan, dan Nama sumber daya LUIS dari sumber daya penulisan Anda.
Jika Anda tidak memiliki sumber daya penulisan:
- Pilih Buat sumber daya baru.
- Masukkan Nama Penyewa, Nama Sumber Daya, Nama Langganan, dan Nama Grup Sumber Daya Azure.
Aplikasi Pizza Anda kini siap digunakan.
Mencatat nilai akses untuk aplikasi Pizza
Untuk menggunakan aplikasi Pizza baru, Anda memerlukan ID aplikasi, kunci penulisan, dan penulisan titik akhir aplikasi Pizza Anda. Untuk mendapatkan prediksi, Anda akan memerlukan titik akhir prediksi dan kunci prediksi terpisah.
Untuk menemukan nilai-nilai tersebut:
- Dari halaman Niat, pilih KELOLA.
- Dari halaman Pengaturan Aplikasi, rekam ID Aplikasi.
- Pilih Sumber daya Azure.
- Pilih Sumber Daya Penulisan.
- Dari tab Sumber Daya Penulisan dan Sumber Daya Prediksi, catat Kunci Primer. Nilai ini adalah kunci penulisan Anda.
- Catat URL Titik Akhir. Nilai ini adalah titik akhir penulisan Anda.
Mengubah model secara terprogram
Buat file baru bernama
model.py. Tambahkan kode berikut:########### Python 3.6 ############# # # This quickstart shows how to add utterances to a LUIS model using the REST APIs. # import requests try: ########## # Values to modify. # YOUR-APP-ID: The App ID GUID found on the www.luis.ai Application Settings page. appId = "PASTE_YOUR_LUIS_APP_ID_HERE" # YOUR-AUTHORING-KEY: Your LUIS authoring key, 32 character value. authoring_key = "PASTE_YOUR_LUIS_AUTHORING_SUBSCRIPTION_KEY_HERE" # YOUR-AUTHORING-ENDPOINT: Replace this with your authoring key endpoint. # For example, "https://your-resource-name.cognitiveservices.azure.com/" authoring_endpoint = "PASTE_YOUR_LUIS_AUTHORING_ENDPOINT_HERE" # The version number of your LUIS app app_version = "0.1" ########## # The headers to use in this REST call. headers = {'Ocp-Apim-Subscription-Key': authoring_key} # The URL parameters to use in this REST call. params ={ #'timezoneOffset': '0', #'verbose': 'true', #'show-all-intents': 'true', #'spellCheck': 'false', #'staging': 'false' } # List of example utterances to send to the LUIS app. data = """[ { 'text': 'order a pizza', 'intentName': 'ModifyOrder', 'entityLabels': [ { 'entityName': 'Order', 'startCharIndex': 6, 'endCharIndex': 12 } ] }, { 'text': 'order a large pepperoni pizza', 'intentName': 'ModifyOrder', 'entityLabels': [ { 'entityName': 'Order', 'startCharIndex': 6, 'endCharIndex': 28 }, { 'entityName': 'FullPizzaWithModifiers', 'startCharIndex': 6, 'endCharIndex': 28 }, { 'entityName': 'PizzaType', 'startCharIndex': 14, 'endCharIndex': 28 }, { 'entityName': 'Size', 'startCharIndex': 8, 'endCharIndex': 12 } ] }, { 'text': 'I want two large pepperoni pizzas on thin crust', 'intentName': 'ModifyOrder', 'entityLabels': [ { 'entityName': 'Order', 'startCharIndex': 7, 'endCharIndex': 46 }, { 'entityName': 'FullPizzaWithModifiers', 'startCharIndex': 7, 'endCharIndex': 46 }, { 'entityName': 'PizzaType', 'startCharIndex': 17, 'endCharIndex': 32 }, { 'entityName': 'Size', 'startCharIndex': 11, 'endCharIndex': 15 }, { 'entityName': 'Quantity', 'startCharIndex': 7, 'endCharIndex': 9 }, { 'entityName': 'Crust', 'startCharIndex': 37, 'endCharIndex': 46 } ] } ] """ # Make the REST call to POST the list of example utterances. response = requests.post(f'{authoring_endpoint}luis/authoring/v3.0-preview/apps/{appId}/versions/{app_version}/examples', headers=headers, params=params, data=data) # Display the results on the console. print('Add the list of utterances:') print(response.json()) # Make the REST call to initiate a training session. response = requests.post(f'{authoring_endpoint}luis/authoring/v3.0-preview/apps/{appId}/versions/{app_version}/train', headers=headers, params=params, data=None) # Display the results on the console. print('Request training:') print(response.json()) # Make the REST call to request the status of training. response = requests.get(f'{authoring_endpoint}luis/authoring/v3.0-preview/apps/{appId}/versions/{app_version}/train', headers=headers, params=params, data=None) # Display the results on the console. print('Request training status:') print(response.json()) except Exception as e: # Display the error string. print(f'{e}')Ganti nilai yang dimulai dengan
YOUR-dengan nilai Anda sendiri.Informasi Tujuan YOUR-APP-IDID aplikasi LUIS. YOUR-AUTHORING-KEYKunci penulisan 32 karakter. YOUR-AUTHORING-ENDPOINTTitik akhir URL penulisan. Contohnya: https://replace-with-your-resource-name.api.cognitive.microsoft.com/Anda mengatur nama sumber daya saat membuat sumber daya.Kunci dan sumber daya yang ditetapkan terlihat di portal LUIS di bagian Kelola, di halaman Sumber daya Azure. ID aplikasi tersedia di bagian Kelola yang sama, pada halaman Pengaturan Aplikasi.
Dengan prompt perintah di direktori yang sama dengan tempat Anda membuat file, masukkan perintah berikut untuk menjalankan file:
python model.pyTinjau respons penulisan:
Add the list of utterances: [{'value': {'ExampleId': 1137150691, 'UtteranceText': 'order a pizza'}, 'hasError': False}, {'value': {'ExampleId': 1137150692, 'UtteranceText': 'order a large pepperoni pizza'}, 'hasError': False}, {'value': {'ExampleId': 1137150693, 'UtteranceText': 'i want two large pepperoni pizzas on thin crust'}, 'hasError': False}] Request training: {'statusId': 9, 'status': 'Queued'} Request training status: [{'modelId': 'edb46abf-0000-41ab-beb2-a41a0fe1630f', 'details': {'statusId': 3, 'status': 'InProgress', 'exampleCount': 0, 'progressSubstatus': 'CollectingData'}}, {'modelId': 'a5030be2-616c-4648-bf2f-380fa9417d37', 'details': {'statusId': 3, 'status': 'InProgress', 'exampleCount': 0, 'progressSubstatus': 'CollectingData'}}, {'modelId': '3f2b1f31-a3c3-4fbd-8182-e9d9dbc120b9', 'details': {'statusId': 3, 'status': 'InProgress', 'exampleCount': 0, 'progressSubstatus': 'CollectingData'}}, {'modelId': 'e4b6704b-1636-474c-9459-fe9ccbeba51c', 'details': {'statusId': 3, 'status': 'InProgress', 'exampleCount': 0, 'progressSubstatus': 'CollectingData'}}, {'modelId': '031d3777-2a00-4a7a-9323-9a3280a30000', 'details': {'statusId': 3, 'status': 'InProgress', 'exampleCount': 0, 'progressSubstatus': 'CollectingData'}}, {'modelId': '9250e7a1-06eb-4413-9432-ae132ed32583', 'details': {'statusId': 3, 'status': 'InProgress', 'exampleCount': 0, 'progressSubstatus': 'CollectingData'}}]Berikut adalah output yang diformat untuk keterbacaan:
Add the list of utterances: [ { 'value': { 'ExampleId': 1137150691, 'UtteranceText': 'order a pizza' }, 'hasError': False }, { 'value': { 'ExampleId': 1137150692, 'UtteranceText': 'order a large pepperoni pizza' }, 'hasError': False }, { 'value': { 'ExampleId': 1137150693, 'UtteranceText': 'i want two large pepperoni pizzas on thin crust' }, 'hasError': False } ] Request training: { 'statusId': 9, 'status': 'Queued' } Request training status: [ { 'modelId': 'edb46abf-0000-41ab-beb2-a41a0fe1630f', 'details': { 'statusId': 3, 'status': 'InProgress', 'exampleCount': 0, 'progressSubstatus': 'CollectingData' } }, { 'modelId': 'a5030be2-616c-4648-bf2f-380fa9417d37', 'details': { 'statusId': 3, 'status': 'InProgress', 'exampleCount': 0, 'progressSubstatus': 'CollectingData' } }, { 'modelId': '3f2b1f31-a3c3-4fbd-8182-e9d9dbc120b9', 'details': { 'statusId': 3, 'status': 'InProgress', 'exampleCount': 0, 'progressSubstatus': 'CollectingData' } }, { 'modelId': 'e4b6704b-1636-474c-9459-fe9ccbeba51c', 'details': { 'statusId': 3, 'status': 'InProgress', 'exampleCount': 0, 'progressSubstatus': 'CollectingData' } }, { 'modelId': '031d3777-2a00-4a7a-9323-9a3280a30000', 'details': { 'statusId': 3, 'status': 'InProgress', 'exampleCount': 0, 'progressSubstatus': 'CollectingData' } }, { 'modelId': '9250e7a1-06eb-4413-9432-ae132ed32583', 'details': { 'statusId': 3, 'status': 'InProgress', 'exampleCount': 0, 'progressSubstatus': 'CollectingData' } } ]
Membersihkan sumber daya
Saat Anda selesai dengan mulai cepat ini, hapus file dari sistem file.