Snabbstart: Hämta avsikt med PythonQuickstart: Get intent using Python

I den här snabbstarten överför du yttranden till en LUIS-slutpunkt och få avsikt och entiteter tillbaka.In this quickstart, pass utterances to a LUIS endpoint and get intent and entities back.

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 lösningen är tillgänglig från GitHub-lagringsplatsen cognitive-services-language-understanding.The complete solution is available from the cognitive-services-language-understanding 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 Python för att komma åt samma resultat som du såg i webbläsarfönstret i föregående steg.You can use Python to access the same results you saw in the browser window in the previous step.

  1. Kopiera något av följande kodavsnitt till en fil med namnet quickstart-call-endpoint.py:Copy one of the following code snippets to a file called quickstart-call-endpoint.py:

    ########### Python 2.7 #############
    import httplib, urllib, base64
    
    headers = {
        # Request headers includes endpoint key
        # You can use the authoring key instead of the endpoint key.
        # The authoring key allows 1000 endpoint queries a month.
        'Ocp-Apim-Subscription-Key': 'YOUR-KEY',
    }
    
    params = urllib.urlencode({
        # Text to analyze
        'q': 'turn on the left light',
        # Optional request parameters, set to default values
        'verbose': 'false',
    })
    
    # HTTP Request
    try:
        # LUIS endpoint HOST for westus region
        conn = httplib.HTTPSConnection('westus.api.cognitive.microsoft.com')
    
        # LUIS endpoint path
        # includes public app ID
        conn.request("GET", "/luis/v2.0/apps/df67dcdb-c37d-46af-88e1-8b97951ca1c2?%s" % params, "{body}", headers)
    
        response = conn.getresponse()
        data = response.read()
    
        # print HTTP response to screen
        print(data)
        conn.close()
    except Exception as e:
        print("[Errno {0}] {1}".format(e.errno, e.strerror))
    
    ####################################
    
    ########### Python 3.6 #############
    import requests
    
    headers = {
        # Request headers
        'Ocp-Apim-Subscription-Key': 'YOUR-KEY',
    }
    
    params ={
        # Query parameter
        'q': 'turn on the left light',
        # Optional request parameters, set to default values
        'timezoneOffset': '0',
        'verbose': 'false',
        'spellCheck': 'false',
        'staging': 'false',
    }
    
    try:
        r = requests.get('https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/df67dcdb-c37d-46af-88e1-8b97951ca1c2',headers=headers, params=params)
        print(r.json())
    
    except Exception as e:
        print("[Errno {0}] {1}".format(e.errno, e.strerror))
    
    ####################################
    
  2. Ersätt värdet i fältet Ocp-Apim-Subscription-Key med LUIS-slutpunktsnyckeln.Replace the value of the Ocp-Apim-Subscription-Key field with your LUIS endpoint key.

  3. Installera beroenden med pip install requests.Install dependencies with pip install requests.

  4. Kör skriptet med python ./quickstart-call-endpoint.py.Run the script with python ./quickstart-call-endpoint.py. Det visar samma JSON som du såg tidigare i webbläsarfönstret.It displays the same JSON 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 Python-filen.Delete the python file.

Nästa stegNext steps