Início Rápido: Obter a intenção com as APIs RESTQuickstart: Get intent with REST APIs

Neste início rápido, você usará um aplicativo LUIS para determinar a intenção do usuário com base no texto de conversa.In this quickstart, you will use a LUIS app to determine a user's intention from conversational text. Envie a intenção do usuário como texto para o ponto de extremidade de previsão de HTTP do aplicativo Pizza.Send the user's intention as text to the Pizza app's HTTP prediction endpoint. No ponto de extremidade, o LUIS aplica o modelo do aplicativo Pizza para analisar o texto de linguagem natural quanto ao significado, determinando a intenção geral e extraindo dados relevantes para o domínio do assunto do aplicativo.At the endpoint, LUIS applies the Pizza app's model to analyze the natural language text for meaning, determining overall intent and extracting data relevant to the app's subject domain.

Para este artigo, você precisará de uma conta gratuita do LUIS.For this article, you need a free LUIS account.

Documentação de referência | AmostraReference documentation | Sample

Pré-requisitosPrerequisites

Criar aplicativo PizzaCreate Pizza app

  1. Selecione pizza-app-for-luis-v6.json para abrir a página do GitHub para o arquivo pizza-app-for-luis.json.Select pizza-app-for-luis-v6.json to bring up the GitHub page for the pizza-app-for-luis.json file.
  2. Clique com o botão direito do mouse (ou toque e segure por alguns segundos) o botão Bruto e selecione Salvar link como para salvar o pizza-app-for-luis.json em seu computador.Right-click or long tap the Raw button and select Save link as to save the pizza-app-for-luis.json to your computer.
  3. Entre no portal do LUIS.Sign into the LUIS portal.
  4. Selecione Meus Aplicativos.Select My Apps.
  5. Na página Meus aplicativos, selecione + Novo aplicativo de conversa.On the My Apps page, select + New app for conversation.
  6. Selecione Importar como JSON.Select Import as JSON.
  7. Na caixa de diálogo Importar novo aplicativo, selecione o botão Escolher arquivo.In the Import new app dialog, select the Choose File button.
  8. Selecione o arquivo pizza-app-for-luis.json que você baixou e, em seguida, selecione Abrir.Select the pizza-app-for-luis.json file you downloaded, then select Open.
  9. No campo Nome da caixa de diálogo Importar novo aplicativo, insira um nome para o aplicativo Pizza e, em seguida, selecione o botão Concluído.In the Import new app dialog Name field, enter a name for your Pizza app, then select the Done button.

O aplicativo será importado.The app will be imported.

Se você vir a caixa de diálogo que diz Como criar um aplicativo LUIS eficaz, feche-a.If you see the dialog How to create an effective LUIS app, close the dialog.

Treinar e publicar o aplicativo PizzaTrain and publish the Pizza app

Você deve ver a página Intenções com uma lista de intenções no aplicativo Pizza.You should see the Intents page with a list of the intents in the Pizza app.

  1. No lado superior direito do site do LUIS, selecione o botão Treinar.In the top-right side of the LUIS website, select the Train button.

    Botão Treinar

  2. O treinamento será concluído quando o indicador de status no botão Treinar estiver verde.Training is complete when status indicator on the Train button is green.

Para receber uma previsão do LUIS em um chatbot ou em outro aplicativo cliente, publique o aplicativo no ponto de extremidade de previsão.In order to receive a LUIS prediction in a chat bot or other client application, you need to publish the app to the prediction endpoint.

  1. Selecione Publicar no painel de navegação superior direito.Select Publish in the top-right navigation.

    Captura de tela da publicação do LUIS para o botão do ponto de extremidade no menu à direita superior

  2. Selecione o slot de Produção e Concluído.Select the Production slot, then select Done.

    Captura de tela da publicação do LUIS para o ponto de extremidadeScreenshot of LUIS publish to endpoint

  3. Selecione o link Acessar as URLs do ponto de extremidade na notificação para ir à página Recursos do Azure.Select the Access your endpoint URLs link in the notification to go to the Azure Resources page. As URLs do ponto de extremidade são listadas como a Consulta de Exemplo.The endpoint URLs are listed as the Example Query.

Agora, o aplicativo Pizza está pronto para o uso.Your Pizza app is now ready to use.

Registrar a ID do aplicativo, a chave de previsão e o ponto de extremidade de previsão do aplicativo PizzaRecord the app ID, prediction key, and prediction endpoint of your Pizza app

Para usar o novo aplicativo Pizza, você precisará da ID do aplicativo, da chave de previsão e do ponto de extremidade de previsão do aplicativo Pizza.To use your new Pizza app, you will need the app ID, prediction key, and prediction endpoint of your Pizza app.

Para encontrar esses valores:To find these values:

  1. Na página Intenções, selecione GERENCIAR.From the Intents page, select MANAGE.
  2. Na página Configurações de aplicativo, registre a ID do aplicativo.From the Application Settings page, record the App ID.
  3. Selecione Recursos do Azure.Select Azure Resources.
  4. Na página Recursos do Azure, registre a Chave Primária.From the Azure Resources page, record the Primary Key. Esse valor é a chave de previsão.This value is your prediction key.
  5. Registre a URL do ponto de extremidade.Record the Endpoint URL. Esse valor é o ponto de extremidade de previsão.This value is your prediction endpoint.

Obter a intenção de forma programáticaGet intent programmatically

Use o C# (.NET Core) para consultar o ponto de extremidade de previsão para obter o resultado da previsão.Use C# (.NET Core) to query the prediction endpoint and get a prediction result.

  1. Crie um novo aplicativo de console destinado à linguagem C#, com o nome de projeto e pasta igual a csharp-predict-with-rest.Create a new console application targeting the C# language, with a project and folder name of csharp-predict-with-rest.

    dotnet new console -lang C# -n csharp-predict-with-rest
    
  2. Mude para o diretório csharp-predict-with-rest que você criou e instale as dependências necessárias com este comando:Change to the csharp-predict-with-rest directory you created, and install the required dependency with this command:

    cd csharp-predict-with-rest
    dotnet add package System.Net.Http
    
  3. Abra Program.cs em seu IDE ou editor favorito.Open Program.cs in your favorite IDE or editor. Então substitua Program.cs pelo código a seguir:Then overwrite Program.cs with the following code:

    //
    // 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 = "YOUR-APP-ID";
    
                // YOUR-PREDICTION-KEY: 32 character key.
                var predictionKey = "YOUR-PREDICTION-KEY";
    
                // YOUR-PREDICTION-ENDPOINT: Example is "https://westus.api.cognitive.microsoft.com/"
                var predictionEndpoint = "https://YOUR-PREDICTION-ENDPOINT/";
    
                // 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. Substitua os valores que começam com YOUR- por seus valores.Replace the values starting with YOUR- with your own values.

    InformaçõesInformation FinalidadePurpose
    YOUR-APP-ID ID do seu aplicativo.Your app ID. Localizada no portal do LUIS, página de Configurações de Aplicativo do seu aplicativo.Located on the LUIS portal, Application Settings page for your app.
    YOUR-PREDICTION-KEY Sua chave de previsão de 32 caracteres.Your 32 character prediction key. Localizada no portal do LUIS, página de Recursos do Azure do seu aplicativo.Located on the LUIS portal, Azure Resources page for your app.
    YOUR-PREDICTION-ENDPOINT O ponto de extremidade da URL de previsão.Your prediction URL endpoint. Localizada no portal do LUIS, página de Recursos do Azure do seu aplicativo.Located on the LUIS portal, Azure Resources page for your app.
    Por exemplo, https://westus.api.cognitive.microsoft.com/.For example, https://westus.api.cognitive.microsoft.com/.
  5. Crie o aplicativo de console com este comando:Build the console application with this command:

    dotnet build
    
  6. Execute o aplicativo de console.Run the console application. O console exibe o mesmo JSON que você viu anteriormente na janela do navegador.The console output displays the same JSON that you saw earlier in the browser window.

    dotnet run
    
  7. Examine a resposta de previsão, que é retornada como JSON:Review the prediction response, which is returned as 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"]}]}}}}
    

    A resposta em JSON formatada para facilitar a leitura:The JSON response formatted for readability:

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

Limpar os recursosClean up resources

Ao concluir este início rápido, exclua a pasta do projeto do sistema de arquivos.When you are finished with this quickstart, delete the project folder from the file system.

Próximas etapasNext steps

Documentação de referência | AmostraReference documentation | Sample

Pré-requisitosPrerequisites

Criar aplicativo PizzaCreate Pizza app

  1. Selecione pizza-app-for-luis-v6.json para abrir a página do GitHub para o arquivo pizza-app-for-luis.json.Select pizza-app-for-luis-v6.json to bring up the GitHub page for the pizza-app-for-luis.json file.
  2. Clique com o botão direito do mouse (ou toque e segure por alguns segundos) o botão Bruto e selecione Salvar link como para salvar o pizza-app-for-luis.json em seu computador.Right-click or long tap the Raw button and select Save link as to save the pizza-app-for-luis.json to your computer.
  3. Entre no portal do LUIS.Sign into the LUIS portal.
  4. Selecione Meus Aplicativos.Select My Apps.
  5. Na página Meus aplicativos, selecione + Novo aplicativo de conversa.On the My Apps page, select + New app for conversation.
  6. Selecione Importar como JSON.Select Import as JSON.
  7. Na caixa de diálogo Importar novo aplicativo, selecione o botão Escolher arquivo.In the Import new app dialog, select the Choose File button.
  8. Selecione o arquivo pizza-app-for-luis.json que você baixou e, em seguida, selecione Abrir.Select the pizza-app-for-luis.json file you downloaded, then select Open.
  9. No campo Nome da caixa de diálogo Importar novo aplicativo, insira um nome para o aplicativo Pizza e, em seguida, selecione o botão Concluído.In the Import new app dialog Name field, enter a name for your Pizza app, then select the Done button.

O aplicativo será importado.The app will be imported.

Se você vir a caixa de diálogo que diz Como criar um aplicativo LUIS eficaz, feche-a.If you see the dialog How to create an effective LUIS app, close the dialog.

Treinar e publicar o aplicativo PizzaTrain and publish the Pizza app

Você deve ver a página Intenções com uma lista de intenções no aplicativo Pizza.You should see the Intents page with a list of the intents in the Pizza app.

  1. No lado superior direito do site do LUIS, selecione o botão Treinar.In the top-right side of the LUIS website, select the Train button.

    Botão Treinar

  2. O treinamento será concluído quando o indicador de status no botão Treinar estiver verde.Training is complete when status indicator on the Train button is green.

Para receber uma previsão do LUIS em um chatbot ou em outro aplicativo cliente, publique o aplicativo no ponto de extremidade de previsão.In order to receive a LUIS prediction in a chat bot or other client application, you need to publish the app to the prediction endpoint.

  1. Selecione Publicar no painel de navegação superior direito.Select Publish in the top-right navigation.

    Captura de tela da publicação do LUIS para o botão do ponto de extremidade no menu à direita superior

  2. Selecione o slot de Produção e Concluído.Select the Production slot, then select Done.

    Captura de tela da publicação do LUIS para o ponto de extremidadeScreenshot of LUIS publish to endpoint

  3. Selecione o link Acessar as URLs do ponto de extremidade na notificação para ir à página Recursos do Azure.Select the Access your endpoint URLs link in the notification to go to the Azure Resources page. As URLs do ponto de extremidade são listadas como a Consulta de Exemplo.The endpoint URLs are listed as the Example Query.

Agora, o aplicativo Pizza está pronto para o uso.Your Pizza app is now ready to use.

Registrar a ID do aplicativo, a chave de previsão e o ponto de extremidade de previsão do aplicativo PizzaRecord the app ID, prediction key, and prediction endpoint of your Pizza app

Para usar o novo aplicativo Pizza, você precisará da ID do aplicativo, da chave de previsão e do ponto de extremidade de previsão do aplicativo Pizza.To use your new Pizza app, you will need the app ID, prediction key, and prediction endpoint of your Pizza app.

Para encontrar esses valores:To find these values:

  1. Na página Intenções, selecione GERENCIAR.From the Intents page, select MANAGE.
  2. Na página Configurações de aplicativo, registre a ID do aplicativo.From the Application Settings page, record the App ID.
  3. Selecione Recursos do Azure.Select Azure Resources.
  4. Na página Recursos do Azure, registre a Chave Primária.From the Azure Resources page, record the Primary Key. Esse valor é a chave de previsão.This value is your prediction key.
  5. Registre a URL do ponto de extremidade.Record the Endpoint URL. Esse valor é o ponto de extremidade de previsão.This value is your prediction endpoint.

Obter a intenção de forma programáticaGet intent programmatically

Use o Go para consultar o ponto de extremidade de previsão para obter o resultado da previsão.Use Go to query the prediction endpoint and get a prediction result.

  1. Crie um arquivo chamado predict.go.Create a new file named predict.go. Adicione os códigos a seguir:Add the following code:

    //
    // 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 = "YOUR-APP-ID"
    
        // YOUR-PREDICTION-KEY: Your LUIS authoring key, 32 character value.
        var predictionKey = "YOUR-PREDICTION-KEY"
    
        // YOUR-PREDICTION-ENDPOINT: Replace with your authoring key endpoint.
        // For example, "https://westus.api.cognitive.microsoft.com/"
        var predictionEndpoint = "https://YOUR-PREDICTION-ENDPOINT/"
    
        // 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. Substitua os valores que começam com YOUR- por seus valores.Replace the values starting with YOUR- with your own values.

    InformaçõesInformation FinalidadePurpose
    YOUR-APP-ID ID do seu aplicativo.Your app ID. Localizada no portal do LUIS, página de Configurações de Aplicativo do seu aplicativo.Located on the LUIS portal, Application Settings page for your app.
    YOUR-PREDICTION-KEY Sua chave de previsão de 32 caracteres.Your 32 character prediction key. Localizada no portal do LUIS, página de Recursos do Azure do seu aplicativo.Located on the LUIS portal, Azure Resources page for your app.
    YOUR-PREDICTION-ENDPOINT O ponto de extremidade da URL de previsão.Your prediction URL endpoint. Localizada no portal do LUIS, página de Recursos do Azure do seu aplicativo.Located on the LUIS portal, Azure Resources page for your app.
    Por exemplo, https://westus.api.cognitive.microsoft.com/.For example, https://westus.api.cognitive.microsoft.com/.
  3. Com um prompt de comando no mesmo diretório em que você criou o arquivo, insira o seguinte comando para compilar o arquivo Go:With a command prompt in the same directory as where you created the file, enter the following command to compile the Go file:

    go build predict.go
    
  4. Execute o aplicativo GO da linha de comando inserindo o texto a seguir no prompt de comando:Run the Go application from the command line by entering the following text in the command prompt:

    go run predict.go
    
  5. Examine a resposta de previsão, que é retornada como JSON:Review the prediction response, which is returned as 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"]}]}}}}
    

    Resposta em JSON formatada para facilitar a leitura:JSON response formatted for readability:

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

Limpar os recursosClean up resources

Ao concluir este guia de início rápido, exclua o arquivo do sistema de arquivos.When you are finished with this quickstart, delete the file from the file system.

Próximas etapasNext steps

Documentação de referência | AmostraReference documentation | Sample

Pré-requisitosPrerequisites

Criar aplicativo PizzaCreate Pizza app

  1. Selecione pizza-app-for-luis-v6.json para abrir a página do GitHub para o arquivo pizza-app-for-luis.json.Select pizza-app-for-luis-v6.json to bring up the GitHub page for the pizza-app-for-luis.json file.
  2. Clique com o botão direito do mouse (ou toque e segure por alguns segundos) o botão Bruto e selecione Salvar link como para salvar o pizza-app-for-luis.json em seu computador.Right-click or long tap the Raw button and select Save link as to save the pizza-app-for-luis.json to your computer.
  3. Entre no portal do LUIS.Sign into the LUIS portal.
  4. Selecione Meus Aplicativos.Select My Apps.
  5. Na página Meus aplicativos, selecione + Novo aplicativo de conversa.On the My Apps page, select + New app for conversation.
  6. Selecione Importar como JSON.Select Import as JSON.
  7. Na caixa de diálogo Importar novo aplicativo, selecione o botão Escolher arquivo.In the Import new app dialog, select the Choose File button.
  8. Selecione o arquivo pizza-app-for-luis.json que você baixou e, em seguida, selecione Abrir.Select the pizza-app-for-luis.json file you downloaded, then select Open.
  9. No campo Nome da caixa de diálogo Importar novo aplicativo, insira um nome para o aplicativo Pizza e, em seguida, selecione o botão Concluído.In the Import new app dialog Name field, enter a name for your Pizza app, then select the Done button.

O aplicativo será importado.The app will be imported.

Se você vir a caixa de diálogo que diz Como criar um aplicativo LUIS eficaz, feche-a.If you see the dialog How to create an effective LUIS app, close the dialog.

Treinar e publicar o aplicativo PizzaTrain and publish the Pizza app

Você deve ver a página Intenções com uma lista de intenções no aplicativo Pizza.You should see the Intents page with a list of the intents in the Pizza app.

  1. No lado superior direito do site do LUIS, selecione o botão Treinar.In the top-right side of the LUIS website, select the Train button.

    Botão Treinar

  2. O treinamento será concluído quando o indicador de status no botão Treinar estiver verde.Training is complete when status indicator on the Train button is green.

Para receber uma previsão do LUIS em um chatbot ou em outro aplicativo cliente, publique o aplicativo no ponto de extremidade de previsão.In order to receive a LUIS prediction in a chat bot or other client application, you need to publish the app to the prediction endpoint.

  1. Selecione Publicar no painel de navegação superior direito.Select Publish in the top-right navigation.

    Captura de tela da publicação do LUIS para o botão do ponto de extremidade no menu à direita superior

  2. Selecione o slot de Produção e Concluído.Select the Production slot, then select Done.

    Captura de tela da publicação do LUIS para o ponto de extremidadeScreenshot of LUIS publish to endpoint

  3. Selecione o link Acessar as URLs do ponto de extremidade na notificação para ir à página Recursos do Azure.Select the Access your endpoint URLs link in the notification to go to the Azure Resources page. As URLs do ponto de extremidade são listadas como a Consulta de Exemplo.The endpoint URLs are listed as the Example Query.

Agora, o aplicativo Pizza está pronto para o uso.Your Pizza app is now ready to use.

Registrar a ID do aplicativo, a chave de previsão e o ponto de extremidade de previsão do aplicativo PizzaRecord the app ID, prediction key, and prediction endpoint of your Pizza app

Para usar o novo aplicativo Pizza, você precisará da ID do aplicativo, da chave de previsão e do ponto de extremidade de previsão do aplicativo Pizza.To use your new Pizza app, you will need the app ID, prediction key, and prediction endpoint of your Pizza app.

Para encontrar esses valores:To find these values:

  1. Na página Intenções, selecione GERENCIAR.From the Intents page, select MANAGE.
  2. Na página Configurações de aplicativo, registre a ID do aplicativo.From the Application Settings page, record the App ID.
  3. Selecione Recursos do Azure.Select Azure Resources.
  4. Na página Recursos do Azure, registre a Chave Primária.From the Azure Resources page, record the Primary Key. Esse valor é a chave de previsão.This value is your prediction key.
  5. Registre a URL do ponto de extremidade.Record the Endpoint URL. Esse valor é o ponto de extremidade de previsão.This value is your prediction endpoint.

Obter a intenção de forma programáticaGet intent programmatically

Use o Java para consultar o ponto de extremidade de previsão para obter o resultado da previsão.Use Java to query the prediction endpoint and get a prediction result.

  1. Crie uma pasta para armazenar seu projeto Java, tal como java-predict-with-rest.Create a new folder to hold your Java project, such as java-predict-with-rest.

  2. Crie um subdiretório chamado lib e copie as seguintes bibliotecas Java dentro do subdiretório lib:Make a subdirectory named lib and copy in the following java libs into the lib subdirectory:

  3. Copie o código a seguir para criar uma classe em um arquivo chamado Predict.java:Copy the following code to create a class in a file named 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 = "YOUR-APP-ID";
    
                // YOUR-PREDICTION-KEY: Your LUIS authoring key, 32 character value.
                String Key = "YOUR-PREDICTION-KEY";
    
                // YOUR-PREDICTION-ENDPOINT: Replace this with your authoring key endpoint.
                // For example, "https://westus.api.cognitive.microsoft.com/"
                String Endpoint = "https://YOUR-PREDICTION-ENDPOINT/";
    
                // 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. Substitua os valores que começam com YOUR- por seus valores.Replace the values starting with YOUR- with your own values.

    InformaçõesInformation FinalidadePurpose
    YOUR-APP-ID ID do seu aplicativo.Your app ID. Localizada no portal do LUIS, página de Configurações de Aplicativo do seu aplicativo.Located on the LUIS portal, Application Settings page for your app.
    YOUR-PREDICTION-KEY Sua chave de previsão de 32 caracteres.Your 32 character prediction key. Localizada no portal do LUIS, página de Recursos do Azure do seu aplicativo.Located on the LUIS portal, Azure Resources page for your app.
    YOUR-PREDICTION-ENDPOINT O ponto de extremidade da URL de previsão.Your prediction URL endpoint. Localizada no portal do LUIS, página de Recursos do Azure do seu aplicativo.Located on the LUIS portal, Azure Resources page for your app.
    Por exemplo, https://westus.api.cognitive.microsoft.com/.For example, https://westus.api.cognitive.microsoft.com/.
  5. Compile o programa java na linha de comando.Compile the java program from the command line.

    • Se você estiver usando o Windows, use este comando: javac -cp ";lib/*" Predict.javaIf you are using Windows, use this command: javac -cp ";lib/*" Predict.java
    • Se você estiver usando o macOS ou o Linux, use este comando: javac -cp ":lib/*" Predict.javaIf you are using macOS or Linux, use this command: javac -cp ":lib/*" Predict.java
  6. Execute o programa java na linha de comando:Run the java program from the command line:

    • Se você estiver usando o Windows, use este comando: java -cp ";lib/*" PredictIf you are using Windows, use this command: java -cp ";lib/*" Predict
    • Se você estiver usando o macOS ou o Linux, use este comando: java -cp ":lib/*" PredictIf you are using macOS or Linux, use this command: java -cp ":lib/*" Predict
  7. Examine a resposta de previsão, que é retornada como JSON:Review the prediction response, which is returned as 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"]}]}}}}
    

    A resposta em JSON formatada para facilitar a leitura:The JSON response formatted for readability:

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

Limpar os recursosClean up resources

Ao concluir este início rápido, exclua a pasta do projeto do sistema de arquivos.When you are finished with this quickstart, delete the project folder from the file system.

Próximas etapasNext steps

Documentação de referência | AmostraReference documentation | Sample

Pré-requisitosPrerequisites

Criar aplicativo PizzaCreate Pizza app

  1. Selecione pizza-app-for-luis-v6.json para abrir a página do GitHub para o arquivo pizza-app-for-luis.json.Select pizza-app-for-luis-v6.json to bring up the GitHub page for the pizza-app-for-luis.json file.
  2. Clique com o botão direito do mouse (ou toque e segure por alguns segundos) o botão Bruto e selecione Salvar link como para salvar o pizza-app-for-luis.json em seu computador.Right-click or long tap the Raw button and select Save link as to save the pizza-app-for-luis.json to your computer.
  3. Entre no portal do LUIS.Sign into the LUIS portal.
  4. Selecione Meus Aplicativos.Select My Apps.
  5. Na página Meus aplicativos, selecione + Novo aplicativo de conversa.On the My Apps page, select + New app for conversation.
  6. Selecione Importar como JSON.Select Import as JSON.
  7. Na caixa de diálogo Importar novo aplicativo, selecione o botão Escolher arquivo.In the Import new app dialog, select the Choose File button.
  8. Selecione o arquivo pizza-app-for-luis.json que você baixou e, em seguida, selecione Abrir.Select the pizza-app-for-luis.json file you downloaded, then select Open.
  9. No campo Nome da caixa de diálogo Importar novo aplicativo, insira um nome para o aplicativo Pizza e, em seguida, selecione o botão Concluído.In the Import new app dialog Name field, enter a name for your Pizza app, then select the Done button.

O aplicativo será importado.The app will be imported.

Se você vir a caixa de diálogo que diz Como criar um aplicativo LUIS eficaz, feche-a.If you see the dialog How to create an effective LUIS app, close the dialog.

Treinar e publicar o aplicativo PizzaTrain and publish the Pizza app

Você deve ver a página Intenções com uma lista de intenções no aplicativo Pizza.You should see the Intents page with a list of the intents in the Pizza app.

  1. No lado superior direito do site do LUIS, selecione o botão Treinar.In the top-right side of the LUIS website, select the Train button.

    Botão Treinar

  2. O treinamento será concluído quando o indicador de status no botão Treinar estiver verde.Training is complete when status indicator on the Train button is green.

Para receber uma previsão do LUIS em um chatbot ou em outro aplicativo cliente, publique o aplicativo no ponto de extremidade de previsão.In order to receive a LUIS prediction in a chat bot or other client application, you need to publish the app to the prediction endpoint.

  1. Selecione Publicar no painel de navegação superior direito.Select Publish in the top-right navigation.

    Captura de tela da publicação do LUIS para o botão do ponto de extremidade no menu à direita superior

  2. Selecione o slot de Produção e Concluído.Select the Production slot, then select Done.

    Captura de tela da publicação do LUIS para o ponto de extremidadeScreenshot of LUIS publish to endpoint

  3. Selecione o link Acessar as URLs do ponto de extremidade na notificação para ir à página Recursos do Azure.Select the Access your endpoint URLs link in the notification to go to the Azure Resources page. As URLs do ponto de extremidade são listadas como a Consulta de Exemplo.The endpoint URLs are listed as the Example Query.

Agora, o aplicativo Pizza está pronto para o uso.Your Pizza app is now ready to use.

Registrar a ID do aplicativo, a chave de previsão e o ponto de extremidade de previsão do aplicativo PizzaRecord the app ID, prediction key, and prediction endpoint of your Pizza app

Para usar o novo aplicativo Pizza, você precisará da ID do aplicativo, da chave de previsão e do ponto de extremidade de previsão do aplicativo Pizza.To use your new Pizza app, you will need the app ID, prediction key, and prediction endpoint of your Pizza app.

Para encontrar esses valores:To find these values:

  1. Na página Intenções, selecione GERENCIAR.From the Intents page, select MANAGE.
  2. Na página Configurações de aplicativo, registre a ID do aplicativo.From the Application Settings page, record the App ID.
  3. Selecione Recursos do Azure.Select Azure Resources.
  4. Na página Recursos do Azure, registre a Chave Primária.From the Azure Resources page, record the Primary Key. Esse valor é a chave de previsão.This value is your prediction key.
  5. Registre a URL do ponto de extremidade.Record the Endpoint URL. Esse valor é o ponto de extremidade de previsão.This value is your prediction endpoint.

Criar o projeto do Node.jsCreate the Node.js project

  1. Crie uma pasta para armazenar seu projeto Node.js, tal como node-predict-with-rest.Create a new folder to hold your Node.js project, such as node-predict-with-rest.

  2. Abra um novo prompt de comando, navegue até a pasta que você criou e execute o seguinte comando:Open a new Command Prompt, navigate to the folder you created and execute the following command:

    npm init
    

    Pressione Enter em cada prompt para aceitar as configurações padrão.Press Enter at each prompt to accept the default settings.

  3. Instale as dependências inserindo os seguintes comandos:Install the dependencies by entering the following commands:

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

Obter a intenção de forma programáticaGet intent programmatically

Use o Node.js para consultar o ponto de extremidade de previsão para obter o resultado da previsão.Use Node.js to query the prediction endpoint and get a prediction result.

  1. Copie o snippet de código a seguir para o arquivo chamado predict.js:Copy the following code snippet to a file named 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 = "YOUR-APP-ID";
    
        // YOUR-PREDICTION-KEY: Your LUIS authoring key, 32 character value.
        const LUIS_predictionKey = "YOUR-PREDICTION-KEY";
    
        // YOUR-PREDICTION-ENDPOINT: Replace this with your authoring key endpoint.
        // For example, "https://westus.api.cognitive.microsoft.com/"
        const LUIS_endpoint = "https://YOUR-PREDICTION-ENDPOINT/";
    
        // 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. Substitua os valores que começam com YOUR- por seus valores.Replace the values starting with YOUR- with your own values.

    InformaçõesInformation FinalidadePurpose
    YOUR-APP-ID ID do seu aplicativo.Your app ID. Localizada no portal do LUIS, página de Configurações de Aplicativo do seu aplicativo.Located on the LUIS portal, Application Settings page for your app.
    YOUR-PREDICTION-KEY Sua chave de previsão de 32 caracteres.Your 32 character prediction key. Localizada no portal do LUIS, página de Recursos do Azure do seu aplicativo.Located on the LUIS portal, Azure Resources page for your app.
    YOUR-PREDICTION-ENDPOINT O ponto de extremidade da URL de previsão.Your prediction URL endpoint. Localizada no portal do LUIS, página de Recursos do Azure do seu aplicativo.Located on the LUIS portal, Azure Resources page for your app.
    Por exemplo, https://westus.api.cognitive.microsoft.com/.For example, https://westus.api.cognitive.microsoft.com/.
  3. Examine a resposta de previsão, que é retornada como JSON:Review the prediction response, which is returned as 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"
                ]
              }
            ]
          }
        }
      }
    }
    

Limpar os recursosClean up resources

Ao concluir este início rápido, exclua a pasta do projeto do sistema de arquivos.When you are finished with this quickstart, delete the project folder from the file system.

Próximas etapasNext steps

Documentação de referência | AmostraReference documentation | Sample

Pré-requisitosPrerequisites

Criar aplicativo PizzaCreate Pizza app

  1. Selecione pizza-app-for-luis-v6.json para abrir a página do GitHub para o arquivo pizza-app-for-luis.json.Select pizza-app-for-luis-v6.json to bring up the GitHub page for the pizza-app-for-luis.json file.
  2. Clique com o botão direito do mouse (ou toque e segure por alguns segundos) o botão Bruto e selecione Salvar link como para salvar o pizza-app-for-luis.json em seu computador.Right-click or long tap the Raw button and select Save link as to save the pizza-app-for-luis.json to your computer.
  3. Entre no portal do LUIS.Sign into the LUIS portal.
  4. Selecione Meus Aplicativos.Select My Apps.
  5. Na página Meus aplicativos, selecione + Novo aplicativo de conversa.On the My Apps page, select + New app for conversation.
  6. Selecione Importar como JSON.Select Import as JSON.
  7. Na caixa de diálogo Importar novo aplicativo, selecione o botão Escolher arquivo.In the Import new app dialog, select the Choose File button.
  8. Selecione o arquivo pizza-app-for-luis.json que você baixou e, em seguida, selecione Abrir.Select the pizza-app-for-luis.json file you downloaded, then select Open.
  9. No campo Nome da caixa de diálogo Importar novo aplicativo, insira um nome para o aplicativo Pizza e, em seguida, selecione o botão Concluído.In the Import new app dialog Name field, enter a name for your Pizza app, then select the Done button.

O aplicativo será importado.The app will be imported.

Se você vir a caixa de diálogo que diz Como criar um aplicativo LUIS eficaz, feche-a.If you see the dialog How to create an effective LUIS app, close the dialog.

Treinar e publicar o aplicativo PizzaTrain and publish the Pizza app

Você deve ver a página Intenções com uma lista de intenções no aplicativo Pizza.You should see the Intents page with a list of the intents in the Pizza app.

  1. No lado superior direito do site do LUIS, selecione o botão Treinar.In the top-right side of the LUIS website, select the Train button.

    Botão Treinar

  2. O treinamento será concluído quando o indicador de status no botão Treinar estiver verde.Training is complete when status indicator on the Train button is green.

Para receber uma previsão do LUIS em um chatbot ou em outro aplicativo cliente, publique o aplicativo no ponto de extremidade de previsão.In order to receive a LUIS prediction in a chat bot or other client application, you need to publish the app to the prediction endpoint.

  1. Selecione Publicar no painel de navegação superior direito.Select Publish in the top-right navigation.

    Captura de tela da publicação do LUIS para o botão do ponto de extremidade no menu à direita superior

  2. Selecione o slot de Produção e Concluído.Select the Production slot, then select Done.

    Captura de tela da publicação do LUIS para o ponto de extremidadeScreenshot of LUIS publish to endpoint

  3. Selecione o link Acessar as URLs do ponto de extremidade na notificação para ir à página Recursos do Azure.Select the Access your endpoint URLs link in the notification to go to the Azure Resources page. As URLs do ponto de extremidade são listadas como a Consulta de Exemplo.The endpoint URLs are listed as the Example Query.

Agora, o aplicativo Pizza está pronto para o uso.Your Pizza app is now ready to use.

Registrar a ID do aplicativo, a chave de previsão e o ponto de extremidade de previsão do aplicativo PizzaRecord the app ID, prediction key, and prediction endpoint of your Pizza app

Para usar o novo aplicativo Pizza, você precisará da ID do aplicativo, da chave de previsão e do ponto de extremidade de previsão do aplicativo Pizza.To use your new Pizza app, you will need the app ID, prediction key, and prediction endpoint of your Pizza app.

Para encontrar esses valores:To find these values:

  1. Na página Intenções, selecione GERENCIAR.From the Intents page, select MANAGE.
  2. Na página Configurações de aplicativo, registre a ID do aplicativo.From the Application Settings page, record the App ID.
  3. Selecione Recursos do Azure.Select Azure Resources.
  4. Na página Recursos do Azure, registre a Chave Primária.From the Azure Resources page, record the Primary Key. Esse valor é a chave de previsão.This value is your prediction key.
  5. Registre a URL do ponto de extremidade.Record the Endpoint URL. Esse valor é o ponto de extremidade de previsão.This value is your prediction endpoint.

Obter a intenção do ponto de extremidade de previsãoGet intent from the prediction endpoint

Use o Python para consultar o ponto de extremidade de previsão para obter o resultado da previsão.Use Python to query the prediction endpoint and get a prediction result.

  1. Copie este snippet de código para um arquivo chamado predict.py:Copy this code snippet into a file called 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 = 'YOUR-APP-ID'
    
        # YOUR-PREDICTION-KEY: Your LUIS authoring key, 32 character value.
        prediction_key = 'YOUR-PREDICTION-KEY'
    
        # YOUR-PREDICTION-ENDPOINT: Replace with your authoring key endpoint.
        # For example, "https://westus.api.cognitive.microsoft.com/"
        prediction_endpoint = 'https://YOUR-PREDICTION-ENDPOINT/'
    
        # 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. Substitua os valores que começam com YOUR- por seus valores.Replace the values starting with YOUR- with your own values.

    InformaçõesInformation FinalidadePurpose
    YOUR-APP-ID ID do seu aplicativo.Your app ID. Localizada no portal do LUIS, página de Configurações de Aplicativo do seu aplicativo.Located on the LUIS portal, Application Settings page for your app.
    YOUR-PREDICTION-KEY Sua chave de previsão de 32 caracteres.Your 32 character prediction key. Localizada no portal do LUIS, página de Recursos do Azure do seu aplicativo.Located on the LUIS portal, Azure Resources page for your app.
    YOUR-PREDICTION-ENDPOINT O ponto de extremidade da URL de previsão.Your prediction URL endpoint. Localizada no portal do LUIS, página de Recursos do Azure do seu aplicativo.Located on the LUIS portal, Azure Resources page for your app.
    Por exemplo, https://westus.api.cognitive.microsoft.com/.For example, https://westus.api.cognitive.microsoft.com/.
  3. Instalar a dependência requests.Install the requests dependency. A biblioteca requests é usada para fazer solicitações HTTP:The requests library is used to make HTTP requests:

    pip install requests
    
  4. Execute o script com este comando de console:Run your script with this console command:

    python predict.py
    
  5. Examine a resposta de previsão, que é retornada como JSON:Review the prediction response, which is returned as 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']}]}}}}
    

    Resposta em JSON formatada para facilitar a leitura:JSON response formatted for readability:

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

Limpar os recursosClean up resources

Ao concluir este guia de início rápido, exclua o arquivo do sistema de arquivos.When you are finished with this quickstart, delete the file from the file system.

Próximas etapasNext steps