Avvio rapido: Ottenere la finalità tramite PythonQuickstart: Get intent using Python

In questa guida introduttiva si passano le espressioni a un endpoint LUIS per ottenere la restituzione di finalità ed entità.In this quickstart, pass utterances to a LUIS endpoint and get intent and entities back.

In questa guida introduttiva si usa un'app LUIS pubblica disponibile per stabilire l'intenzione di un utente partendo da un testo discorsivo.In this quickstart, use an available public LUIS app to determine a user's intention from conversational text. Inviare l'intenzione dell'utente come testo all'endpoint di previsione HTTP dell'app pubblica.Send the user's intention as text to the public app's HTTP prediction endpoint. Nell'endpoint, LUIS applica il modello dell'app pubblica per analizzare il testo in linguaggio naturale allo scopo di identificare il significato, stabilire la finalità generale ed estrarre i dati pertinenti per il dominio dell'app.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.

Questa guida introduttiva usa l'endpoint API REST.This quickstart uses the endpoint REST API. Per altre informazioni, vedere la documentazione dell'endpoint API.For more information, see the endpoint API documentation.

Per questo articolo è necessario un account LUIS gratuito.For this article, you need a free LUIS account.

PrerequisitiPrerequisites

Nota

La soluzione completa è disponibile nel repository GitHub cognitive-services-language-understanding.The complete solution is available from the cognitive-services-language-understanding GitHub repository.

Ottenere la chiave di LUISGet LUIS key

L'accesso all'endpoint di stima viene fornito con una chiave di endpoint.Access to the prediction endpoint is provided with an endpoint key. Ai fini di questa Guida introduttiva, usare la chiave iniziale gratuita associata all'account LUIS.For the purposes of this quickstart, use the free starter key associated with your LUIS account.

  1. Accedere utilizzando il proprio account LUIS.Sign in using your LUIS account.

    Screenshot dell'elenco di app di LUIS (Language Understanding)Screenshot of Language Understanding (LUIS) app list

  2. Selezionare il nome dell'account nel menu in alto a destra, quindi selezionare Impostazioni.Select your name in the top right menu, then select Settings.

    Accesso al menu delle impostazioni utente di LUIS

  3. Copiare il valore della Chiave di creazione.Copy the value of the Authoring key. Sarà utile più avanti nella Guida introduttiva.You will use it later in the quickstart.

    Screenshot delle impostazioni utenti di LUIS (Language Understanding)Screenshot of Language Understanding (LUIS) user settings

    La chiave di creazione consente richieste illimitate gratuite per l'API di creazione e modifica e fino a 1000 query per l'API di endpoint di stima al mese per tutte le app LUIS.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.

Ottenere la finalità tramite browserGet intent with browser

Per comprendere ciò che restituisce un endpoint di stima LUIS, visualizzare un risultato di stima in un Web browser.To understand what a LUIS prediction endpoint returns, view a prediction result in a web browser. Per eseguire query su un'app pubblica, sono necessari la propria chiave e l'ID app.In order to query a public app, you need your own key and the app ID. L'ID app IoT pubblica, df67dcdb-c37d-46af-88e1-8b97951ca1c2, viene fornito come parte dell'URL al passaggio uno.The public IoT app ID, df67dcdb-c37d-46af-88e1-8b97951ca1c2, is provided as part of the URL in step one.

Il formato dell'URL per una richiesta dell'endpoint GET è: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. L'endpoint dell'app IoT pubblica presenta il formato seguente: 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

    Copiare l'URL e sostituire la chiave con il valore di <YOUR_KEY>.Copy the URL and substitute your key for the value of <YOUR_KEY>.

  2. Incollare l'URL in una finestra del browser e premere INVIO.Paste the URL into a browser window and press Enter. Il browser visualizzerà un risultato JSON che indica che LUIS rileva la finalità HomeAutomation.TurnOn come finalità principale e l'entità HomeAutomation.Room con il valore 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. Sostituire il valore del parametro q= nell'URL con turn off the living room light e premere INVIO.Change the value of the q= parameter in the URL to turn off the living room light, and press Enter. Il risultato indica adesso che LUIS ha rilevato la finalità HomeAutomation.TurnOff come finalità principale e l'entità HomeAutomation.Room con valore 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
        }
      ]
    }
    

Ottenere la finalità a livello di codiceGet intent programmatically

È possibile usare Python per accedere agli stessi risultati illustrati nella finestra del browser nel passaggio precedente.You can use Python to access the same results you saw in the browser window in the previous step.

  1. Copiare uno dei frammenti di codice seguenti in un file denominato 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. Sostituire il valore del campo Ocp-Apim-Subscription-Key con la chiave dell'endpoint LUIS.Replace the value of the Ocp-Apim-Subscription-Key field with your LUIS endpoint key.

  3. Installare le dipendenze con il comando pip install requests.Install dependencies with pip install requests.

  4. Eseguire lo script con il comando python ./quickstart-call-endpoint.py.Run the script with python ./quickstart-call-endpoint.py. Apparirà lo stesso codice JSON visualizzato in precedenza nella finestra del browser.It displays the same JSON that you saw earlier in the browser window.

Chiavi di LUISLUIS keys

Questa guida introduttiva usa la chiave di creazione per motivi di praticità.This quickstart uses the authoring key for convenience. La chiave viene utilizzata principalmente per la creazione del modello, ma consente un numero ridotto (1000) di richieste inviate all'endpoint.The key is primarily for authoring the model but does allow a small number (1000) of endpoint requests. Quando si è pronti per inviare più richieste all'endpoint in un ambiente di test, programmazione o produzione, creare una risorsa Language Understanding nel portale di Azure e assegnarla all'app LUIS tramite il portale di LUIS.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.

Pulire le risorseClean up resources

Eliminare il file Python.Delete the python file.

Passaggi successiviNext steps