REST API 'Leri kullanarak amaç alma

Bu makalede, bir kullanıcının konuşma metinden bir amaç olduğunu öğrenmek için bir LUO uygulaması kullanacaksınız. Kullanıcının amaç metnini, pizza uygulamasının HTTP tahmin uç noktasına gönderin. Uç noktada, Lu, doğal dil metnini anlam açısından analiz etmek için pizza uygulamasının modelini uygular, bu da genel amaçlı olarak belirlenir ve uygulamanın konu etki alanıyla ilgili verileri ayıklamaktır.

Bu makale için ücretsiz bir LUIS hesabınız olması gerekir.

Başvuru belgeleri | Örnek

Önkoşullar

Pizza uygulaması oluşturma

  1. Dosya için GitHub sayfasını açmak üzere pizza-app-for-luis-v6.json ' u seçin pizza-app-for-luis.json .
  2. Ham düğmesine sağ tıklayın veya uzun dokunduktan sonra Bağlantıyı farklı kaydet ' i seçerek bilgisayarınıza kaydedin pizza-app-for-luis.json .
  3. Lui portalındaoturum 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 uygulama al Iletişim kutusunda Dosya Seç düğmesini seçin.
  8. pizza-app-for-luis.jsonİndirdiğiniz dosyayı seçin ve ' ı seçin.
  9. Yeni uygulama Içeri aktarma Iletişim kutusu adı alanına, pizza uygulamanız için bir ad girin ve ardından bitti düğmesini seçin.

Uygulama içeri aktarılacak.

Etkin BIR Luo uygulaması oluşturma iletişim kutusunu görürseniz, iletişim kutusunu kapatın.

Pizza uygulamasını eğitme ve yayımlama

Pizza uygulamasındaki amaçları içeren bir liste ile amaçlar sayfasını görmeniz gerekir.

  1. LUSıS Web sitesinin sağ üst tarafında eğitme düğmesini seçin.

    Train (Eğitim) düğmesi

  2. Tren düğmesine ilişkin durum göstergesi yeşil olduğunda eğitim tamamlanmıştır.

Bir sohbet bot veya diğer istemci uygulamasında bir LUO tahmini almak için, uygulamayı tahmin uç noktasına yayımlamanız gerekir.

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

    En sağ menüdeki LUSıS uç noktaya Yayımla düğmesinin ekran görüntüsü

  2. Üretim yuvasını seçin ve bitti' yi seçin.

    Uç noktada bir HALSıS yayımlama ekran görüntüsü

  3. Azure kaynakları sayfasına gitmek için bildirimde uç nokta URL 'lerine erişin ' i seçin. Yalnızca uygulamayla ilişkili bir tahmin kaynağınız varsa URL 'Leri görebilirsiniz. Ayrıca, Yönet' i tıklatarak Azure kaynakları sayfasını bulabilirsiniz.

    Uygulamanın yayımlandığını belirten bir ileti

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

Pizza uygulamanızın uygulama KIMLIĞI, tahmin anahtarı ve tahmin uç noktasını kaydetme

Yeni pizza uygulamanızı kullanmak için, pizza uygulamanızın uygulama KIMLIĞI, tahmin anahtarı ve tahmin uç noktasına ihtiyacınız olacaktır.

Bu değerleri bulmak için:

  1. Amaçlar sayfasından Yönet' i seçin.
  2. Uygulama ayarları sayfasında, uygulama kimliğini kaydedin.
  3. Azure Kaynakları’nı seçin.
  4. Azure kaynakları sayfasından birincil anahtarı kaydedin. Bu değer, tahmin anahtarınıza göre yapılır.
  5. Uç nokta URL 'sini kaydedin. Bu değer, tahmin uç noktanıza ait.

Amacı programlamayla alma

Tahmin uç noktasını sorgulamak ve tahmin sonucu almak Için C# (.NET Core) kullanın.

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

    dotnet new console -lang C# -n csharp-predict-with-rest
    
  2. csharp-predict-with-restOluşturduğunuz dizine geçin ve gerekli bağımlılığı şu komutla birlikte yüklemelisiniz:

    cd csharp-predict-with-rest
    dotnet add package System.Net.Http
    
  3. En Program.cs SEVDIĞINIZ IDE veya düzenleyicide açın. Ardından Program.cs aşağıdaki kodla üzerine yazın:

    //
    // This quickstart shows how to predict the intent of an utterance by using the LUIS REST APIs.
    //
    
    using System;
    using System.Net.Http;
    using System.Web;
    
    namespace predict_with_rest
    {
        class Program
        {
            static void Main(string[] args)
            {
                //////////
                // 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-PREDICTION-KEY: 32 character key.
                var predictionKey = "PASTE_YOUR_LUIS_PREDICTION_SUBSCRIPTION_KEY_HERE";
    
                // YOUR-PREDICTION-ENDPOINT: Example is "https://westus.api.cognitive.microsoft.com/"
                var predictionEndpoint = "PASTE_YOUR_LUIS_PREDICTION_ENDPOINT_HERE";
    
                // An utterance to test the pizza app.
                var utterance = "I want two large pepperoni pizzas on thin crust please";
                //////////
    
                MakeRequest(predictionKey, predictionEndpoint, appId, utterance);
    
                Console.WriteLine("Press ENTER to exit...");
                Console.ReadLine();
            }
    
            static async void MakeRequest(string predictionKey, string predictionEndpoint, string appId, string utterance)
            {
                var client = new HttpClient();
                var queryString = HttpUtility.ParseQueryString(string.Empty);
    
                // The request header contains your subscription key
                client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", predictionKey);
    
                // The "q" parameter contains the utterance to send to LUIS
                queryString["query"] = utterance;
    
                // These optional request parameters are set to their default values
                // queryString["verbose"] = "true";
                // queryString["show-all-intents"] = "true";
                // queryString["staging"] = "false";
                // queryString["timezoneOffset"] = "0";
    
                var predictionEndpointUri = String.Format("{0}luis/prediction/v3.0/apps/{1}/slots/production/predict?{2}", predictionEndpoint, appId, queryString);
    
                // Remove these before updating the article.
                Console.WriteLine("endpoint: " + predictionEndpoint);
                Console.WriteLine("appId: " + appId);
                Console.WriteLine("queryString: " + queryString);
                Console.WriteLine("endpointUri: " + predictionEndpointUri);
    
                var response = await client.GetAsync(predictionEndpointUri);
    
                var strResponseContent = await response.Content.ReadAsStringAsync();
    
                // Display the JSON result from LUIS.
                Console.WriteLine(strResponseContent.ToString());
            }
        }
    }
    
  4. İle başlayan değerleri YOUR- kendi değerlerinizle değiştirin.

    Bilgi Amaç
    YOUR-APP-ID Uygulama KIMLIĞINIZ. Uygulamanızın LUO portalında, uygulama ayarları sayfasında bulunur.
    YOUR-PREDICTION-KEY 32 karakter tahmini anahtarınız. Uygulama için Azure kaynakları sayfasında, LUO portalında bulunur.
    YOUR-PREDICTION-ENDPOINT Tahmin URL 'niz uç noktasıdır. Uygulama için Azure kaynakları sayfasında, LUO portalında bulunur.
    Örneğin, https://westus.api.cognitive.microsoft.com/.
  5. Aşağıdaki komutla konsol uygulaması oluşturun:

    dotnet build
    
  6. Konsol uygulamasını çalıştırın. Konsol çıktısı, daha önce tarayıcı penceresinde gördüğünüz JSON 'ı görüntüler.

    dotnet run
    
  7. JSON olarak döndürülen tahmin yanıtını gözden geçirin:

    {"query":"I want two large pepperoni pizzas on thin crust please","prediction":{"topIntent":"ModifyOrder","intents":{"ModifyOrder":{"score":1.0},"None":{"score":8.55E-09},"Greetings":{"score":1.82222226E-09},"CancelOrder":{"score":1.47272727E-09},"Confirmation":{"score":9.8125E-10}},"entities":{"Order":[{"FullPizzaWithModifiers":[{"PizzaType":["pepperoni pizzas"],"Size":[["Large"]],"Quantity":[2],"Crust":[["Thin"]],"$instance":{"PizzaType":[{"type":"PizzaType","text":"pepperoni pizzas","startIndex":17,"length":16,"score":0.9978157,"modelTypeId":1,"modelType":"Entity Extractor","recognitionSources":["model"]}],"Size":[{"type":"SizeList","text":"large","startIndex":11,"length":5,"score":0.9984481,"modelTypeId":1,"modelType":"Entity Extractor","recognitionSources":["model"]}],"Quantity":[{"type":"builtin.number","text":"two","startIndex":7,"length":3,"score":0.999770939,"modelTypeId":1,"modelType":"Entity Extractor","recognitionSources":["model"]}],"Crust":[{"type":"CrustList","text":"thin crust","startIndex":37,"length":10,"score":0.933985531,"modelTypeId":1,"modelType":"Entity Extractor","recognitionSources":["model"]}]}}],"$instance":{"FullPizzaWithModifiers":[{"type":"FullPizzaWithModifiers","text":"two large pepperoni pizzas on thin crust","startIndex":7,"length":40,"score":0.90681237,"modelTypeId":1,"modelType":"Entity Extractor","recognitionSources":["model"]}]}}],"ToppingList":[["Pepperoni"]],"$instance":{"Order":[{"type":"Order","text":"two large pepperoni pizzas on thin crust","startIndex":7,"length":40,"score":0.9047088,"modelTypeId":1,"modelType":"Entity Extractor","recognitionSources":["model"]}],"ToppingList":[{"type":"ToppingList","text":"pepperoni","startIndex":17,"length":9,"modelTypeId":5,"modelType":"List Entity Extractor","recognitionSources":["model"]}]}}}}
    

    Okunabilirlik için biçimlendirilen JSON yanıtı:

    {
      "query": "I want two large pepperoni pizzas on thin crust please",
      "prediction": {
        "topIntent": "ModifyOrder",
        "intents": {
          "ModifyOrder": {
            "score": 1
          },
          "None": {
            "score": 8.55e-9
          },
          "Greetings": {
            "score": 1.82222226e-9
          },
          "CancelOrder": {
            "score": 1.47272727e-9
          },
          "Confirmation": {
            "score": 9.8125e-10
          }
        },
        "entities": {
          "Order": [
            {
              "FullPizzaWithModifiers": [
                {
                  "PizzaType": [
                    "pepperoni pizzas"
                  ],
                  "Size": [
                    [
                      "Large"
                    ]
                  ],
                  "Quantity": [
                    2
                  ],
                  "Crust": [
                    [
                      "Thin"
                    ]
                  ],
                  "$instance": {
                    "PizzaType": [
                      {
                        "type": "PizzaType",
                        "text": "pepperoni pizzas",
                        "startIndex": 17,
                        "length": 16,
                        "score": 0.9978157,
                        "modelTypeId": 1,
                        "modelType": "Entity Extractor",
                        "recognitionSources": [
                          "model"
                        ]
                      }
                    ],
                    "Size": [
                      {
                        "type": "SizeList",
                        "text": "large",
                        "startIndex": 11,
                        "length": 5,
                        "score": 0.9984481,
                        "modelTypeId": 1,
                        "modelType": "Entity Extractor",
                        "recognitionSources": [
                          "model"
                        ]
                      }
                    ],
                    "Quantity": [
                      {
                        "type": "builtin.number",
                        "text": "two",
                        "startIndex": 7,
                        "length": 3,
                        "score": 0.999770939,
                        "modelTypeId": 1,
                        "modelType": "Entity Extractor",
                        "recognitionSources": [
                          "model"
                        ]
                      }
                    ],
                    "Crust": [
                      {
                        "type": "CrustList",
                        "text": "thin crust",
                        "startIndex": 37,
                        "length": 10,
                        "score": 0.933985531,
                        "modelTypeId": 1,
                        "modelType": "Entity Extractor",
                        "recognitionSources": [
                          "model"
                        ]
                      }
                    ]
                  }
                }
              ],
              "$instance": {
                "FullPizzaWithModifiers": [
                  {
                    "type": "FullPizzaWithModifiers",
                    "text": "two large pepperoni pizzas on thin crust",
                    "startIndex": 7,
                    "length": 40,
                    "score": 0.90681237,
                    "modelTypeId": 1,
                    "modelType": "Entity Extractor",
                    "recognitionSources": [
                      "model"
                    ]
                  }
                ]
              }
            }
          ],
          "ToppingList": [
            [
              "Pepperoni"
            ]
          ],
          "$instance": {
            "Order": [
              {
                "type": "Order",
                "text": "two large pepperoni pizzas on thin crust",
                "startIndex": 7,
                "length": 40,
                "score": 0.9047088,
                "modelTypeId": 1,
                "modelType": "Entity Extractor",
                "recognitionSources": [
                  "model"
                ]
              }
            ],
            "ToppingList": [
              {
                "type": "ToppingList",
                "text": "pepperoni",
                "startIndex": 17,
                "length": 9,
                "modelTypeId": 5,
                "modelType": "List Entity Extractor",
                "recognitionSources": [
                  "model"
                ]
              }
            ]
          }
        }
      }
    }
    

Kaynakları temizleme

Bu hızlı başlangıç ile işiniz bittiğinde, proje klasörünü dosya sisteminden silin.

Sonraki adımlar

Başvuru belgeleri | Örnek

Önkoşullar

Pizza uygulaması oluşturma

  1. Dosya için GitHub sayfasını açmak üzere pizza-app-for-luis-v6.json ' u seçin pizza-app-for-luis.json .
  2. Ham düğmesine sağ tıklayın veya uzun dokunduktan sonra Bağlantıyı farklı kaydet ' i seçerek bilgisayarınıza kaydedin pizza-app-for-luis.json .
  3. Lui portalındaoturum 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 uygulama al Iletişim kutusunda Dosya Seç düğmesini seçin.
  8. pizza-app-for-luis.jsonİndirdiğiniz dosyayı seçin ve ' ı seçin.
  9. Yeni uygulama Içeri aktarma Iletişim kutusu adı alanına, pizza uygulamanız için bir ad girin ve ardından bitti düğmesini seçin.

Uygulama içeri aktarılacak.

Etkin BIR Luo uygulaması oluşturma iletişim kutusunu görürseniz, iletişim kutusunu kapatın.

Pizza uygulamasını eğitme ve yayımlama

Pizza uygulamasındaki amaçları içeren bir liste ile amaçlar sayfasını görmeniz gerekir.

  1. LUSıS Web sitesinin sağ üst tarafında eğitme düğmesini seçin.

    Train (Eğitim) düğmesi

  2. Tren düğmesine ilişkin durum göstergesi yeşil olduğunda eğitim tamamlanmıştır.

Bir sohbet bot veya diğer istemci uygulamasında bir LUO tahmini almak için, uygulamayı tahmin uç noktasına yayımlamanız gerekir.

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

    En sağ menüdeki LUSıS uç noktaya Yayımla düğmesinin ekran görüntüsü

  2. Üretim yuvasını seçin ve bitti' yi seçin.

    Uç noktada bir HALSıS yayımlama ekran görüntüsü

  3. Azure kaynakları sayfasına gitmek için bildirimde uç nokta URL 'lerine erişin ' i seçin. Yalnızca uygulamayla ilişkili bir tahmin kaynağınız varsa URL 'Leri görebilirsiniz. Ayrıca, Yönet' i tıklatarak Azure kaynakları sayfasını bulabilirsiniz.

    Uygulamanın yayımlandığını belirten bir ileti

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

Pizza uygulamanızın uygulama KIMLIĞI, tahmin anahtarı ve tahmin uç noktasını kaydetme

Yeni pizza uygulamanızı kullanmak için, pizza uygulamanızın uygulama KIMLIĞI, tahmin anahtarı ve tahmin uç noktasına ihtiyacınız olacaktır.

Bu değerleri bulmak için:

  1. Amaçlar sayfasından Yönet' i seçin.
  2. Uygulama ayarları sayfasında, uygulama kimliğini kaydedin.
  3. Azure Kaynakları’nı seçin.
  4. Azure kaynakları sayfasından birincil anahtarı kaydedin. Bu değer, tahmin anahtarınıza göre yapılır.
  5. Uç nokta URL 'sini kaydedin. Bu değer, tahmin uç noktanıza ait.

Amacı programlamayla alma

Tahmin uç noktasını sorgulamak ve tahmin sonucu almak için Go kullanın.

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

    //
    // This quickstart shows how to predict the intent of an utterance by using the LUIS REST APIs.
    //
    
    package main
    
    // Import dependencies.
    import (
        "fmt"
        "net/http"
        "net/url"
        "io/ioutil"
        "log"
    )
    
    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-PREDICTION-KEY: Your LUIS authoring key, 32 character value.
        var predictionKey = "PASTE_YOUR_LUIS_PREDICTION_SUBSCRIPTION_KEY_HERE"
    
        // YOUR-PREDICTION-ENDPOINT: Replace with your authoring key endpoint.
        // For example, "https://westus.api.cognitive.microsoft.com/"
        var predictionEndpoint = "PASTE_YOUR_LUIS_PREDICTION_ENDPOINT_HERE"
    
        // utterance for public app
        var utterance = "I want two large pepperoni pizzas on thin crust please"
        //////////
    
        // Call the prediction endpoint.
        endpointPrediction(appID, predictionKey, predictionEndpoint, utterance)
    }
    
    // Calls the prediction endpoint and displays the prediction results on the console.
    func endpointPrediction(appID string, predictionKey string, predictionEndpoint string, utterance string) {
    
        var endpointUrl = fmt.Sprintf("%sluis/prediction/v3.0/apps/%s/slots/production/predict?subscription-key=%s&verbose=true&show-all-intents=true&query=%s", predictionEndpoint, appID, predictionKey, url.QueryEscape(utterance))
    
        response, err := http.Get(endpointUrl)
    
        if err != nil {
            // handle error
            fmt.Println("error from Get")
            log.Fatal(err)
        }
    
        response2, err2 := ioutil.ReadAll(response.Body)
    
        if err2 != nil {
            // handle error
            fmt.Println("error from ReadAll")
            log.Fatal(err2)
        }
    
        fmt.Println("response")
        fmt.Println(string(response2))
    }
    
  2. İle başlayan değerleri YOUR- kendi değerlerinizle değiştirin.

    Bilgi Amaç
    YOUR-APP-ID Uygulama KIMLIĞINIZ. Uygulamanızın LUO portalında, uygulama ayarları sayfasında bulunur.
    YOUR-PREDICTION-KEY 32 karakter tahmini anahtarınız. Uygulama için Azure kaynakları sayfasında, LUO portalında bulunur.
    YOUR-PREDICTION-ENDPOINT Tahmin URL 'niz uç noktasıdır. Uygulama için Azure kaynakları sayfasında, LUO portalında bulunur.
    Örneğin, https://westus.api.cognitive.microsoft.com/.
  3. Dosyayı oluşturduğunuz dizindeki aynı dizinde bir komut istemiyle birlikte, go dosyasını derlemek için aşağıdaki komutu girin:

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

    go run predict.go
    
  5. JSON olarak döndürülen tahmin yanıtını gözden geçirin:

    response
    {"query":"I want two large pepperoni pizzas on thin crust please","prediction":{"topIntent":"ModifyOrder","intents":{"ModifyOrder":{"score":1.0},"None":{"score":8.55E-09},"Greetings":{"score":1.82222226E-09},"CancelOrder":{"score":1.47272727E-09},"Confirmation":{"score":9.8125E-10}},"entities":{"Order":[{"FullPizzaWithModifiers":[{"PizzaType":["pepperoni pizzas"],"Size":[["Large"]],"Quantity":[2],"Crust":[["Thin"]],"$instance":{"PizzaType":[{"type":"PizzaType","text":"pepperoni pizzas","startIndex":17,"length":16,"score":0.9978157,"modelTypeId":1,"modelType":"Entity Extractor","recognitionSources":["model"]}],"Size":[{"type":"SizeList","text":"large","startIndex":11,"length":5,"score":0.9984481,"modelTypeId":1,"modelType":"Entity Extractor","recognitionSources":["model"]}],"Quantity":[{"type":"builtin.number","text":"two","startIndex":7,"length":3,"score":0.999770939,"modelTypeId":1,"modelType":"Entity Extractor","recognitionSources":["model"]}],"Crust":[{"type":"CrustList","text":"thin crust","startIndex":37,"length":10,"score":0.933985531,"modelTypeId":1,"modelType":"Entity Extractor","recognitionSources":["model"]}]}}],"$instance":{"FullPizzaWithModifiers":[{"type":"FullPizzaWithModifiers","text":"two large pepperoni pizzas on thin crust","startIndex":7,"length":40,"score":0.90681237,"modelTypeId":1,"modelType":"Entity Extractor","recognitionSources":["model"]}]}}],"ToppingList":[["Pepperoni"]],"$instance":{"Order":[{"type":"Order","text":"two large pepperoni pizzas on thin crust","startIndex":7,"length":40,"score":0.9047088,"modelTypeId":1,"modelType":"Entity Extractor","recognitionSources":["model"]}],"ToppingList":[{"type":"ToppingList","text":"pepperoni","startIndex":17,"length":9,"modelTypeId":5,"modelType":"List Entity Extractor","recognitionSources":["model"]}]}}}}
    

    Okunabilir için biçimlendirilen JSON yanıtı:

    response
    {
      "query": "I want two large pepperoni pizzas on thin crust please",
      "prediction": {
        "topIntent": "ModifyOrder",
        "intents": {
          "ModifyOrder": {
            "score": 1
          },
          "None": {
            "score": 8.55e-9
          },
          "Greetings": {
            "score": 1.82222226e-9
          },
          "CancelOrder": {
            "score": 1.47272727e-9
          },
          "Confirmation": {
            "score": 9.8125e-10
          }
        },
        "entities": {
          "Order": [
            {
              "FullPizzaWithModifiers": [
                {
                  "PizzaType": [
                    "pepperoni pizzas"
                  ],
                  "Size": [
                    [
                      "Large"
                    ]
                  ],
                  "Quantity": [
                    2
                  ],
                  "Crust": [
                    [
                      "Thin"
                    ]
                  ],
                  "$instance": {
                    "PizzaType": [
                      {
                        "type": "PizzaType",
                        "text": "pepperoni pizzas",
                        "startIndex": 17,
                        "length": 16,
                        "score": 0.9978157,
                        "modelTypeId": 1,
                        "modelType": "Entity Extractor",
                        "recognitionSources": [
                          "model"
                        ]
                      }
                    ],
                    "Size": [
                      {
                        "type": "SizeList",
                        "text": "large",
                        "startIndex": 11,
                        "length": 5,
                        "score": 0.9984481,
                        "modelTypeId": 1,
                        "modelType": "Entity Extractor",
                        "recognitionSources": [
                          "model"
                        ]
                      }
                    ],
                    "Quantity": [
                      {
                        "type": "builtin.number",
                        "text": "two",
                        "startIndex": 7,
                        "length": 3,
                        "score": 0.999770939,
                        "modelTypeId": 1,
                        "modelType": "Entity Extractor",
                        "recognitionSources": [
                          "model"
                        ]
                      }
                    ],
                    "Crust": [
                      {
                        "type": "CrustList",
                        "text": "thin crust",
                        "startIndex": 37,
                        "length": 10,
                        "score": 0.933985531,
                        "modelTypeId": 1,
                        "modelType": "Entity Extractor",
                        "recognitionSources": [
                          "model"
                        ]
                      }
                    ]
                  }
                }
              ],
              "$instance": {
                "FullPizzaWithModifiers": [
                  {
                    "type": "FullPizzaWithModifiers",
                    "text": "two large pepperoni pizzas on thin crust",
                    "startIndex": 7,
                    "length": 40,
                    "score": 0.90681237,
                    "modelTypeId": 1,
                    "modelType": "Entity Extractor",
                    "recognitionSources": [
                      "model"
                    ]
                  }
                ]
              }
            }
          ],
          "ToppingList": [
            [
              "Pepperoni"
            ]
          ],
          "$instance": {
            "Order": [
              {
                "type": "Order",
                "text": "two large pepperoni pizzas on thin crust",
                "startIndex": 7,
                "length": 40,
                "score": 0.9047088,
                "modelTypeId": 1,
                "modelType": "Entity Extractor",
                "recognitionSources": [
                  "model"
                ]
              }
            ],
            "ToppingList": [
              {
                "type": "ToppingList",
                "text": "pepperoni",
                "startIndex": 17,
                "length": 9,
                "modelTypeId": 5,
                "modelType": "List Entity Extractor",
                "recognitionSources": [
                  "model"
                ]
              }
            ]
          }
        }
      }
    }
    

Kaynakları temizleme

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

Sonraki adımlar

Başvuru belgeleri | Örnek

Önkoşullar

Pizza uygulaması oluşturma

  1. Dosya için GitHub sayfasını açmak üzere pizza-app-for-luis-v6.json ' u seçin pizza-app-for-luis.json .
  2. Ham düğmesine sağ tıklayın veya uzun dokunduktan sonra Bağlantıyı farklı kaydet ' i seçerek bilgisayarınıza kaydedin pizza-app-for-luis.json .
  3. Lui portalındaoturum 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 uygulama al Iletişim kutusunda Dosya Seç düğmesini seçin.
  8. pizza-app-for-luis.jsonİndirdiğiniz dosyayı seçin ve ' ı seçin.
  9. Yeni uygulama Içeri aktarma Iletişim kutusu adı alanına, pizza uygulamanız için bir ad girin ve ardından bitti düğmesini seçin.

Uygulama içeri aktarılacak.

Etkin BIR Luo uygulaması oluşturma iletişim kutusunu görürseniz, iletişim kutusunu kapatın.

Pizza uygulamasını eğitme ve yayımlama

Pizza uygulamasındaki amaçları içeren bir liste ile amaçlar sayfasını görmeniz gerekir.

  1. LUSıS Web sitesinin sağ üst tarafında eğitme düğmesini seçin.

    Train (Eğitim) düğmesi

  2. Tren düğmesine ilişkin durum göstergesi yeşil olduğunda eğitim tamamlanmıştır.

Bir sohbet bot veya diğer istemci uygulamasında bir LUO tahmini almak için, uygulamayı tahmin uç noktasına yayımlamanız gerekir.

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

    En sağ menüdeki LUSıS uç noktaya Yayımla düğmesinin ekran görüntüsü

  2. Üretim yuvasını seçin ve bitti' yi seçin.

    Uç noktada bir HALSıS yayımlama ekran görüntüsü

  3. Azure kaynakları sayfasına gitmek için bildirimde uç nokta URL 'lerine erişin ' i seçin. Yalnızca uygulamayla ilişkili bir tahmin kaynağınız varsa URL 'Leri görebilirsiniz. Ayrıca, Yönet' i tıklatarak Azure kaynakları sayfasını bulabilirsiniz.

    Uygulamanın yayımlandığını belirten bir ileti

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

Pizza uygulamanızın uygulama KIMLIĞI, tahmin anahtarı ve tahmin uç noktasını kaydetme

Yeni pizza uygulamanızı kullanmak için, pizza uygulamanızın uygulama KIMLIĞI, tahmin anahtarı ve tahmin uç noktasına ihtiyacınız olacaktır.

Bu değerleri bulmak için:

  1. Amaçlar sayfasından Yönet' i seçin.
  2. Uygulama ayarları sayfasında, uygulama kimliğini kaydedin.
  3. Azure Kaynakları’nı seçin.
  4. Azure kaynakları sayfasından birincil anahtarı kaydedin. Bu değer, tahmin anahtarınıza göre yapılır.
  5. Uç nokta URL 'sini kaydedin. Bu değer, tahmin uç noktanıza ait.

Amacı programlamayla alma

Tahmin uç noktasını sorgulamak ve tahmin sonucu almak için Java kullanın.

  1. Java projenizi tutmak için gibi yeni bir klasör java-predict-with-rest oluşturun.

  2. Aşağıdaki java lib'leri adlı bir alt dizine kopyalayın lib ve alt lib dizinine kopyalayın:

  3. Predict.java adlı bir dosyada bir sınıf oluşturmak için aşağıdaki kodu kopyalayın:

    //
    // This quickstart shows how to predict the intent of an utterance by using the LUIS 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.utils.URIBuilder;
    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/*" Predict.java
    //      macOs: javac -cp ":lib/*" Predict.java
    //      Linux: javac -cp ":lib/*" Predict.java
    
    // To run, execute this command at the console:
    //      Windows: java -cp ";lib/*" Predict
    //      macOs: java -cp ":lib/*" Predict
    //      Linux: java -cp ":lib/*" Predict
    
    public class Predict {
    
        public static void main(String[] args)
        {
            HttpClient httpclient = HttpClients.createDefault();
    
            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-PREDICTION-KEY: Your LUIS authoring key, 32 character value.
                String Key = "PASTE_YOUR_LUIS_PREDICTION_SUBSCRIPTION_KEY_HERE";
    
                // YOUR-PREDICTION-ENDPOINT: Replace this with your authoring key endpoint.
                // For example, "https://westus.api.cognitive.microsoft.com/"
                String Endpoint = "PASTE_YOUR_LUIS_PREDICTION_ENDPOINT_HERE";
    
                // The utterance you want to use.
                String Utterance = "I want two large pepperoni pizzas on thin crust please";
                //////////
    
                // Begin building the endpoint URL.
                URIBuilder endpointURLbuilder = new URIBuilder(Endpoint + "luis/prediction/v3.0/apps/" + AppId + "/slots/production/predict?");
    
                // Create the query string params.
                endpointURLbuilder.setParameter("query", Utterance);
                endpointURLbuilder.setParameter("subscription-key", Key);
                endpointURLbuilder.setParameter("show-all-intents", "true");
                endpointURLbuilder.setParameter("verbose", "true");
    
                // Create the prediction endpoint URL.
                URI endpointURL = endpointURLbuilder.build();
    
                // Create the HTTP object from the URL.
                HttpGet request = new HttpGet(endpointURL);
    
                // Access the LUIS endpoint to analyze the text utterance.
                HttpResponse response = httpclient.execute(request);
    
                // Get the response.
                HttpEntity entity = response.getEntity();
    
                // Print the response on the console.
                if (entity != null)
                {
                    System.out.println(EntityUtils.toString(entity));
                }
            }
    
            // Display errors if they occur.
            catch (Exception e)
            {
                System.out.println(e.getMessage());
            }
        }
    }
    
  4. ile başlayan değerleri kendi YOUR- değerleriyle değiştirin.

    Bilgi Amaç
    YOUR-APP-ID Uygulama kimliğiniz. LUIS portalında, uygulamanıza Ayarlar uygulama portalı sayfasında bulunur.
    YOUR-PREDICTION-KEY 32 karakterli tahmin anahtarınız. LUIS portalında, uygulamanın Azure Kaynakları sayfasında bulunur.
    YOUR-PREDICTION-ENDPOINT Tahmin URL'si uç noktanız. LUIS portalında, uygulamanın Azure Kaynakları sayfasında bulunur.
    Örneğin, https://westus.api.cognitive.microsoft.com/.
  5. Java programını komut satırına derle.

    • Windows kullanıyorsanız şu komutu kullanın:javac -cp ";lib/*" Predict.java
    • macOS veya Linux kullanıyorsanız şu komutu kullanın: javac -cp ":lib/*" Predict.java
  6. Java programını komut satırıyla çalıştırın:

    • Windows kullanıyorsanız şu komutu kullanın:java -cp ";lib/*" Predict
    • macOS veya Linux kullanıyorsanız şu komutu kullanın: java -cp ":lib/*" Predict
  7. JSON olarak döndürülen tahmin yanıtını gözden geçirme:

    {"query":"I want two large pepperoni pizzas on thin crust please","prediction":{"topIntent":"ModifyOrder","intents":{"ModifyOrder":{"score":1.0},"None":{"score":8.55E-09},"Greetings":{"score":1.82222226E-09},"CancelOrder":{"score":1.47272727E-09},"Confirmation":{"score":9.8125E-10}},"entities":{"Order":[{"FullPizzaWithModifiers":[{"PizzaType":["pepperoni pizzas"],"Size":[["Large"]],"Quantity":[2],"Crust":[["Thin"]],"$instance":{"PizzaType":[{"type":"PizzaType","text":"pepperoni pizzas","startIndex":17,"length":16,"score":0.9978157,"modelTypeId":1,"modelType":"Entity Extractor","recognitionSources":["model"]}],"Size":[{"type":"SizeList","text":"large","startIndex":11,"length":5,"score":0.9984481,"modelTypeId":1,"modelType":"Entity Extractor","recognitionSources":["model"]}],"Quantity":[{"type":"builtin.number","text":"two","startIndex":7,"length":3,"score":0.999770939,"modelTypeId":1,"modelType":"Entity Extractor","recognitionSources":["model"]}],"Crust":[{"type":"CrustList","text":"thin crust","startIndex":37,"length":10,"score":0.933985531,"modelTypeId":1,"modelType":"Entity Extractor","recognitionSources":["model"]}]}}],"$instance":{"FullPizzaWithModifiers":[{"type":"FullPizzaWithModifiers","text":"two large pepperoni pizzas on thin crust","startIndex":7,"length":40,"score":0.90681237,"modelTypeId":1,"modelType":"Entity Extractor","recognitionSources":["model"]}]}}],"ToppingList":[["Pepperoni"]],"$instance":{"Order":[{"type":"Order","text":"two large pepperoni pizzas on thin crust","startIndex":7,"length":40,"score":0.9047088,"modelTypeId":1,"modelType":"Entity Extractor","recognitionSources":["model"]}],"ToppingList":[{"type":"ToppingList","text":"pepperoni","startIndex":17,"length":9,"modelTypeId":5,"modelType":"List Entity Extractor","recognitionSources":["model"]}]}}}}
    

    Okunabilirlik için biçimlendirilmiş JSON yanıtı:

    {
      "query": "I want two large pepperoni pizzas on thin crust please",
      "prediction": {
        "topIntent": "ModifyOrder",
        "intents": {
          "ModifyOrder": {
            "score": 1
          },
          "None": {
            "score": 8.55e-9
          },
          "Greetings": {
            "score": 1.82222226e-9
          },
          "CancelOrder": {
            "score": 1.47272727e-9
          },
          "Confirmation": {
            "score": 9.8125e-10
          }
        },
        "entities": {
          "Order": [
            {
              "FullPizzaWithModifiers": [
                {
                  "PizzaType": [
                    "pepperoni pizzas"
                  ],
                  "Size": [
                    [
                      "Large"
                    ]
                  ],
                  "Quantity": [
                    2
                  ],
                  "Crust": [
                    [
                      "Thin"
                    ]
                  ],
                  "$instance": {
                    "PizzaType": [
                      {
                        "type": "PizzaType",
                        "text": "pepperoni pizzas",
                        "startIndex": 17,
                        "length": 16,
                        "score": 0.9978157,
                        "modelTypeId": 1,
                        "modelType": "Entity Extractor",
                        "recognitionSources": [
                          "model"
                        ]
                      }
                    ],
                    "Size": [
                      {
                        "type": "SizeList",
                        "text": "large",
                        "startIndex": 11,
                        "length": 5,
                        "score": 0.9984481,
                        "modelTypeId": 1,
                        "modelType": "Entity Extractor",
                        "recognitionSources": [
                          "model"
                        ]
                      }
                    ],
                    "Quantity": [
                      {
                        "type": "builtin.number",
                        "text": "two",
                        "startIndex": 7,
                        "length": 3,
                        "score": 0.999770939,
                        "modelTypeId": 1,
                        "modelType": "Entity Extractor",
                        "recognitionSources": [
                          "model"
                        ]
                      }
                    ],
                    "Crust": [
                      {
                        "type": "CrustList",
                        "text": "thin crust",
                        "startIndex": 37,
                        "length": 10,
                        "score": 0.933985531,
                        "modelTypeId": 1,
                        "modelType": "Entity Extractor",
                        "recognitionSources": [
                          "model"
                        ]
                      }
                    ]
                  }
                }
              ],
              "$instance": {
                "FullPizzaWithModifiers": [
                  {
                    "type": "FullPizzaWithModifiers",
                    "text": "two large pepperoni pizzas on thin crust",
                    "startIndex": 7,
                    "length": 40,
                    "score": 0.90681237,
                    "modelTypeId": 1,
                    "modelType": "Entity Extractor",
                    "recognitionSources": [
                      "model"
                    ]
                  }
                ]
              }
            }
          ],
          "ToppingList": [
            [
              "Pepperoni"
            ]
          ],
          "$instance": {
            "Order": [
              {
                "type": "Order",
                "text": "two large pepperoni pizzas on thin crust",
                "startIndex": 7,
                "length": 40,
                "score": 0.9047088,
                "modelTypeId": 1,
                "modelType": "Entity Extractor",
                "recognitionSources": [
                  "model"
                ]
              }
            ],
            "ToppingList": [
              {
                "type": "ToppingList",
                "text": "pepperoni",
                "startIndex": 17,
                "length": 9,
                "modelTypeId": 5,
                "modelType": "List Entity Extractor",
                "recognitionSources": [
                  "model"
                ]
              }
            ]
          }
        }
      }
    }
    

Kaynakları temizleme

Bu hızlı başlangıçla bitirdikten sonra proje klasörünü dosya sisteminden silin.

Sonraki adımlar

Başvuru belgeleri | Örnek

Önkoşullar

Pizza uygulaması oluşturma

  1. Dosya için GitHub sayfasını açmak üzere pizza-app-for-luis-v6.json ' u seçin pizza-app-for-luis.json .
  2. Ham düğmesine sağ tıklayın veya uzun dokunduktan sonra Bağlantıyı farklı kaydet ' i seçerek bilgisayarınıza kaydedin pizza-app-for-luis.json .
  3. Lui portalındaoturum 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 uygulama al Iletişim kutusunda Dosya Seç düğmesini seçin.
  8. pizza-app-for-luis.jsonİndirdiğiniz dosyayı seçin ve ' ı seçin.
  9. Yeni uygulama Içeri aktarma Iletişim kutusu adı alanına, pizza uygulamanız için bir ad girin ve ardından bitti düğmesini seçin.

Uygulama içeri aktarılacak.

Etkin BIR Luo uygulaması oluşturma iletişim kutusunu görürseniz, iletişim kutusunu kapatın.

Pizza uygulamasını eğitme ve yayımlama

Pizza uygulamasındaki amaçları içeren bir liste ile amaçlar sayfasını görmeniz gerekir.

  1. LUSıS Web sitesinin sağ üst tarafında eğitme düğmesini seçin.

    Train (Eğitim) düğmesi

  2. Tren düğmesine ilişkin durum göstergesi yeşil olduğunda eğitim tamamlanmıştır.

Bir sohbet bot veya diğer istemci uygulamasında bir LUO tahmini almak için, uygulamayı tahmin uç noktasına yayımlamanız gerekir.

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

    En sağ menüdeki LUSıS uç noktaya Yayımla düğmesinin ekran görüntüsü

  2. Üretim yuvasını seçin ve bitti' yi seçin.

    Uç noktada bir HALSıS yayımlama ekran görüntüsü

  3. Azure kaynakları sayfasına gitmek için bildirimde uç nokta URL 'lerine erişin ' i seçin. Yalnızca uygulamayla ilişkili bir tahmin kaynağınız varsa URL 'Leri görebilirsiniz. Ayrıca, Yönet' i tıklatarak Azure kaynakları sayfasını bulabilirsiniz.

    Uygulamanın yayımlandığını belirten bir ileti

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

Pizza uygulamanızın uygulama KIMLIĞI, tahmin anahtarı ve tahmin uç noktasını kaydetme

Yeni pizza uygulamanızı kullanmak için, pizza uygulamanızın uygulama KIMLIĞI, tahmin anahtarı ve tahmin uç noktasına ihtiyacınız olacaktır.

Bu değerleri bulmak için:

  1. Amaçlar sayfasından Yönet' i seçin.
  2. Uygulama ayarları sayfasında, uygulama kimliğini kaydedin.
  3. Azure Kaynakları’nı seçin.
  4. Azure kaynakları sayfasından birincil anahtarı kaydedin. Bu değer, tahmin anahtarınıza göre yapılır.
  5. Uç nokta URL 'sini kaydedin. Bu değer, tahmin uç noktanıza ait.

Node.js projesi oluşturma

  1. Node.js projenizi barındırmak için yeni bir klasör oluşturun (örneğin,) node-predict-with-rest .

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

    npm init
    

    Her sorulduğunda varsayılan ayarları kabul etmek için ENTER tuşuna basın.

  3. Aşağıdaki komutları girerek bağımlılıkları yükler:

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

Amacı programlamayla alma

Tahmin uç noktasını sorgulamak ve tahmin sonucu almak için Node.js kullanın.

  1. Aşağıdaki kod parçacığını adlı bir dosyaya kopyalayın predict.js :

    //
    // This quickstart shows how to predict the intent of an utterance by using the LUIS REST APIs.
    //
    
    var requestPromise = require('request-promise');
    var queryString = require('querystring');
    
    // Analyze a string utterance.
    getPrediction = async () => {
    
        //////////
        // 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-PREDICTION-KEY: Your LUIS authoring key, 32 character value.
        const LUIS_predictionKey = "PASTE_YOUR_LUIS_PREDICTION_SUBSCRIPTION_KEY_HERE";
    
        // YOUR-PREDICTION-ENDPOINT: Replace this with your authoring key endpoint.
        // For example, "https://westus.api.cognitive.microsoft.com/"
        const LUIS_endpoint = "PASTE_YOUR_LUIS_PREDICTION_ENDPOINT_HERE";
    
        // The utterance you want to use.
        const utterance = "I want two large pepperoni pizzas on thin crust please";
        //////////
    
        // Create query string
        const queryParams = {
            "show-all-intents": true,
            "verbose":  true,
            "query": utterance,
            "subscription-key": LUIS_predictionKey
        }
    
        // Create the URI for the REST call.
        const URI = `${LUIS_endpoint}luis/prediction/v3.0/apps/${LUIS_appId}/slots/production/predict?${queryString.stringify(queryParams)}`
    
        // Send the REST call.
        const response = await requestPromise(URI);
    
        // Display the response from the REST call.
        console.log(response);
    }
    
    // Pass an utterance to the sample LUIS app
    getPrediction().then(()=>console.log("done")).catch((err)=>console.log(err));
    
  2. İle başlayan değerleri YOUR- kendi değerlerinizle değiştirin.

    Bilgi Amaç
    YOUR-APP-ID Uygulama KIMLIĞINIZ. Uygulamanızın LUO portalında, uygulama ayarları sayfasında bulunur.
    YOUR-PREDICTION-KEY 32 karakter tahmini anahtarınız. Uygulama için Azure kaynakları sayfasında, LUO portalında bulunur.
    YOUR-PREDICTION-ENDPOINT Tahmin URL 'niz uç noktasıdır. Uygulama için Azure kaynakları sayfasında, LUO portalında bulunur.
    Örneğin, https://westus.api.cognitive.microsoft.com/.
  3. JSON olarak döndürülen tahmin yanıtını gözden geçirin:

    {"query":"I want two large pepperoni pizzas on thin crust please","prediction":{"topIntent":"ModifyOrder","intents":{"ModifyOrder":{"score":1.0},"None":{"score":8.55E-09},"Greetings":{"score":1.82222226E-09},"CancelOrder":{"score":1.47272727E-09},"Confirmation":{"score":9.8125E-10}},"entities":{"Order":[{"FullPizzaWithModifiers":[{"PizzaType":["pepperoni pizzas"],"Size":[["Large"]],"Quantity":[2],"Crust":[["Thin"]],"$instance":{"PizzaType":[{"type":"PizzaType","text":"pepperoni pizzas","startIndex":17,"length":16,"score":0.9978157,"modelTypeId":1,"modelType":"Entity Extractor","recognitionSources":["model"]}],"Size":[{"type":"SizeList","text":"large","startIndex":11,"length":5,"score":0.9984481,"modelTypeId":1,"modelType":"Entity Extractor","recognitionSources":["model"]}],"Quantity":[{"type":"builtin.number","text":"two","startIndex":7,"length":3,"score":0.999770939,"modelTypeId":1,"modelType":"Entity Extractor","recognitionSources":["model"]}],"Crust":[{"type":"CrustList","text":"thin crust","startIndex":37,"length":10,"score":0.933985531,"modelTypeId":1,"modelType":"Entity Extractor","recognitionSources":["model"]}]}}],"$instance":{"FullPizzaWithModifiers":[{"type":"FullPizzaWithModifiers","text":"two large pepperoni pizzas on thin crust","startIndex":7,"length":40,"score":0.90681237,"modelTypeId":1,"modelType":"Entity Extractor","recognitionSources":["model"]}]}}],"ToppingList":[["Pepperoni"]],"$instance":{"Order":[{"type":"Order","text":"two large pepperoni pizzas on thin crust","startIndex":7,"length":40,"score":0.9047088,"modelTypeId":1,"modelType":"Entity Extractor","recognitionSources":["model"]}],"ToppingList":[{"type":"ToppingList","text":"pepperoni","startIndex":17,"length":9,"modelTypeId":5,"modelType":"List Entity Extractor","recognitionSources":["model"]}]}}}}
        ```
    
    The JSON response formatted for readability:
    
    ```JSON
    {
      "query": "I want two large pepperoni pizzas on thin crust please",
      "prediction": {
        "topIntent": "ModifyOrder",
        "intents": {
          "ModifyOrder": {
            "score": 1
          },
          "None": {
            "score": 8.55e-9
          },
          "Greetings": {
            "score": 1.82222226e-9
          },
          "CancelOrder": {
            "score": 1.47272727e-9
          },
          "Confirmation": {
            "score": 9.8125e-10
          }
        },
        "entities": {
          "Order": [
            {
              "FullPizzaWithModifiers": [
                {
                  "PizzaType": [
                    "pepperoni pizzas"
                  ],
                  "Size": [
                    [
                      "Large"
                    ]
                  ],
                  "Quantity": [
                    2
                  ],
                  "Crust": [
                    [
                      "Thin"
                    ]
                  ],
                  "$instance": {
                    "PizzaType": [
                      {
                        "type": "PizzaType",
                        "text": "pepperoni pizzas",
                        "startIndex": 17,
                        "length": 16,
                        "score": 0.9978157,
                        "modelTypeId": 1,
                        "modelType": "Entity Extractor",
                        "recognitionSources": [
                          "model"
                        ]
                      }
                    ],
                    "Size": [
                      {
                        "type": "SizeList",
                        "text": "large",
                        "startIndex": 11,
                        "length": 5,
                        "score": 0.9984481,
                        "modelTypeId": 1,
                        "modelType": "Entity Extractor",
                        "recognitionSources": [
                          "model"
                        ]
                      }
                    ],
                    "Quantity": [
                      {
                        "type": "builtin.number",
                        "text": "two",
                        "startIndex": 7,
                        "length": 3,
                        "score": 0.999770939,
                        "modelTypeId": 1,
                        "modelType": "Entity Extractor",
                        "recognitionSources": [
                          "model"
                        ]
                      }
                    ],
                    "Crust": [
                      {
                        "type": "CrustList",
                        "text": "thin crust",
                        "startIndex": 37,
                        "length": 10,
                        "score": 0.933985531,
                        "modelTypeId": 1,
                        "modelType": "Entity Extractor",
                        "recognitionSources": [
                          "model"
                        ]
                      }
                    ]
                  }
                }
              ],
              "$instance": {
                "FullPizzaWithModifiers": [
                  {
                    "type": "FullPizzaWithModifiers",
                    "text": "two large pepperoni pizzas on thin crust",
                    "startIndex": 7,
                    "length": 40,
                    "score": 0.90681237,
                    "modelTypeId": 1,
                    "modelType": "Entity Extractor",
                    "recognitionSources": [
                      "model"
                    ]
                  }
                ]
              }
            }
          ],
          "ToppingList": [
            [
              "Pepperoni"
            ]
          ],
          "$instance": {
            "Order": [
              {
                "type": "Order",
                "text": "two large pepperoni pizzas on thin crust",
                "startIndex": 7,
                "length": 40,
                "score": 0.9047088,
                "modelTypeId": 1,
                "modelType": "Entity Extractor",
                "recognitionSources": [
                  "model"
                ]
              }
            ],
            "ToppingList": [
              {
                "type": "ToppingList",
                "text": "pepperoni",
                "startIndex": 17,
                "length": 9,
                "modelTypeId": 5,
                "modelType": "List Entity Extractor",
                "recognitionSources": [
                  "model"
                ]
              }
            ]
          }
        }
      }
    }
    

Kaynakları temizleme

Bu hızlı başlangıç ile işiniz bittiğinde, proje klasörünü dosya sisteminden silin.

Sonraki adımlar

Başvuru belgeleri | Örnek

Önkoşullar

Pizza uygulaması oluşturma

  1. Dosya için GitHub sayfasını açmak üzere pizza-app-for-luis-v6.json ' u seçin pizza-app-for-luis.json .
  2. Ham düğmesine sağ tıklayın veya uzun dokunduktan sonra Bağlantıyı farklı kaydet ' i seçerek bilgisayarınıza kaydedin pizza-app-for-luis.json .
  3. Lui portalındaoturum 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 uygulama al Iletişim kutusunda Dosya Seç düğmesini seçin.
  8. pizza-app-for-luis.jsonİndirdiğiniz dosyayı seçin ve ' ı seçin.
  9. Yeni uygulama Içeri aktarma Iletişim kutusu adı alanına, pizza uygulamanız için bir ad girin ve ardından bitti düğmesini seçin.

Uygulama içeri aktarılacak.

Etkin BIR Luo uygulaması oluşturma iletişim kutusunu görürseniz, iletişim kutusunu kapatın.

Pizza uygulamasını eğitme ve yayımlama

Pizza uygulamasındaki amaçları içeren bir liste ile amaçlar sayfasını görmeniz gerekir.

  1. LUSıS Web sitesinin sağ üst tarafında eğitme düğmesini seçin.

    Train (Eğitim) düğmesi

  2. Tren düğmesine ilişkin durum göstergesi yeşil olduğunda eğitim tamamlanmıştır.

Bir sohbet bot veya diğer istemci uygulamasında bir LUO tahmini almak için, uygulamayı tahmin uç noktasına yayımlamanız gerekir.

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

    En sağ menüdeki LUSıS uç noktaya Yayımla düğmesinin ekran görüntüsü

  2. Üretim yuvasını seçin ve bitti' yi seçin.

    Uç noktada bir HALSıS yayımlama ekran görüntüsü

  3. Azure kaynakları sayfasına gitmek için bildirimde uç nokta URL 'lerine erişin ' i seçin. Yalnızca uygulamayla ilişkili bir tahmin kaynağınız varsa URL 'Leri görebilirsiniz. Ayrıca, Yönet' i tıklatarak Azure kaynakları sayfasını bulabilirsiniz.

    Uygulamanın yayımlandığını belirten bir ileti

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

Pizza uygulamanızın uygulama KIMLIĞI, tahmin anahtarı ve tahmin uç noktasını kaydetme

Yeni pizza uygulamanızı kullanmak için, pizza uygulamanızın uygulama KIMLIĞI, tahmin anahtarı ve tahmin uç noktasına ihtiyacınız olacaktır.

Bu değerleri bulmak için:

  1. Amaçlar sayfasından Yönet' i seçin.
  2. Uygulama ayarları sayfasında, uygulama kimliğini kaydedin.
  3. Azure Kaynakları’nı seçin.
  4. Azure kaynakları sayfasından birincil anahtarı kaydedin. Bu değer, tahmin anahtarınıza göre yapılır.
  5. Uç nokta URL 'sini kaydedin. Bu değer, tahmin uç noktanıza ait.

Tahmin uç noktasından amaç al

Tahmin uç noktasını sorgulamak ve tahmin sonucu almak için Python kullanın.

  1. Bu kod parçacığını adlı bir dosyaya kopyalayın predict.py :

    ########### Python 3.6 #############
    
    #
    # This quickstart shows how to predict the intent of an utterance by using the LUIS 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-PREDICTION-KEY: Your LUIS prediction key, 32 character value.
        prediction_key = 'PASTE_YOUR_LUIS_PREDICTION_SUBSCRIPTION_KEY_HERE'
    
        # YOUR-PREDICTION-ENDPOINT: Replace with your prediction endpoint.
        # For example, "https://westus.api.cognitive.microsoft.com/"
        prediction_endpoint = 'PASTE_YOUR_LUIS_PREDICTION_ENDPOINT_HERE'
    
        # The utterance you want to use.
        utterance = 'I want two large pepperoni pizzas on thin crust please'
        ##########
    
        # The headers to use in this REST call.
        headers = {
        }
    
        # The URL parameters to use in this REST call.
        params ={
            'query': utterance,
            'timezoneOffset': '0',
            'verbose': 'true',
            'show-all-intents': 'true',
            'spellCheck': 'false',
            'staging': 'false',
            'subscription-key': prediction_key
        }
    
    
        # Make the REST call.
        response = requests.get(f'{prediction_endpoint}luis/prediction/v3.0/apps/{appId}/slots/production/predict', headers=headers, params=params)
    
        # Display the results on the console.
        print(response.json())
    
    
    except Exception as e:
        # Display the error string.
        print(f'{e}')
    
  2. İle başlayan değerleri YOUR- kendi değerlerinizle değiştirin.

    Bilgi Amaç
    YOUR-APP-ID Uygulama KIMLIĞINIZ. Uygulamanızın LUO portalında, uygulama ayarları sayfasında bulunur.
    YOUR-PREDICTION-KEY 32 karakter tahmini anahtarınız. Uygulama için Azure kaynakları sayfasında, LUO portalında bulunur.
    YOUR-PREDICTION-ENDPOINT Tahmin URL 'niz uç noktasıdır. Uygulama için Azure kaynakları sayfasında, LUO portalında bulunur.
    Örneğin, https://westus.api.cognitive.microsoft.com/.
  3. Bağımlılığı yükler requests . requestsKitaplık, http isteklerini yapmak için kullanılır:

    pip install requests
    
  4. Komut dosyanızı bu konsol komutuyla çalıştırın:

    python predict.py
    
  5. JSON olarak döndürülen tahmin yanıtını gözden geçirin:

    {'query': 'I want two large pepperoni pizzas on thin crust please', 'prediction': {'topIntent': 'ModifyOrder', 'intents': {'ModifyOrder': {'score': 1.0}, 'None': {'score': 8.55e-09}, 'Greetings': {'score': 1.82222226e-09}, 'CancelOrder': {'score': 1.47272727e-09}, 'Confirmation': {'score': 9.8125e-10}}, 'entities': {'Order': [{'FullPizzaWithModifiers': [{'PizzaType': ['pepperoni pizzas'], 'Size': [['Large']], 'Quantity': [2], 'Crust': [['Thin']], '$instance': {'PizzaType': [{'type': 'PizzaType', 'text': 'pepperoni pizzas', 'startIndex': 17, 'length': 16, 'score': 0.9978157, 'modelTypeId': 1, 'modelType': 'Entity Extractor', 'recognitionSources': ['model']}], 'Size': [{'type': 'SizeList', 'text': 'large', 'startIndex': 11, 'length': 5, 'score': 0.9984481, 'modelTypeId': 1, 'modelType': 'Entity Extractor', 'recognitionSources': ['model']}], 'Quantity': [{'type': 'builtin.number', 'text': 'two', 'startIndex': 7, 'length': 3, 'score': 0.999770939, 'modelTypeId': 1, 'modelType': 'Entity Extractor', 'recognitionSources': ['model']}], 'Crust': [{'type': 'CrustList', 'text': 'thin crust', 'startIndex': 37, 'length': 10, 'score': 0.933985531, 'modelTypeId': 1, 'modelType': 'Entity Extractor', 'recognitionSources': ['model']}]}}], '$instance': {'FullPizzaWithModifiers': [{'type': 'FullPizzaWithModifiers', 'text': 'two large pepperoni pizzas on thin crust', 'startIndex': 7, 'length': 40, 'score': 0.90681237, 'modelTypeId': 1, 'modelType': 'Entity Extractor', 'recognitionSources': ['model']}]}}], 'ToppingList': [['Pepperoni']], '$instance': {'Order': [{'type': 'Order', 'text': 'two large pepperoni pizzas on thin crust', 'startIndex': 7, 'length': 40, 'score': 0.9047088, 'modelTypeId': 1, 'modelType': 'Entity Extractor', 'recognitionSources': ['model']}], 'ToppingList': [{'type': 'ToppingList', 'text': 'pepperoni', 'startIndex': 17, 'length': 9, 'modelTypeId': 5, 'modelType': 'List Entity Extractor', 'recognitionSources': ['model']}]}}}}
    

    Okunabilir için biçimlendirilen JSON yanıtı:

    {
      'query': 'I want two large pepperoni pizzas on thin crust please',
      'prediction': {
        'topIntent': 'ModifyOrder',
        'intents': {
          'ModifyOrder': {
            'score': 1.0
          },
          'None': {
            'score': 8.55e-9
          },
          'Greetings': {
            'score': 1.82222226e-9
          },
          'CancelOrder': {
            'score': 1.47272727e-9
          },
          'Confirmation': {
            'score': 9.8125e-10
          }
        },
        'entities': {
          'Order': [
            {
              'FullPizzaWithModifiers': [
                {
                  'PizzaType': [
                    'pepperoni pizzas'
                  ],
                  'Size': [
                    [
                      'Large'
                    ]
                  ],
                  'Quantity': [
                    2
                  ],
                  'Crust': [
                    [
                      'Thin'
                    ]
                  ],
                  '$instance': {
                    'PizzaType': [
                      {
                        'type': 'PizzaType',
                        'text': 'pepperoni pizzas',
                        'startIndex': 17,
                        'length': 16,
                        'score': 0.9978157,
                        'modelTypeId': 1,
                        'modelType': 'Entity Extractor',
                        'recognitionSources': [
                          'model'
                        ]
                      }
                    ],
                    'Size': [
                      {
                        'type': 'SizeList',
                        'text': 'large',
                        'startIndex': 11,
                        'length': 5,
                        'score': 0.9984481,
                        'modelTypeId': 1,
                        'modelType': 'Entity Extractor',
                        'recognitionSources': [
                          'model'
                        ]
                      }
                    ],
                    'Quantity': [
                      {
                        'type': 'builtin.number',
                        'text': 'two',
                        'startIndex': 7,
                        'length': 3,
                        'score': 0.999770939,
                        'modelTypeId': 1,
                        'modelType': 'Entity Extractor',
                        'recognitionSources': [
                          'model'
                        ]
                      }
                    ],
                    'Crust': [
                      {
                        'type': 'CrustList',
                        'text': 'thin crust',
                        'startIndex': 37,
                        'length': 10,
                        'score': 0.933985531,
                        'modelTypeId': 1,
                        'modelType': 'Entity Extractor',
                        'recognitionSources': [
                          'model'
                        ]
                      }
                    ]
                  }
                }
              ],
              '$instance': {
                'FullPizzaWithModifiers': [
                  {
                    'type': 'FullPizzaWithModifiers',
                    'text': 'two large pepperoni pizzas on thin crust',
                    'startIndex': 7,
                    'length': 40,
                    'score': 0.90681237,
                    'modelTypeId': 1,
                    'modelType': 'Entity Extractor',
                    'recognitionSources': [
                      'model'
                    ]
                  }
                ]
              }
            }
          ],
          'ToppingList': [
            [
              'Pepperoni'
            ]
          ],
          '$instance': {
            'Order': [
              {
                'type': 'Order',
                'text': 'two large pepperoni pizzas on thin crust',
                'startIndex': 7,
                'length': 40,
                'score': 0.9047088,
                'modelTypeId': 1,
                'modelType': 'Entity Extractor',
                'recognitionSources': [
                  'model'
                ]
              }
            ],
            'ToppingList': [
              {
                'type': 'ToppingList',
                'text': 'pepperoni',
                'startIndex': 17,
                'length': 9,
                'modelTypeId': 5,
                'modelType': 'List Entity Extractor',
                'recognitionSources': [
                  'model'
                ]
              }
            ]
          }
        }
      }
    }
    

Kaynakları temizleme

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

Sonraki adımlar