Aracılığıyla paylaş


REST API'leri ile LUIS modelini güncelleştirme

Önemli

LUIS 1 Ekim 2025'te kullanımdan kaldırılacak ve 1 Nisan 2023'den itibaren yeni LUIS kaynakları oluşturamayacaksınız. Devam eden ürün desteği ve çok dilli özelliklerden yararlanmak için LUIS uygulamalarınızı konuşma dili anlayışına geçirmenizi öneririz.

Bu makalede, bir Pizza uygulamasına örnek konuşmalar ekleyecek ve uygulamayı eğiteceksiniz. Örnek konuşmalar, bir amaçla eşleşmiş kullanıcı konuşma metinleridir. Amaçlar için örnek konuşmalar sağlayarak, LUIS’e kullanıcı tarafından sağlanan hangi tür metinlerin hangi amaca ait olduğunu öğretirsiniz.

Başvuru belgeleri | Örneği

Önkoşullar

Örnek konuşmalar JSON dosyası

Örnek konuşmalar belirli bir biçimi izler.

text alanı, örnek konuşmanın metnini içerir. intentName alanı, LUIS uygulaması içindeki mevcut bir amacın adına karşılık gelmelidir. entityLabels alanı gereklidir. Herhangi bir varlığı etiketlemek istemiyorsanız, boş bir dizi girin.

entityLabels dizisi boş değilse startCharIndex ve endCharIndex değerlerinin entityName alanında başvurulan varlığı işaretlemesi gerekir. Dizin sıfır tabanlıdır. Etiketi metindeki bir boşlukta başlatır veya sonlarsanız, konuşmaları eklemek için API çağrısı başarısız olur.

[
  {
    "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
      }
    ]
  }
]

Pizza uygulaması oluşturma

Pizza uygulamasını oluşturun.

  1. Dosyanın GitHub sayfasını açmak için pizza-app-for-luis-v6.json seçinpizza-app-for-luis.json.
  2. Ham düğmesine sağ tıklayın veya uzun dokunun ve bağlantıyı farklı kaydet'i seçerek bilgisayarınıza kaydedinpizza-app-for-luis.json.
  3. LUIS portalında oturum açın.
  4. Uygulamalarım'ı seçin.
  5. Uygulamalarım sayfasında + Konuşma için yeni uygulama'yı seçin.
  6. JSON olarak içeri aktar'ı seçin.
  7. Yeni uygulamayı içeri aktar iletişim kutusunda Dosya Seç düğmesini seçin.
  8. pizza-app-for-luis.json İndirdiğiniz dosyayı ve ardından Aç'ı seçin.
  9. Yeni uygulamayı içeri aktar iletişim kutusu Adı alanına Pizza uygulamanız için bir ad girin ve Bitti düğmesini seçin.

Uygulama içeri aktarılır.

Etkili bir LUIS uygulaması oluşturma iletişim kutusu görürseniz iletişim kutusunu kapatın.

Pizza uygulamasını eğitin ve yayımlayın

Pizza uygulamasında amaçların listesini içeren Amaçlar sayfasını görmeniz gerekir.

  1. LUIS web sitesinin sağ üst kısmında Eğit düğmesini seçin.

    Train (Eğitim) düğmesi

  2. Eğit düğmesi devre dışı bırakıldığında eğitim tamamlanır.

Sohbet botunda veya diğer istemci uygulamalarında LUIS tahmini almak için uygulamayı tahmin uç noktasında yayımlamanız gerekir.

  1. Sağ üst gezinti bölmesinde Yayımla'yı seçin.

    Uç noktaya yayımlama düğmesinin ekran görüntüsü.

  2. Üretim yuvasını ve ardından Bitti'yi seçin.

    Luis'in uç noktaya yayımlama işleminin ekran görüntüsü.

  3. Azure Kaynakları sayfasına gitmek için bildirimde Uç nokta URL'lerinize eriş'i seçin. URL'leri yalnızca uygulamayla ilişkilendirilmiş bir tahmin kaynağınız varsa görebilirsiniz. Yönet'e tıklayarak Azure Kaynakları sayfasını da bulabilirsiniz.

    Uygulamanın yayımlandığını gösteren iletinin ekran görüntüsü.

Pizza uygulamasına yazma kaynağı ekleme

  1. YÖNET'i seçin.
  2. Azure Kaynakları’nı seçin.
  3. Yazma Kaynağı'nı seçin.
  4. Yazma kaynağını değiştir'i seçin.

Yazma kaynağınız varsa, yazma kaynağınızın Kiracı Adı, Abonelik Adı ve LUIS kaynak adını girin.

Yazma kaynağınız yoksa:

  1. Yeni kaynak oluştur'u seçin.
  2. Kiracı Adı, Kaynak Adı, Abonelik Adı ve Azure Kaynak Grubu Adı girin.

Pizza uygulamanız artık kullanıma hazırdır.

Pizza uygulamanız için erişim değerlerini kaydetme

Yeni Pizza uygulamanızı kullanmak için Pizza uygulamanızın uygulama kimliği, yazma anahtarı ve yazma uç noktası gerekir. Tahminleri almak için ayrı tahmin uç noktanız ve tahmin anahtarınız olması gerekir.

Bu değerleri bulmak için:

  1. Amaçlar sayfasında YÖNET'i seçin.
  2. Uygulama Ayarlar sayfasından Uygulama Kimliğini kaydedin.
  3. Azure Kaynakları’nı seçin.
  4. Yazma Kaynağı'nı seçin.
  5. Yazma Kaynağı ve Tahmin Kaynakları sekmelerinden Birincil Anahtarı kaydedin. Bu değer yazma anahtarınızdır.
  6. Uç Nokta URL'sini kaydedin. Bu değer, yazma uç noktanızdır.

Modeli program aracılığıyla değiştirme

  1. Proje ve klasör adı csharp-model-with-restile C# dilini hedefleyen yeni bir konsol uygulaması oluşturun.

    dotnet new console -lang C# -n csharp-model-with-rest
    
  2. Oluşturduğunuz dizine csharp-model-with-rest geçin ve aşağıdaki komutlarla gerekli bağımlılıkları yükleyin:

    cd csharp-model-with-rest
    dotnet add package System.Net.Http
    dotnet add package JsonFormatterPlus
    
  3. Program.cs içeriğini şu kodla değiştirin:

    //
    // 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();
            }
        }
    }
    
  4. ile YOUR- başlayan değerleri kendi değerlerinizle değiştirin.

    Bilgiler Purpose
    YOUR-APP-ID LUIS uygulama kimliğiniz.
    YOUR-AUTHORING-KEY 32 karakter yazma anahtarınız.
    YOUR-AUTHORING-ENDPOINT Yazma URL'si uç noktanız. Örneğin, https://replace-with-your-resource-name.api.cognitive.microsoft.com/. Kaynağı oluştururken kaynak adınızı ayarlarsınız.

    Atanan anahtarlar ve kaynaklar Luis portalında, Azure kaynakları sayfasındaki Yönet bölümünde görünür. Uygulama kimliği, Uygulama Ayarlar sayfasındaki aynı Yönet bölümünde bulunur.

    Önemli

    İşiniz bittiğinde anahtarı kodunuzdan kaldırmayı unutmayın ve asla herkese açık olarak göndermeyin. Üretim için Azure Key Vault gibi kimlik bilgilerinizi depolamanın ve bunlara erişmenin güvenli bir yolunu kullanın. Daha fazla bilgi için Azure AI hizmetleri güvenlik makalesine bakın.

  5. Konsol uygulamasını derleyin.

    dotnet build
    
  6. Konsol uygulamasını çalıştırın.

    dotnet run
    
  7. Yazma yanıtını gözden geçirin:

    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
            }
        }
    ]
    

Kaynakları temizleme

Bu hızlı başlangıcı tamamladığınızda proje klasörünü dosya sisteminden silin.

Sonraki adımlar

Bir uygulama için en iyi yöntemler

Başvuru belgeleri | Örneği

Önkoşullar

Örnek konuşmalar JSON dosyası

Örnek konuşmalar belirli bir biçimi izler.

text alanı, örnek konuşmanın metnini içerir. intentName alanı, LUIS uygulaması içindeki mevcut bir amacın adına karşılık gelmelidir. entityLabels alanı gereklidir. Herhangi bir varlığı etiketlemek istemiyorsanız, boş bir dizi girin.

entityLabels dizisi boş değilse startCharIndex ve endCharIndex değerlerinin entityName alanında başvurulan varlığı işaretlemesi gerekir. Dizin sıfır tabanlıdır. Etiketi metindeki bir boşlukta başlatır veya sonlarsanız, konuşmaları eklemek için API çağrısı başarısız olur.

[
  {
    "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
      }
    ]
  }
]

Modeli program aracılığıyla değiştirme

  1. Java projenizi barındırmak için gibi java-model-with-restyeni bir klasör oluşturun.

  2. adlı lib bir alt dizin oluşturun ve aşağıdaki Java kitaplıklarında alt dizine lib kopyalayın:

  3. Model.java adlı yeni bir dosya oluşturun. Şu kodu ekleyin:

    //
    // 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());
            }
        }
    }
    
  4. ile YOUR- başlayan değerleri kendi değerlerinizle değiştirin.

    Bilgiler Purpose
    YOUR-APP-ID LUIS uygulama kimliğiniz.
    YOUR-AUTHORING-KEY 32 karakter yazma anahtarınız.
    YOUR-AUTHORING-ENDPOINT Yazma URL'si uç noktanız. Örneğin, https://replace-with-your-resource-name.api.cognitive.microsoft.com/. Kaynağı oluştururken kaynak adınızı ayarlarsınız.

    Atanan anahtarlar ve kaynaklar Luis portalında, Azure kaynakları sayfasındaki Yönet bölümünde görünür. Uygulama kimliği, Uygulama Ayarlar sayfasındaki aynı Yönet bölümünde bulunur.

    Önemli

    İşiniz bittiğinde anahtarı kodunuzdan kaldırmayı unutmayın ve asla herkese açık olarak göndermeyin. Üretim için Azure Key Vault gibi kimlik bilgilerinizi depolamanın ve bunlara erişmenin güvenli bir yolunu kullanın. Daha fazla bilgi için Azure AI hizmetleri güvenlik makalesine bakın.

  5. Dosyayı oluşturduğunuz Model.java dizinde bir komut istemiyle, Java dosyasını derlemek için aşağıdaki komutu girin:

    • Windows kullanıyorsanız şu komutu kullanın: javac -cp ";lib/*" Model.java
    • macOS veya Linux kullanıyorsanız şu komutu kullanın: javac -cp ":lib/*" Model.java
  6. Komut istemine aşağıdaki metni girerek komut satırından Java uygulamasını çalıştırın:

    • Windows kullanıyorsanız şu komutu kullanın: java -cp ";lib/*" Model
    • macOS veya Linux kullanıyorsanız şu komutu kullanın: java -cp ":lib/*" Model
  7. Yazma yanıtını gözden geçirin:

    [{"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"}}]
    

    Okunabilirlik için biçimlendirilmiş çıktı aşağıdadır:

    [
      {
        "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"
        }
      }
    ]
    

Kaynakları temizleme

Bu hızlı başlangıcı tamamladığınızda proje klasörünü dosya sisteminden silin.

Sonraki adımlar

Bir uygulama için en iyi yöntemler

Başvuru belgeleri | Örneği

Önkoşullar

Örnek konuşmalar JSON dosyası

Örnek konuşmalar belirli bir biçimi izler.

text alanı, örnek konuşmanın metnini içerir. intentName alanı, LUIS uygulaması içindeki mevcut bir amacın adına karşılık gelmelidir. entityLabels alanı gereklidir. Herhangi bir varlığı etiketlemek istemiyorsanız, boş bir dizi girin.

entityLabels dizisi boş değilse startCharIndex ve endCharIndex değerlerinin entityName alanında başvurulan varlığı işaretlemesi gerekir. Dizin sıfır tabanlıdır. Etiketi metindeki bir boşlukta başlatır veya sonlarsanız, konuşmaları eklemek için API çağrısı başarısız olur.

[
  {
    "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
      }
    ]
  }
]

Pizza uygulaması oluşturma

Pizza uygulamasını oluşturun.

  1. Dosyanın GitHub sayfasını açmak için pizza-app-for-luis-v6.json seçinpizza-app-for-luis.json.
  2. Ham düğmesine sağ tıklayın veya uzun dokunun ve bağlantıyı farklı kaydet'i seçerek bilgisayarınıza kaydedinpizza-app-for-luis.json.
  3. LUIS portalında oturum açın.
  4. Uygulamalarım'ı seçin.
  5. Uygulamalarım sayfasında + Konuşma için yeni uygulama'yı seçin.
  6. JSON olarak içeri aktar'ı seçin.
  7. Yeni uygulamayı içeri aktar iletişim kutusunda Dosya Seç düğmesini seçin.
  8. pizza-app-for-luis.json İndirdiğiniz dosyayı ve ardından Aç'ı seçin.
  9. Yeni uygulamayı içeri aktar iletişim kutusu Adı alanına Pizza uygulamanız için bir ad girin ve Bitti düğmesini seçin.

Uygulama içeri aktarılır.

Etkili bir LUIS uygulaması oluşturma iletişim kutusu görürseniz iletişim kutusunu kapatın.

Pizza uygulamasını eğitin ve yayımlayın

Pizza uygulamasında amaçların listesini içeren Amaçlar sayfasını görmeniz gerekir.

  1. LUIS web sitesinin sağ üst kısmında Eğit düğmesini seçin.

    Train (Eğitim) düğmesi

  2. Eğit düğmesi devre dışı bırakıldığında eğitim tamamlanır.

Sohbet botunda veya diğer istemci uygulamalarında LUIS tahmini almak için uygulamayı tahmin uç noktasında yayımlamanız gerekir.

  1. Sağ üst gezinti bölmesinde Yayımla'yı seçin.

    Uç noktaya yayımlama düğmesinin ekran görüntüsü.

  2. Üretim yuvasını ve ardından Bitti'yi seçin.

    Luis'in uç noktaya yayımlama işleminin ekran görüntüsü.

  3. Azure Kaynakları sayfasına gitmek için bildirimde Uç nokta URL'lerinize eriş'i seçin. URL'leri yalnızca uygulamayla ilişkilendirilmiş bir tahmin kaynağınız varsa görebilirsiniz. Yönet'e tıklayarak Azure Kaynakları sayfasını da bulabilirsiniz.

    Uygulamanın yayımlandığını gösteren iletinin ekran görüntüsü.

Pizza uygulamasına yazma kaynağı ekleme

  1. YÖNET'i seçin.
  2. Azure Kaynakları’nı seçin.
  3. Yazma Kaynağı'nı seçin.
  4. Yazma kaynağını değiştir'i seçin.

Yazma kaynağınız varsa, yazma kaynağınızın Kiracı Adı, Abonelik Adı ve LUIS kaynak adını girin.

Yazma kaynağınız yoksa:

  1. Yeni kaynak oluştur'u seçin.
  2. Kiracı Adı, Kaynak Adı, Abonelik Adı ve Azure Kaynak Grubu Adı girin.

Pizza uygulamanız artık kullanıma hazırdır.

Pizza uygulamanız için erişim değerlerini kaydetme

Yeni Pizza uygulamanızı kullanmak için Pizza uygulamanızın uygulama kimliği, yazma anahtarı ve yazma uç noktası gerekir. Tahminleri almak için ayrı tahmin uç noktanız ve tahmin anahtarınız olması gerekir.

Bu değerleri bulmak için:

  1. Amaçlar sayfasında YÖNET'i seçin.
  2. Uygulama Ayarlar sayfasından Uygulama Kimliğini kaydedin.
  3. Azure Kaynakları’nı seçin.
  4. Yazma Kaynağı'nı seçin.
  5. Yazma Kaynağı ve Tahmin Kaynakları sekmelerinden Birincil Anahtarı kaydedin. Bu değer yazma anahtarınızdır.
  6. Uç Nokta URL'sini kaydedin. Bu değer, yazma uç noktanızdır.

Modeli program aracılığıyla değiştirme

  1. predict.go adlı yeni bir dosya oluşturun. Şu kodu ekleyin:

    //
    // 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))
        }
    }
    
  2. ile YOUR- başlayan değerleri kendi değerlerinizle değiştirin.

    Bilgiler Purpose
    YOUR-APP-ID LUIS uygulama kimliğiniz.
    YOUR-AUTHORING-KEY 32 karakter yazma anahtarınız.
    YOUR-AUTHORING-ENDPOINT Yazma URL'si uç noktanız. Örneğin, https://replace-with-your-resource-name.api.cognitive.microsoft.com/. Kaynağı oluştururken kaynak adınızı ayarlarsınız.

    Atanan anahtarlar ve kaynaklar Luis portalında, Azure kaynakları sayfasındaki Yönet bölümünde görünür. Uygulama kimliği, Uygulama Ayarlar sayfasındaki aynı Yönet bölümünde bulunur.

    Önemli

    İşiniz bittiğinde anahtarı kodunuzdan kaldırmayı unutmayın ve asla herkese açık olarak göndermeyin. Üretim için Azure Key Vault gibi kimlik bilgilerinizi depolamanın ve bunlara erişmenin güvenli bir yolunu kullanın. Daha fazla bilgi için Azure AI hizmetleri güvenlik makalesine bakın.

  3. Dosyayı oluşturduğunuz dizinde bir komut istemiyle, Go dosyasını derlemek için aşağıdaki komutu girin:

    go build model.go
    
  4. Aşağıdaki metni komut istemine girerek komut satırından Go uygulamasını çalıştırın:

    go run model.go
    
  5. Yazma yanıtını gözden geçirin:

    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}}]
    

    Okunabilirlik için biçimlendirilmiş çıktı aşağıdadır:

    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
        }
      }
    ]
    

Kaynakları temizleme

Bu hızlı başlangıcı tamamladığınızda dosyayı dosya sisteminden silin.

Sonraki adımlar

Bir uygulama için en iyi yöntemler

Başvuru belgeleri | Örneği

Önkoşullar

Örnek konuşmalar JSON dosyası

Örnek konuşmalar belirli bir biçimi izler.

text alanı, örnek konuşmanın metnini içerir. intentName alanı, LUIS uygulaması içindeki mevcut bir amacın adına karşılık gelmelidir. entityLabels alanı gereklidir. Herhangi bir varlığı etiketlemek istemiyorsanız, boş bir dizi girin.

entityLabels dizisi boş değilse startCharIndex ve endCharIndex değerlerinin entityName alanında başvurulan varlığı işaretlemesi gerekir. Dizin sıfır tabanlıdır. Etiketi metindeki bir boşlukta başlatır veya sonlarsanız, konuşmaları eklemek için API çağrısı başarısız olur.

[
  {
    "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
      }
    ]
  }
]

Node.js projesini oluşturma

  1. Node.js projenizi tutmak için gibi node-model-with-restyeni bir klasör oluşturun.

  2. Yeni bir Komut İstemi açın, oluşturduğunuz klasöre gidin ve aşağıdaki komutu yürütür:

    npm init
    

    Varsayılan ayarları kabul etmek için her istemde Enter tuşuna basın.

  3. Aşağıdaki komutu girerek request-promise modülünü yükleyin:

    npm install --save request
    npm install --save request-promise
    npm install --save querystring
    

Modeli program aracılığıyla değiştirme

  1. model.js adlı yeni bir dosya oluşturun. Şu kodu ekleyin:

    //
    // 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));
    
  2. ile YOUR- başlayan değerleri kendi değerlerinizle değiştirin.

    Bilgiler Purpose
    YOUR-APP-ID LUIS uygulama kimliğiniz.
    YOUR-AUTHORING-KEY 32 karakter yazma anahtarınız.
    YOUR-AUTHORING-ENDPOINT Yazma URL'si uç noktanız. Örneğin, https://replace-with-your-resource-name.api.cognitive.microsoft.com/. Kaynağı oluştururken kaynak adınızı ayarlarsınız.

    Atanan anahtarlar ve kaynaklar Luis portalında, Azure kaynakları sayfasındaki Yönet bölümünde görünür. Uygulama kimliği, Uygulama Ayarlar sayfasındaki aynı Yönet bölümünde bulunur.

    Önemli

    İşiniz bittiğinde anahtarı kodunuzdan kaldırmayı unutmayın ve asla herkese açık olarak göndermeyin. Üretim için Azure Key Vault gibi kimlik bilgilerinizi depolamanın ve bunlara erişmenin güvenli bir yolunu kullanın. Daha fazla bilgi için Azure AI hizmetleri güvenlik makalesine bakın.

  3. Projeyi çalıştırmak için komut istemine aşağıdaki komutu girin:

    node model.js
    
  4. Yazma yanıtını gözden geçirin:

    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
    

Kaynakları temizleme

Bu hızlı başlangıcı tamamladığınızda proje klasörünü dosya sisteminden silin.

Sonraki adımlar

Bir uygulama için en iyi yöntemler

Başvuru belgeleri | Örneği

Önkoşullar

Örnek konuşmalar JSON dosyası

Örnek konuşmalar belirli bir biçimi izler.

text alanı, örnek konuşmanın metnini içerir. intentName alanı, LUIS uygulaması içindeki mevcut bir amacın adına karşılık gelmelidir. entityLabels alanı gereklidir. Herhangi bir varlığı etiketlemek istemiyorsanız, boş bir dizi girin.

entityLabels dizisi boş değilse startCharIndex ve endCharIndex değerlerinin entityName alanında başvurulan varlığı işaretlemesi gerekir. Dizin sıfır tabanlıdır. Etiketi metindeki bir boşlukta başlatır veya sonlarsanız, konuşmaları eklemek için API çağrısı başarısız olur.

[
  {
    "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
      }
    ]
  }
]

Pizza uygulaması oluşturma

Pizza uygulamasını oluşturun.

  1. Dosyanın GitHub sayfasını açmak için pizza-app-for-luis-v6.json seçinpizza-app-for-luis.json.
  2. Ham düğmesine sağ tıklayın veya uzun dokunun ve bağlantıyı farklı kaydet'i seçerek bilgisayarınıza kaydedinpizza-app-for-luis.json.
  3. LUIS portalında oturum açın.
  4. Uygulamalarım'ı seçin.
  5. Uygulamalarım sayfasında + Konuşma için yeni uygulama'yı seçin.
  6. JSON olarak içeri aktar'ı seçin.
  7. Yeni uygulamayı içeri aktar iletişim kutusunda Dosya Seç düğmesini seçin.
  8. pizza-app-for-luis.json İndirdiğiniz dosyayı ve ardından Aç'ı seçin.
  9. Yeni uygulamayı içeri aktar iletişim kutusu Adı alanına Pizza uygulamanız için bir ad girin ve Bitti düğmesini seçin.

Uygulama içeri aktarılır.

Etkili bir LUIS uygulaması oluşturma iletişim kutusu görürseniz iletişim kutusunu kapatın.

Pizza uygulamasını eğitin ve yayımlayın

Pizza uygulamasında amaçların listesini içeren Amaçlar sayfasını görmeniz gerekir.

  1. LUIS web sitesinin sağ üst kısmında Eğit düğmesini seçin.

    Train (Eğitim) düğmesi

  2. Eğit düğmesi devre dışı bırakıldığında eğitim tamamlanır.

Sohbet botunda veya diğer istemci uygulamalarında LUIS tahmini almak için uygulamayı tahmin uç noktasında yayımlamanız gerekir.

  1. Sağ üst gezinti bölmesinde Yayımla'yı seçin.

    Uç noktaya yayımlama düğmesinin ekran görüntüsü.

  2. Üretim yuvasını ve ardından Bitti'yi seçin.

    Luis'in uç noktaya yayımlama işleminin ekran görüntüsü.

  3. Azure Kaynakları sayfasına gitmek için bildirimde Uç nokta URL'lerinize eriş'i seçin. URL'leri yalnızca uygulamayla ilişkilendirilmiş bir tahmin kaynağınız varsa görebilirsiniz. Yönet'e tıklayarak Azure Kaynakları sayfasını da bulabilirsiniz.

    Uygulamanın yayımlandığını gösteren iletinin ekran görüntüsü.

Pizza uygulamasına yazma kaynağı ekleme

  1. YÖNET'i seçin.
  2. Azure Kaynakları’nı seçin.
  3. Yazma Kaynağı'nı seçin.
  4. Yazma kaynağını değiştir'i seçin.

Yazma kaynağınız varsa, yazma kaynağınızın Kiracı Adı, Abonelik Adı ve LUIS kaynak adını girin.

Yazma kaynağınız yoksa:

  1. Yeni kaynak oluştur'u seçin.
  2. Kiracı Adı, Kaynak Adı, Abonelik Adı ve Azure Kaynak Grubu Adı girin.

Pizza uygulamanız artık kullanıma hazırdır.

Pizza uygulamanız için erişim değerlerini kaydetme

Yeni Pizza uygulamanızı kullanmak için Pizza uygulamanızın uygulama kimliği, yazma anahtarı ve yazma uç noktası gerekir. Tahminleri almak için ayrı tahmin uç noktanız ve tahmin anahtarınız olması gerekir.

Bu değerleri bulmak için:

  1. Amaçlar sayfasında YÖNET'i seçin.
  2. Uygulama Ayarlar sayfasından Uygulama Kimliğini kaydedin.
  3. Azure Kaynakları’nı seçin.
  4. Yazma Kaynağı'nı seçin.
  5. Yazma Kaynağı ve Tahmin Kaynakları sekmelerinden Birincil Anahtarı kaydedin. Bu değer yazma anahtarınızdır.
  6. Uç Nokta URL'sini kaydedin. Bu değer, yazma uç noktanızdır.

Modeli program aracılığıyla değiştirme

  1. model.py adlı yeni bir dosya oluşturun. Şu kodu ekleyin:

    ########### 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}')
    
  2. ile YOUR- başlayan değerleri kendi değerlerinizle değiştirin.

    Bilgiler Purpose
    YOUR-APP-ID LUIS uygulama kimliğiniz.
    YOUR-AUTHORING-KEY 32 karakter yazma anahtarınız.
    YOUR-AUTHORING-ENDPOINT Yazma URL'si uç noktanız. Örneğin, https://replace-with-your-resource-name.api.cognitive.microsoft.com/. Kaynağı oluştururken kaynak adınızı ayarlarsınız.

    Atanan anahtarlar ve kaynaklar Luis portalında, Azure kaynakları sayfasındaki Yönet bölümünde görünür. Uygulama kimliği, Uygulama Ayarlar sayfasındaki aynı Yönet bölümünde bulunur.

    Önemli

    İşiniz bittiğinde anahtarı kodunuzdan kaldırmayı unutmayın ve asla herkese açık olarak göndermeyin. Üretim için Azure Key Vault gibi kimlik bilgilerinizi depolamanın ve bunlara erişmenin güvenli bir yolunu kullanın. Daha fazla bilgi için Azure AI hizmetleri güvenlik makalesine bakın.

  3. Dosyayı oluşturduğunuz dizinde bir komut istemiyle, dosyayı çalıştırmak için aşağıdaki komutu girin:

    python model.py
    
  4. Yazma yanıtını gözden geçirin:

    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'}}]
    

    Okunabilirlik için biçimlendirilmiş çıktı aşağıdadır:

    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'
        }
      }
    ]
    

Kaynakları temizleme

Bu hızlı başlangıcı tamamladığınızda dosyayı dosya sisteminden silin.

Sonraki adımlar

Bir uygulama için en iyi yöntemler