Jak získat záměr pomocí rozhraní REST API

V tomto článku použijete aplikaci LUIS k určení záměru uživatele z konverzačního textu. Odešlete záměr uživatele jako text do koncového bodu předpovědi HTTP aplikace Pizza. Na koncovém bodu LUIS použije model aplikace Pizza k analýze textu přirozeného jazyka pro účely, určení celkového záměru a extrakci dat relevantních pro doménu předmětu aplikace.

Pro účely tohoto článku potřebujete bezplatný účet LUIS.

Referenční dokumentace | Ukázka

Požadavky

Vytvoření aplikace Pizza

  1. Vyberte možnost pizza-app-for-luis-v6.jszapnuto a zobrazte stránku GitHub pro daný pizza-app-for-luis.json soubor.
  2. Klikněte pravým tlačítkem nebo dlouho klepněte na tlačítko nezpracované a vyberte Uložit odkaz jako a uložte pizza-app-for-luis.json ho do svého počítače.
  3. Přihlaste se k portálu Luis.
  4. Vyberte Moje aplikace.
  5. Na stránce Moje aplikace vyberte + Nová aplikace pro konverzaci.
  6. Vyberte importovat jako JSON.
  7. V dialogovém okně importovat novou aplikaci vyberte tlačítko Vybrat soubor .
  8. Vyberte pizza-app-for-luis.json soubor, který jste stáhli, a pak vyberte otevřít.
  9. V poli název dialogového okna importovat novou aplikaci zadejte název vaší aplikace Pizza a pak vyberte tlačítko Hotovo .

Aplikace se naimportuje.

Pokud se zobrazí dialogové okno, jak vytvořit efektivní aplikaci Luis, zavřete dialogové okno.

Výuka a publikování aplikace Pizza

Měla by se zobrazit stránka záměry se seznamem záměrů v aplikaci Pizza.

  1. V pravém horním rohu webu LUIS vyberte tlačítko výuka .

    Tlačítko Train (Trénovat)

  2. Školení je hotové, když je indikátor stavu na tlačítku vlaku zelený.

Aby bylo možné získat LUIS předpověď v robotu chatu nebo v jiné klientské aplikaci, musíte aplikaci publikovat do koncového bodu předpovědi.

  1. V pravém horním navigačním panelu vyberte publikovat .

    Snímek obrazovky s tlačítkem publikovat do koncového bodu LUIS v pravé horní nabídce

  2. Vyberte produkční slot a potom vyberte Hotovo.

    Snímek obrazovky s LUIS publikováním do koncového bodu

  3. V oznámení vyberte přístup k adresám URL koncových bodů . tím přejdete na stránku prostředků Azure . Adresy URL budete moct zobrazit jenom v případě, že máte k aplikaci přidružený prostředek předpovědi. Stránku prostředků Azure můžete také najít kliknutím na Spravovat.

    Zpráva o tom, že byla aplikace publikována

Vaše aplikace Pizza je teď připravená k použití.

Zaznamenání ID aplikace, klíč předpovědi a koncového bodu předpovědi vaší aplikace Pizza

Pro použití vaší nové aplikace Pizza budete potřebovat ID aplikace, klíč předpovědi a koncový bod předpovědi vaší aplikace Pizza.

Vyhledání těchto hodnot:

  1. Na stránce záměry vyberte Spravovat.
  2. Na stránce nastavení aplikace si poznamenejte ID aplikace.
  3. Vyberte Azure Resources (Prostředky Azure).
  4. Na stránce prostředky Azure zaznamenejte primární klíč. Tato hodnota je váš klíč předpovědi.
  5. Zaznamenejte adresu URL koncového bodu. Tato hodnota je vaším koncovým bodem předpovědi.

Získání záměru prostřednictvím kódu programu

Použijte C# (.NET Core) k dotazování koncového bodu předpovědi a získejte výsledek předpovědi.

  1. Vytvořte novou konzolovou aplikaci cílící na jazyk C# s názvem projektu a složky csharp-predict-with-rest .

    dotnet new console -lang C# -n csharp-predict-with-rest
    
  2. Přejděte do csharp-predict-with-rest adresáře, který jste vytvořili, a nainstalujte požadovanou závislost pomocí tohoto příkazu:

    cd csharp-predict-with-rest
    dotnet add package System.Net.Http
    
  3. Otevřete Program.cs v oblíbených IDE nebo editoru. Pak přepište Program.cs pomocí následujícího kódu:

    //
    // 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. Nahraďte hodnoty začínající YOUR- vlastními hodnotami.

    Informace Účel
    YOUR-APP-ID Vaše ID aplikace Nachází se na portálu LUIS, na stránce nastavení aplikace pro vaši aplikaci.
    YOUR-PREDICTION-KEY Klíč předpovědi znaků 32. Nachází se na portálu LUIS, stránce prostředků Azure pro vaši aplikaci.
    YOUR-PREDICTION-ENDPOINT Koncový bod adresy URL předpovědi Nachází se na portálu LUIS, stránce prostředků Azure pro vaši aplikaci.
    Například, https://westus.api.cognitive.microsoft.com/.
  5. Sestavte konzolovou aplikaci pomocí tohoto příkazu:

    dotnet build
    
  6. Spusťte konzolovou aplikaci. Výstup konzoly zobrazí stejný kód JSON, který jste viděli dříve v okně prohlížeče.

    dotnet run
    
  7. Zkontrolujte odpověď předpovědi, která se vrátí jako JSON:

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

    Odpověď JSON naformátovaná pro čitelnost:

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

Vyčištění prostředků

Až budete s tímto rychlým startem hotovi, odstraňte složku projektu ze systému souborů.

Další kroky

Referenční dokumentace | Ukázka

Požadavky

Vytvoření aplikace Pizza

  1. Vyberte možnost pizza-app-for-luis-v6.jszapnuto a zobrazte stránku GitHub pro daný pizza-app-for-luis.json soubor.
  2. Klikněte pravým tlačítkem nebo dlouho klepněte na tlačítko nezpracované a vyberte Uložit odkaz jako a uložte pizza-app-for-luis.json ho do svého počítače.
  3. Přihlaste se k portálu Luis.
  4. Vyberte Moje aplikace.
  5. Na stránce Moje aplikace vyberte + Nová aplikace pro konverzaci.
  6. Vyberte importovat jako JSON.
  7. V dialogovém okně importovat novou aplikaci vyberte tlačítko Vybrat soubor .
  8. Vyberte pizza-app-for-luis.json soubor, který jste stáhli, a pak vyberte otevřít.
  9. V poli název dialogového okna importovat novou aplikaci zadejte název vaší aplikace Pizza a pak vyberte tlačítko Hotovo .

Aplikace se naimportuje.

Pokud se zobrazí dialogové okno, jak vytvořit efektivní aplikaci Luis, zavřete dialogové okno.

Výuka a publikování aplikace Pizza

Měla by se zobrazit stránka záměry se seznamem záměrů v aplikaci Pizza.

  1. V pravém horním rohu webu LUIS vyberte tlačítko výuka .

    Tlačítko Train (Trénovat)

  2. Školení je hotové, když je indikátor stavu na tlačítku vlaku zelený.

Aby bylo možné získat LUIS předpověď v robotu chatu nebo v jiné klientské aplikaci, musíte aplikaci publikovat do koncového bodu předpovědi.

  1. V pravém horním navigačním panelu vyberte publikovat .

    Snímek obrazovky s tlačítkem publikovat do koncového bodu LUIS v pravé horní nabídce

  2. Vyberte produkční slot a potom vyberte Hotovo.

    Snímek obrazovky s LUIS publikováním do koncového bodu

  3. V oznámení vyberte přístup k adresám URL koncových bodů . tím přejdete na stránku prostředků Azure . Adresy URL budete moct zobrazit jenom v případě, že máte k aplikaci přidružený prostředek předpovědi. Stránku prostředků Azure můžete také najít kliknutím na Spravovat.

    Zpráva o tom, že byla aplikace publikována

Vaše aplikace Pizza je teď připravená k použití.

Zaznamenání ID aplikace, klíč předpovědi a koncového bodu předpovědi vaší aplikace Pizza

Pro použití vaší nové aplikace Pizza budete potřebovat ID aplikace, klíč předpovědi a koncový bod předpovědi vaší aplikace Pizza.

Vyhledání těchto hodnot:

  1. Na stránce záměry vyberte Spravovat.
  2. Na stránce nastavení aplikace si poznamenejte ID aplikace.
  3. Vyberte Azure Resources (Prostředky Azure).
  4. Na stránce prostředky Azure zaznamenejte primární klíč. Tato hodnota je váš klíč předpovědi.
  5. Zaznamenejte adresu URL koncového bodu. Tato hodnota je vaším koncovým bodem předpovědi.

Získání záměru prostřednictvím kódu programu

Pomocí příkazu Přejít můžete zadat dotaz na koncový bod předpovědi a získat výsledek předpovědi.

  1. Vytvořte nový soubor s názvem predict.go. Přidejte následující kód:

    //
    // 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. Nahraďte hodnoty začínající YOUR- vlastními hodnotami.

    Informace Účel
    YOUR-APP-ID Vaše ID aplikace Nachází se na portálu LUIS, na stránce nastavení aplikace pro vaši aplikaci.
    YOUR-PREDICTION-KEY Klíč předpovědi znaků 32. Nachází se na portálu LUIS, stránce prostředků Azure pro vaši aplikaci.
    YOUR-PREDICTION-ENDPOINT Koncový bod adresy URL předpovědi Nachází se na portálu LUIS, stránce prostředků Azure pro vaši aplikaci.
    Například, https://westus.api.cognitive.microsoft.com/.
  3. Pomocí příkazového řádku ve stejném adresáři, ve kterém jste vytvořili soubor, zadejte následující příkaz pro zkompilování souboru přejít:

    go build predict.go
    
  4. Aplikaci Go spusťte z příkazového řádku zadáním následujícího textu do příkazového řádku:

    go run predict.go
    
  5. Zkontrolujte odpověď předpovědi, která se vrátí jako JSON:

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

    Odpověď JSON formátovaná pro čitelnost:

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

Vyčištění prostředků

Až budete s tímto rychlým startem hotovi, odstraňte soubor ze systému souborů.

Další kroky

Referenční dokumentace | Ukázka

Požadavky

  • JDK SE (Java Development Kit, Standard Edition)
  • Visual Studio Code nebo vaše oblíbené integrované vývojové prostředí

Vytvoření aplikace Pizza

  1. Vyberte možnost pizza-app-for-luis-v6.jszapnuto a zobrazte stránku GitHub pro daný pizza-app-for-luis.json soubor.
  2. Klikněte pravým tlačítkem nebo dlouho klepněte na tlačítko nezpracované a vyberte Uložit odkaz jako a uložte pizza-app-for-luis.json ho do svého počítače.
  3. Přihlaste se k portálu Luis.
  4. Vyberte Moje aplikace.
  5. Na stránce Moje aplikace vyberte + Nová aplikace pro konverzaci.
  6. Vyberte importovat jako JSON.
  7. V dialogovém okně importovat novou aplikaci vyberte tlačítko Vybrat soubor .
  8. Vyberte pizza-app-for-luis.json soubor, který jste stáhli, a pak vyberte otevřít.
  9. V poli název dialogového okna importovat novou aplikaci zadejte název vaší aplikace Pizza a pak vyberte tlačítko Hotovo .

Aplikace se naimportuje.

Pokud se zobrazí dialogové okno, jak vytvořit efektivní aplikaci Luis, zavřete dialogové okno.

Výuka a publikování aplikace Pizza

Měla by se zobrazit stránka záměry se seznamem záměrů v aplikaci Pizza.

  1. V pravém horním rohu webu LUIS vyberte tlačítko výuka .

    Tlačítko Train (Trénovat)

  2. Školení je hotové, když je indikátor stavu na tlačítku vlaku zelený.

Aby bylo možné získat LUIS předpověď v robotu chatu nebo v jiné klientské aplikaci, musíte aplikaci publikovat do koncového bodu předpovědi.

  1. V pravém horním navigačním panelu vyberte publikovat .

    Snímek obrazovky s tlačítkem publikovat do koncového bodu LUIS v pravé horní nabídce

  2. Vyberte produkční slot a potom vyberte Hotovo.

    Snímek obrazovky s LUIS publikováním do koncového bodu

  3. V oznámení vyberte přístup k adresám URL koncových bodů . tím přejdete na stránku prostředků Azure . Adresy URL budete moct zobrazit jenom v případě, že máte k aplikaci přidružený prostředek předpovědi. Stránku prostředků Azure můžete také najít kliknutím na Spravovat.

    Zpráva o tom, že byla aplikace publikována

Vaše aplikace Pizza je teď připravená k použití.

Zaznamenání ID aplikace, klíč předpovědi a koncového bodu předpovědi vaší aplikace Pizza

Pro použití vaší nové aplikace Pizza budete potřebovat ID aplikace, klíč předpovědi a koncový bod předpovědi vaší aplikace Pizza.

Vyhledání těchto hodnot:

  1. Na stránce záměry vyberte Spravovat.
  2. Na stránce nastavení aplikace si poznamenejte ID aplikace.
  3. Vyberte Azure Resources (Prostředky Azure).
  4. Na stránce prostředky Azure zaznamenejte primární klíč. Tato hodnota je váš klíč předpovědi.
  5. Zaznamenejte adresu URL koncového bodu. Tato hodnota je vaším koncovým bodem předpovědi.

Získání záměru prostřednictvím kódu programu

Pomocí Javy můžete zadat dotaz na koncový bod předpovědi a získat výsledek predikce.

  1. Vytvořte novou složku pro váš projekt Java, například java-predict-with-rest .

  2. Vytvořte podadresář s názvem a zkopírujte do podadresáře následující lib knihovny lib java:

  3. Zkopírujte následující kód a vytvořte třídu v souboru s názvem Predict.java:

    //
    // 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. Nahraďte hodnoty začínající YOUR- vlastními hodnotami.

    Informace Účel
    YOUR-APP-ID ID vaší aplikace. Nachází se na portálu LUIS na Nastavení aplikace.
    YOUR-PREDICTION-KEY Váš klíč pro predikci 32 znaků. Nachází se na portálu LUIS na stránce Prostředky Azure pro vaši aplikaci.
    YOUR-PREDICTION-ENDPOINT Koncový bod adresy URL pro predikce. Nachází se na portálu LUIS na stránce Prostředky Azure pro vaši aplikaci.
    Například, https://westus.api.cognitive.microsoft.com/.
  5. Zkompilujte program Java z příkazového řádku.

    • Pokud používáte tento Windows, použijte tento příkaz:javac -cp ";lib/*" Predict.java
    • Pokud používáte macOS nebo Linux, použijte tento příkaz: javac -cp ":lib/*" Predict.java
  6. Spusťte program Java z příkazového řádku:

    • Pokud používáte tento Windows, použijte tento příkaz:java -cp ";lib/*" Predict
    • Pokud používáte macOS nebo Linux, použijte tento příkaz: java -cp ":lib/*" Predict
  7. Zkontrolujte odpověď předpovědi, která se vrátí ve formátu JSON:

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

    Odpověď JSON formátovaná pro čitelnost:

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

Vyčištění prostředků

Až tento rychlý start dokončíte, odstraňte složku projektu ze systému souborů.

Další kroky

Referenční dokumentace | Ukázka

Požadavky

Vytvoření aplikace Pizza

  1. Vyberte možnost pizza-app-for-luis-v6.jszapnuto a zobrazte stránku GitHub pro daný pizza-app-for-luis.json soubor.
  2. Klikněte pravým tlačítkem nebo dlouho klepněte na tlačítko nezpracované a vyberte Uložit odkaz jako a uložte pizza-app-for-luis.json ho do svého počítače.
  3. Přihlaste se k portálu Luis.
  4. Vyberte Moje aplikace.
  5. Na stránce Moje aplikace vyberte + Nová aplikace pro konverzaci.
  6. Vyberte importovat jako JSON.
  7. V dialogovém okně importovat novou aplikaci vyberte tlačítko Vybrat soubor .
  8. Vyberte pizza-app-for-luis.json soubor, který jste stáhli, a pak vyberte otevřít.
  9. V poli název dialogového okna importovat novou aplikaci zadejte název vaší aplikace Pizza a pak vyberte tlačítko Hotovo .

Aplikace se naimportuje.

Pokud se zobrazí dialogové okno, jak vytvořit efektivní aplikaci Luis, zavřete dialogové okno.

Výuka a publikování aplikace Pizza

Měla by se zobrazit stránka záměry se seznamem záměrů v aplikaci Pizza.

  1. V pravém horním rohu webu LUIS vyberte tlačítko výuka .

    Tlačítko Train (Trénovat)

  2. Školení je hotové, když je indikátor stavu na tlačítku vlaku zelený.

Aby bylo možné získat LUIS předpověď v robotu chatu nebo v jiné klientské aplikaci, musíte aplikaci publikovat do koncového bodu předpovědi.

  1. V pravém horním navigačním panelu vyberte publikovat .

    Snímek obrazovky s tlačítkem publikovat do koncového bodu LUIS v pravé horní nabídce

  2. Vyberte produkční slot a potom vyberte Hotovo.

    Snímek obrazovky s LUIS publikováním do koncového bodu

  3. V oznámení vyberte přístup k adresám URL koncových bodů . tím přejdete na stránku prostředků Azure . Adresy URL budete moct zobrazit jenom v případě, že máte k aplikaci přidružený prostředek předpovědi. Stránku prostředků Azure můžete také najít kliknutím na Spravovat.

    Zpráva o tom, že byla aplikace publikována

Vaše aplikace Pizza je teď připravená k použití.

Zaznamenání ID aplikace, klíč předpovědi a koncového bodu předpovědi vaší aplikace Pizza

Pro použití vaší nové aplikace Pizza budete potřebovat ID aplikace, klíč předpovědi a koncový bod předpovědi vaší aplikace Pizza.

Vyhledání těchto hodnot:

  1. Na stránce záměry vyberte Spravovat.
  2. Na stránce nastavení aplikace si poznamenejte ID aplikace.
  3. Vyberte Azure Resources (Prostředky Azure).
  4. Na stránce prostředky Azure zaznamenejte primární klíč. Tato hodnota je váš klíč předpovědi.
  5. Zaznamenejte adresu URL koncového bodu. Tato hodnota je vaším koncovým bodem předpovědi.

Vytvoření projektu Node.js

  1. Vytvořte novou složku pro uložení Node.js projektu, například node-predict-with-rest .

  2. Otevřete nový příkazový řádek, přejděte do složky, kterou jste vytvořili, a spusťte následující příkaz:

    npm init
    

    Stisknutím klávesy ENTER u každé výzvy přijměte výchozí nastavení.

  3. Nainstalujte závislosti zadáním následujících příkazů:

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

Získání záměru prostřednictvím kódu programu

Pomocí Node.js můžete zadat dotaz na koncový bod předpovědi a získat výsledek předpovědi.

  1. Zkopírujte následující fragment kódu do souboru s názvem 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. Nahraďte hodnoty začínající YOUR- vlastními hodnotami.

    Informace Účel
    YOUR-APP-ID Vaše ID aplikace Nachází se na portálu LUIS, na stránce nastavení aplikace pro vaši aplikaci.
    YOUR-PREDICTION-KEY Klíč předpovědi znaků 32. Nachází se na portálu LUIS, stránce prostředků Azure pro vaši aplikaci.
    YOUR-PREDICTION-ENDPOINT Koncový bod adresy URL předpovědi Nachází se na portálu LUIS, stránce prostředků Azure pro vaši aplikaci.
    Například, https://westus.api.cognitive.microsoft.com/.
  3. Zkontrolujte odpověď předpovědi, která se vrátí jako JSON:

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

Vyčištění prostředků

Až budete s tímto rychlým startem hotovi, odstraňte složku projektu ze systému souborů.

Další kroky

Referenční dokumentace | Ukázka

Požadavky

Vytvoření aplikace Pizza

  1. Vyberte možnost pizza-app-for-luis-v6.jszapnuto a zobrazte stránku GitHub pro daný pizza-app-for-luis.json soubor.
  2. Klikněte pravým tlačítkem nebo dlouho klepněte na tlačítko nezpracované a vyberte Uložit odkaz jako a uložte pizza-app-for-luis.json ho do svého počítače.
  3. Přihlaste se k portálu Luis.
  4. Vyberte Moje aplikace.
  5. Na stránce Moje aplikace vyberte + Nová aplikace pro konverzaci.
  6. Vyberte importovat jako JSON.
  7. V dialogovém okně importovat novou aplikaci vyberte tlačítko Vybrat soubor .
  8. Vyberte pizza-app-for-luis.json soubor, který jste stáhli, a pak vyberte otevřít.
  9. V poli název dialogového okna importovat novou aplikaci zadejte název vaší aplikace Pizza a pak vyberte tlačítko Hotovo .

Aplikace se naimportuje.

Pokud se zobrazí dialogové okno, jak vytvořit efektivní aplikaci Luis, zavřete dialogové okno.

Výuka a publikování aplikace Pizza

Měla by se zobrazit stránka záměry se seznamem záměrů v aplikaci Pizza.

  1. V pravém horním rohu webu LUIS vyberte tlačítko výuka .

    Tlačítko Train (Trénovat)

  2. Školení je hotové, když je indikátor stavu na tlačítku vlaku zelený.

Aby bylo možné získat LUIS předpověď v robotu chatu nebo v jiné klientské aplikaci, musíte aplikaci publikovat do koncového bodu předpovědi.

  1. V pravém horním navigačním panelu vyberte publikovat .

    Snímek obrazovky s tlačítkem publikovat do koncového bodu LUIS v pravé horní nabídce

  2. Vyberte produkční slot a potom vyberte Hotovo.

    Snímek obrazovky s LUIS publikováním do koncového bodu

  3. V oznámení vyberte přístup k adresám URL koncových bodů . tím přejdete na stránku prostředků Azure . Adresy URL budete moct zobrazit jenom v případě, že máte k aplikaci přidružený prostředek předpovědi. Stránku prostředků Azure můžete také najít kliknutím na Spravovat.

    Zpráva o tom, že byla aplikace publikována

Vaše aplikace Pizza je teď připravená k použití.

Zaznamenání ID aplikace, klíč předpovědi a koncového bodu předpovědi vaší aplikace Pizza

Pro použití vaší nové aplikace Pizza budete potřebovat ID aplikace, klíč předpovědi a koncový bod předpovědi vaší aplikace Pizza.

Vyhledání těchto hodnot:

  1. Na stránce záměry vyberte Spravovat.
  2. Na stránce nastavení aplikace si poznamenejte ID aplikace.
  3. Vyberte Azure Resources (Prostředky Azure).
  4. Na stránce prostředky Azure zaznamenejte primární klíč. Tato hodnota je váš klíč předpovědi.
  5. Zaznamenejte adresu URL koncového bodu. Tato hodnota je vaším koncovým bodem předpovědi.

Získat záměr z koncového bodu předpovědi

Použijte Python k dotazování koncového bodu předpovědi a získejte výsledek předpovědi.

  1. Zkopírujte tento fragment kódu do souboru s názvem 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. Nahraďte hodnoty začínající YOUR- vlastními hodnotami.

    Informace Účel
    YOUR-APP-ID Vaše ID aplikace Nachází se na portálu LUIS, na stránce nastavení aplikace pro vaši aplikaci.
    YOUR-PREDICTION-KEY Klíč předpovědi znaků 32. Nachází se na portálu LUIS, stránce prostředků Azure pro vaši aplikaci.
    YOUR-PREDICTION-ENDPOINT Koncový bod adresy URL předpovědi Nachází se na portálu LUIS, stránce prostředků Azure pro vaši aplikaci.
    Například, https://westus.api.cognitive.microsoft.com/.
  3. Nainstalujte requests závislost. requestsKnihovna se používá k provedení požadavků http:

    pip install requests
    
  4. Spusťte skript pomocí tohoto příkazu konzoly:

    python predict.py
    
  5. Zkontrolujte odpověď předpovědi, která se vrátí jako JSON:

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

    Odpověď JSON formátovaná pro čitelnost:

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

Vyčištění prostředků

Až budete s tímto rychlým startem hotovi, odstraňte soubor ze systému souborů.

Další kroky