Snabbstart: Hämta avsikt med Node.jsQuickstart: Get intent using Node.js

I den här snabbstarten använder du en tillgänglig offentlig LUIS-app för att fastställa användarens avsikt i konversationstext.In this quickstart, use an available public LUIS app to determine a user's intention from conversational text. Skicka användarens avsikt som text till den offentliga appens HTTP-slutpunkt för förutsägelser.Send the user's intention as text to the public app's HTTP prediction endpoint. Vid slutpunkten tillämpar LUIS den offentliga appens modell för att analysera betydelsen av text med naturligt språk, och fastställa den övergripande avsikten och extrahera data som är relevanta för appens ämnesdomän.At the endpoint, LUIS applies the public app's model to analyze the natural language text for meaning, determining overall intent and extracting data relevant to the app's subject domain.

I den här snabbstarten används slutpunktens REST-API.This quickstart uses the endpoint REST API. Mer information finns i dokumentationen om slutpunkts-API:er.For more information, see the endpoint API documentation.

I den här artikeln behöver du ett kostnadsfritt LUIS-konto.For this article, you need a free LUIS account.

FörutsättningarPrerequisites

Anteckning

Den fullständiga Node.js-lösningen finns i Azure-Samples-GitHub-lagringsplatsen.The complete Node.js solution is available from the Azure-Samples GitHub repository.

Hämta LUIS-nyckelGet LUIS key

Du kommer åt slutpunkten för förutsägelser med en slutpunktsnyckel.Access to the prediction endpoint is provided with an endpoint key. I den här snabbstarten kan du använda den kostnadsfria startnyckeln som medföljde LUIS-kontot.For the purposes of this quickstart, use the free starter key associated with your LUIS account.

  1. Logga in med ditt LUIS-konto.Sign in using your LUIS account.

    Skärmbild av applistan i LUISScreenshot of Language Understanding (LUIS) app list

  2. Välj ditt namn på menyn uppe till höger och välj sedan Inställningar.Select your name in the top right menu, then select Settings.

    Åtkomst till menyn för användarinställningar i LUIS

  3. Kopiera värdet för Authoring key (Redigeringsnyckel).Copy the value of the Authoring key. Du kommer att använda den senare i snabbstarten.You will use it later in the quickstart.

    Skärmbild av användarinställningarna i LUISScreenshot of Language Understanding (LUIS) user settings

    Med redigeringsnyckeln kan du göra ett obegränsat antal kostnadsfria förfrågningar till redigerings-API:t och köra upp till 1 000 frågor mot slutpunkts-API:t för förutsägelser per månad för alla dina LUIS-appar.The authoring key allows free unlimited requests to the authoring API and up to 1000 queries to the prediction endpoint API per month for all your LUIS apps.

Hämta avsikter i en webbläsareGet intent with browser

Om du vill förstå vad som returneras från en LUIS-slutpunkt för förutsägelser kan du granska resultatet i en webbläsare.To understand what a LUIS prediction endpoint returns, view a prediction result in a web browser. Om du vill köra frågor mot en offentlig app behöver du en egen nyckel och appens id.In order to query a public app, you need your own key and the app ID. Den offentliga IoT-appens id, df67dcdb-c37d-46af-88e1-8b97951ca1c2, ingår i webbadressen i steg ett.The public IoT app ID, df67dcdb-c37d-46af-88e1-8b97951ca1c2, is provided as part of the URL in step one.

Formatet för webbadressen för en GET-slutpunktsförfrågan är:The format of the URL for a GET endpoint request is:

https://<region>.api.cognitive.microsoft.com/luis/v2.0/apps/<appID>?subscription-key=<YOUR-KEY>&q=<user-utterance>
  1. Slutpunkten för den offentliga IoT-appen har följande format: https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/df67dcdb-c37d-46af-88e1-8b97951ca1c2?subscription-key=<YOUR_KEY>&q=turn on the bedroom lightThe endpoint of the public IoT app is in this format: https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/df67dcdb-c37d-46af-88e1-8b97951ca1c2?subscription-key=<YOUR_KEY>&q=turn on the bedroom light

    Kopiera webbadressen och ersätt värdet <YOUR_KEY> med din nyckel.Copy the URL and substitute your key for the value of <YOUR_KEY>.

  2. Klistra in URL:en i ett webbläsarfönster och tryck på Retur.Paste the URL into a browser window and press Enter. Du ser ett JSON-resultat i webbläsaren som indikerar att LUIS har identifierat avsikten HomeAutomation.TurnOn som troligaste avsikt och entiteten HomeAutomation.Room med värdet bedroom.The browser displays a JSON result that indicates that LUIS detects the HomeAutomation.TurnOn intent as the top intent and the HomeAutomation.Room entity with the value bedroom.

    {
      "query": "turn on the bedroom light",
      "topScoringIntent": {
        "intent": "HomeAutomation.TurnOn",
        "score": 0.809439957
      },
      "entities": [
        {
          "entity": "bedroom",
          "type": "HomeAutomation.Room",
          "startIndex": 12,
          "endIndex": 18,
          "score": 0.8065475
        }
      ]
    }
    
  3. Ändra värdet för parametern q= i URL: en till turn off the living room light, och tryck på Retur.Change the value of the q= parameter in the URL to turn off the living room light, and press Enter. Resultatet visar nu att LUIS identifierat avsikten HomeAutomation.TurnOff som troligaste avsikt och entiteten HomeAutomation.Room med värdet living room.The result now indicates that LUIS detected the HomeAutomation.TurnOff intent as the top intent and the HomeAutomation.Room entity with value living room.

    {
      "query": "turn off the living room light",
      "topScoringIntent": {
        "intent": "HomeAutomation.TurnOff",
        "score": 0.984057844
      },
      "entities": [
        {
          "entity": "living room",
          "type": "HomeAutomation.Room",
          "startIndex": 13,
          "endIndex": 23,
          "score": 0.9619945
        }
      ]
    }
    

Hämta avsikter programmatisktGet intent programmatically

Du kan använda Node.js för att komma åt samma resultat som du såg i webbläsarfönstret i föregående steg.You can use Node.js to access the same results you saw in the browser window in the previous step.

  1. Kopiera följande kodfragment:Copy the following code snippet:

    require('dotenv').config();
    
    var request = require('request');
    var querystring = require('querystring');
    
    // Analyze text
    //
    // utterance = user's text
    //
    function getLuisIntent(utterance) {
    
        // endpoint URL
        var endpoint =
            "https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/";
    
        // Set the LUIS_APP_ID environment variable 
        // to df67dcdb-c37d-46af-88e1-8b97951ca1c2, which is the ID
        // of a public sample application.    
        var luisAppId = process.env.LUIS_APP_ID;
    
        // Read LUIS key from environment file ".env"
        // You can use the authoring key instead of the endpoint key. 
        // The authoring key allows 1000 endpoint queries a month.
        var endpointKey = process.env.LUIS_ENDPOINT_KEY;
    
        // Create query string 
        var queryParams = {
            "verbose":  true,
            "q": utterance,
            "subscription-key": endpointKey
        }
    
        // append query string to endpoint URL
        var luisRequest =
            endpoint + luisAppId +
            '?' + querystring.stringify(queryParams);
    
        // HTTP Request
        request(luisRequest,
            function (err,
                response, body) {
    
                // HTTP Response
                if (err)
                    console.log(err);
                else {
                    var data = JSON.parse(body);
    
                    console.log(`Query: ${data.query}`);
                    console.log(`Top Intent: ${data.topScoringIntent.intent}`);
                    console.log('Intents:');
                    console.log(JSON.stringify(data.intents));
                }
            });
    }
    
    // Pass an utterance to the sample LUIS app
    getLuisIntent('turn on the left light');
    
    
    
  2. Skapa filen .env med följande text eller ange dessa variabler i systemmiljön:Create .env file with the following text or set these variables in the system environment:

    LUIS_APP_ID=df67dcdb-c37d-46af-88e1-8b97951ca1c2
    LUIS_ENDPOINT_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    
  3. Ange miljövariabeln LUIS_ENDPOINT_KEY för nyckeln.Set the LUIS_ENDPOINT_KEY environment variable to your key.

  4. Installera beroenden genom att köra följande kommando på kommandoraden: npm install.Install dependencies by running the following command at the command-line: npm install.

  5. Kör koden med npm start.Run the code with npm start. Det visar samma värden som du såg tidigare i webbläsarfönstret.It displays the same values that you saw earlier in the browser window.

LUIS-nycklarLUIS keys

I den här snabbstarten används av praktiska skäl en redigeringsnyckel.This quickstart uses the authoring key for convenience. Nyckeln är främst avsedd för att skriva modellen, men tillåter ett litet antal (1 000) slutpunktsförfrågningar.The key is primarily for authoring the model but does allow a small number (1000) of endpoint requests. När du är redo för fler förfrågningar i ett test eller en produktionsmiljö kan du skapa en Språkförståelse-resurs i Azure-portalen och tilldela den till LUIS-appen i LUIS-portalen.When you are ready for more endpoint requests in a test, stage or production environment, create a Language Understanding resource in the Azure portal and assign it to the LUIS app in the LUIS portal.

Rensa resurserClean up resources

Ta bort Node.js-filen.Delete the Node.js file.

Nästa stegNext steps