Udostępnij za pośrednictwem


Jak zaktualizować model usługi LUIS przy użyciu interfejsów API REST

Ważne

Usługa LUIS zostanie wycofana 1 października 2025 r. i od 1 kwietnia 2023 r. nie będzie można utworzyć nowych zasobów usługi LUIS. Zalecamy migrację aplikacji LUIS do interpretacji języka konwersacyjnego, aby korzystać z ciągłej pomocy technicznej i wielojęzycznych możliwości produktów.

W tym artykule dodasz przykładowe wypowiedzi do aplikacji Pizza i przeszkolisz aplikację. Przykładowe wypowiedzi to tekst z rozmowami użytkownika mapowany na intencje. Poprzez zapewnienie przykładowych wypowiedzi dla intencji możesz nauczyć aplikację LUIS, jakim intencjom odpowiada rodzaj tekstu podanego przez użytkownika.

| Dokumentacja referencyjna — przykład

Wymagania wstępne

Plik JSON z przykładowymi wypowiedziami

Przykładowe wypowiedzi są zgodne z określonym formatem.

Pole text zawiera tekst przykładowej wypowiedzi. Pole intentName musi odpowiadać nazwie istniejącej wypowiedzi w aplikacji LUIS. Pole entityLabels jest wymagane. Jeśli nie chcesz dodawać etykiet do żadnych jednostek, podaj pustą tablicę.

Jeśli tablica entityLabels nie jest pusta, elementy startCharIndex i endCharIndex muszą oznaczać jednostkę określoną w polu entityName. Jest to indeks zaczynający się od zera. Jeśli zaczynasz lub kończysz etykietę w miejscu w tekście, wywołanie interfejsu API w celu dodania wypowiedzi zakończy się niepowodzeniem.

[
  {
    "text": "order a pizza",
    "intentName": "ModifyOrder",
    "entityLabels": [
      {
        "entityName": "Order",
        "startCharIndex": 6,
        "endCharIndex": 12
      }
    ]
  },
  {
    "text": "order a large pepperoni pizza",
    "intentName": "ModifyOrder",
    "entityLabels": [
      {
        "entityName": "Order",
        "startCharIndex": 6,
        "endCharIndex": 28
      },
      {
        "entityName": "FullPizzaWithModifiers",
        "startCharIndex": 6,
        "endCharIndex": 28
      },
      {
        "entityName": "PizzaType",
        "startCharIndex": 14,
        "endCharIndex": 28
      },
      {
        "entityName": "Size",
        "startCharIndex": 8,
        "endCharIndex": 12
      }
    ]
  },
  {
    "text": "I want two large pepperoni pizzas on thin crust",
    "intentName": "ModifyOrder",
    "entityLabels": [
      {
        "entityName": "Order",
        "startCharIndex": 7,
        "endCharIndex": 46
      },
      {
        "entityName": "FullPizzaWithModifiers",
        "startCharIndex": 7,
        "endCharIndex": 46
      },
      {
        "entityName": "PizzaType",
        "startCharIndex": 17,
        "endCharIndex": 32
      },
      {
        "entityName": "Size",
        "startCharIndex": 11,
        "endCharIndex": 15
      },
      {
        "entityName": "Quantity",
        "startCharIndex": 7,
        "endCharIndex": 9
      },
      {
        "entityName": "Crust",
        "startCharIndex": 37,
        "endCharIndex": 46
      }
    ]
  }
]

Tworzenie aplikacji pizza

Utwórz aplikację pizzy.

  1. Wybierz pizza-app-for-luis-v6.json , aby wyświetlić stronę usługi GitHub dla pizza-app-for-luis.json pliku.
  2. Kliknij prawym przyciskiem myszy lub naciśnij przycisk Raw (Nieprzetworzone ) i wybierz polecenie Save link ( Zapisz link), aby zapisać pizza-app-for-luis.json go na komputerze.
  3. Zaloguj się do portalu usługi LUIS.
  4. Wybierz pozycję Moje aplikacje.
  5. Na stronie Moje aplikacje wybierz pozycję + Nowa aplikacja do konwersacji.
  6. Wybierz pozycję Importuj jako plik JSON.
  7. W oknie dialogowym Importowanie nowej aplikacji wybierz przycisk Wybierz plik .
  8. pizza-app-for-luis.json Wybierz pobrany plik, a następnie wybierz pozycję Otwórz.
  9. W oknie dialogowym Importowanie nowej aplikacji Nazwa wprowadź nazwę aplikacji Pizza, a następnie wybierz przycisk Gotowe.

Aplikacja zostanie zaimportowana.

Jeśli zostanie wyświetlone okno dialogowe Jak utworzyć efektywną aplikację usługi LUIS, zamknij okno dialogowe.

Trenowanie i publikowanie aplikacji Pizza

Powinna zostać wyświetlona strona Intents (Intencje ) z listą intencji w aplikacji Pizza.

  1. W prawym górnym rogu witryny internetowej usługi LUIS wybierz przycisk Trenuj .

    Przycisk Train (Ucz)

  2. Trenowanie jest ukończone po wyłączeniu przycisku Train (Trenowanie).

Aby otrzymać przewidywanie usługi LUIS w czatbotze lub innych aplikacjach klienckich, należy opublikować aplikację w punkcie końcowym przewidywania.

  1. Wybierz pozycję Publikuj w prawym górnym rogu nawigacji.

    Zrzut ekranu przedstawiający przycisk publikowania w punkcie końcowym.

  2. Wybierz miejsce produkcyjne, a następnie wybierz pozycję Gotowe.

    Zrzut ekranu przedstawiający publikowanie w usłudze LUIS w punkcie końcowym.

  3. Wybierz pozycję Uzyskaj dostęp do adresów URL punktów końcowych w powiadomieniu, aby przejść do strony Zasoby platformy Azure. Adresy URL będą widoczne tylko wtedy, gdy masz zasób przewidywania skojarzony z aplikacją. Możesz również znaleźć stronę Zasoby platformy Azure, klikając pozycję Zarządzaj.

    Zrzut ekranu przedstawiający komunikat pokazujący, że aplikacja została opublikowana.

Dodawanie zasobu tworzenia do aplikacji Pizza

  1. Wybierz pozycję ZARZĄDZAJ.
  2. Wybierz pozycję Azure Resources (Zasoby platformy Azure).
  3. Wybierz pozycję Zasób tworzenia.
  4. Wybierz pozycję Zmień zasób tworzenia.

Jeśli masz zasób tworzenia, wprowadź nazwę dzierżawy, nazwę subskrypcji i nazwę zasobu usługi LUIS zasobu tworzenia.

Jeśli nie masz zasobu tworzenia:

  1. Wybierz pozycję Utwórz nowy zasób.
  2. Wprowadź nazwę dzierżawy, nazwę zasobu, nazwę subskrypcji i nazwę grupy zasobów platformy Azure.

Aplikacja Pizza jest teraz gotowa do użycia.

Rejestrowanie wartości dostępu dla aplikacji Pizza

Aby korzystać z nowej aplikacji Pizza, musisz mieć identyfikator aplikacji, klucz tworzenia i punkt końcowy tworzenia aplikacji Pizza. Aby uzyskać przewidywania, potrzebujesz oddzielnego punktu końcowego przewidywania i klucza przewidywania.

Aby znaleźć następujące wartości:

  1. Na stronie Intents (Intencje) wybierz pozycję MANAGE (ZARZĄDZAJ).
  2. Na stronie Ustawienia aplikacji zapisz identyfikator aplikacji.
  3. Wybierz pozycję Azure Resources (Zasoby platformy Azure).
  4. Wybierz pozycję Zasób tworzenia.
  5. Na kartach Zasoby tworzenia i zasoby przewidywania zapisz klucz podstawowy. Ta wartość jest kluczem tworzenia.
  6. Zarejestruj adres URL punktu końcowego. Ta wartość to punkt końcowy tworzenia.

Programowe zmienianie modelu

  1. Utwórz nową aplikację konsolową przeznaczoną dla języka C# z nazwą csharp-model-with-restprojektu i folderu .

    dotnet new console -lang C# -n csharp-model-with-rest
    
  2. Przejdź do utworzonego csharp-model-with-rest katalogu i zainstaluj wymagane zależności za pomocą następujących poleceń:

    cd csharp-model-with-rest
    dotnet add package System.Net.Http
    dotnet add package JsonFormatterPlus
    
  3. Zastąp plik Program.cs przy użyciu następującego kodu:

    //
    // This quickstart shows how to add utterances to a LUIS model using the REST APIs.
    //
    
    using System;
    using System.IO;
    using System.Net.Http;
    using System.Text;
    using System.Threading.Tasks;
    using System.Collections.Generic;
    using System.Linq;
    
    // 3rd party NuGet packages
    using JsonFormatterPlus;
    
    namespace AddUtterances
    {
        class Program
        {
            //////////
            // Values to modify.
    
            // YOUR-APP-ID: The App ID GUID found on the www.luis.ai Application Settings page.
            static string appID = "PASTE_YOUR_LUIS_APP_ID_HERE";
    
            // YOUR-AUTHORING-KEY: Your LUIS authoring key, 32 character value.
            static string authoringKey = "PASTE_YOUR_LUIS_AUTHORING_SUBSCRIPTION_KEY_HERE";
    
            // YOUR-AUTHORING-ENDPOINT: Replace this endpoint with your authoring key endpoint.
            // For example, "https://your-resource-name.cognitiveservices.azure.com/"
            static string authoringEndpoint = "PASTE_YOUR_LUIS_AUTHORING_ENDPOINT_HERE";
    
            // NOTE: Replace this your version number.
            static string appVersion = "0.1";
            //////////
    
            static string host = String.Format("{0}luis/authoring/v3.0-preview/apps/{1}/versions/{2}/", authoringEndpoint, appID, appVersion);
    
            // GET request with authentication
            async static Task<HttpResponseMessage> SendGet(string uri)
            {
                using (var client = new HttpClient())
                using (var request = new HttpRequestMessage())
                {
                    request.Method = HttpMethod.Get;
                    request.RequestUri = new Uri(uri);
                    request.Headers.Add("Ocp-Apim-Subscription-Key", authoringKey);
                    return await client.SendAsync(request);
                }
            }
    
            // POST request with authentication
            async static Task<HttpResponseMessage> SendPost(string uri, string requestBody)
            {
                using (var client = new HttpClient())
                using (var request = new HttpRequestMessage())
                {
                    request.Method = HttpMethod.Post;
                    request.RequestUri = new Uri(uri);
    
                    if (!String.IsNullOrEmpty(requestBody))
                    {
                        request.Content = new StringContent(requestBody, Encoding.UTF8, "text/json");
                    }
    
                    request.Headers.Add("Ocp-Apim-Subscription-Key", authoringKey);
                    return await client.SendAsync(request);
                }
            }
    
            // Add utterances as string with POST request
            async static Task AddUtterances(string utterances)
            {
                string uri = host + "examples";
    
                var response = await SendPost(uri, utterances);
                var result = await response.Content.ReadAsStringAsync();
                Console.WriteLine("Added utterances.");
                Console.WriteLine(JsonFormatter.Format(result));
            }
    
            // Train app after adding utterances
            async static Task Train()
            {
                string uri = host  + "train";
    
                var response = await SendPost(uri, null);
                var result = await response.Content.ReadAsStringAsync();
                Console.WriteLine("Sent training request.");
                Console.WriteLine(JsonFormatter.Format(result));
            }
    
            // Check status of training
            async static Task Status()
            {
                var response = await SendGet(host  + "train");
                var result = await response.Content.ReadAsStringAsync();
                Console.WriteLine("Requested training status.");
                Console.WriteLine(JsonFormatter.Format(result));
            }
    
            // Add utterances, train, check status
            static void Main(string[] args)
            {
                string utterances = @"
                [
                    {
                        'text': 'order a pizza',
                        'intentName': 'ModifyOrder',
                        'entityLabels': [
                            {
                                'entityName': 'Order',
                                'startCharIndex': 6,
                                'endCharIndex': 12
                            }
                        ]
                    },
                    {
                        'text': 'order a large pepperoni pizza',
                        'intentName': 'ModifyOrder',
                        'entityLabels': [
                            {
                                'entityName': 'Order',
                                'startCharIndex': 6,
                                'endCharIndex': 28
                            },
                            {
                                'entityName': 'FullPizzaWithModifiers',
                                'startCharIndex': 6,
                                'endCharIndex': 28
                            },
                            {
                                'entityName': 'PizzaType',
                                'startCharIndex': 14,
                                'endCharIndex': 28
                            },
                            {
                                'entityName': 'Size',
                                'startCharIndex': 8,
                                'endCharIndex': 12
                            }
                        ]
                    },
                    {
                        'text': 'I want two large pepperoni pizzas on thin crust',
                        'intentName': 'ModifyOrder',
                        'entityLabels': [
                            {
                                'entityName': 'Order',
                                'startCharIndex': 7,
                                'endCharIndex': 46
                            },
                            {
                                'entityName': 'FullPizzaWithModifiers',
                                'startCharIndex': 7,
                                'endCharIndex': 46
                            },
                            {
                                'entityName': 'PizzaType',
                                'startCharIndex': 17,
                                'endCharIndex': 32
                            },
                            {
                                'entityName': 'Size',
                                'startCharIndex': 11,
                                'endCharIndex': 15
                            },
                            {
                                'entityName': 'Quantity',
                                'startCharIndex': 7,
                                'endCharIndex': 9
                            },
                            {
                                'entityName': 'Crust',
                                'startCharIndex': 37,
                                'endCharIndex': 46
                            }
                        ]
                    }
                ]
                ";
    
                AddUtterances(utterances).Wait();
                Train().Wait();
                Status().Wait();
            }
        }
    }
    
  4. Zastąp YOUR- wartości zaczynające się od własnych wartości.

    Informacja Purpose
    YOUR-APP-ID Identyfikator aplikacji usługi LUIS.
    YOUR-AUTHORING-KEY Klucz tworzenia 32 znaków.
    YOUR-AUTHORING-ENDPOINT Punkt końcowy adresu URL tworzenia. Na przykład https://replace-with-your-resource-name.api.cognitive.microsoft.com/. Nazwa zasobu została ustawiona podczas tworzenia zasobu.

    Przypisane klucze i zasoby są widoczne w portalu usługi LUIS w sekcji Zarządzanie na stronie zasobów platformy Azure. Identyfikator aplikacji jest dostępny w tej samej sekcji Zarządzanie na stronie Ustawienia aplikacji.

    Ważne

    Pamiętaj, aby usunąć klucz z kodu po zakończeniu i nigdy nie publikować go publicznie. W przypadku środowiska produkcyjnego użyj bezpiecznego sposobu przechowywania i uzyskiwania dostępu do poświadczeń, takich jak usługa Azure Key Vault. Aby uzyskać więcej informacji, zobacz artykuł Dotyczący zabezpieczeń usług Azure AI.

  5. Skompiluj aplikację konsolową.

    dotnet build
    
  6. Uruchom aplikację konsolową.

    dotnet run
    
  7. Przejrzyj odpowiedź na tworzenie:

    Added utterances.
    [
        {
            "value": {
                "ExampleId": 1137150691,
                "UtteranceText": "order a pizza"
            },
            "hasError": false
        },
        {
            "value": {
                "ExampleId": 1137150692,
                "UtteranceText": "order a large pepperoni pizza"
            },
            "hasError": false
        },
        {
            "value": {
                "ExampleId": 1137150693,
                "UtteranceText": "i want two large pepperoni pizzas on thin crust"
            },
            "hasError": false
        }
    ]
    Sent training request.
    {
        "statusId": 9,
        "status": "Queued"
    }
    Requested training status.
    [
        {
            "modelId": "edb46abf-0000-41ab-beb2-a41a0fe1630f",
            "details": {
                "statusId": 9,
                "status": "Queued",
                "exampleCount": 0
            }
        },
        {
            "modelId": "a5030be2-616c-4648-bf2f-380fa9417d37",
            "details": {
                "statusId": 9,
                "status": "Queued",
                "exampleCount": 0
            }
        },
        {
            "modelId": "3f2b1f31-a3c3-4fbd-8182-e9d9dbc120b9",
            "details": {
                "statusId": 9,
                "status": "Queued",
                "exampleCount": 0
            }
        },
        {
            "modelId": "e4b6704b-1636-474c-9459-fe9ccbeba51c",
            "details": {
                "statusId": 9,
                "status": "Queued",
                "exampleCount": 0
            }
        },
        {
            "modelId": "031d3777-2a00-4a7a-9323-9a3280a30000",
            "details": {
                "statusId": 9,
                "status": "Queued",
                "exampleCount": 0
            }
        },
        {
            "modelId": "9250e7a1-06eb-4413-9432-ae132ed32583",
            "details": {
                "statusId": 9,
                "status": "Queued",
                "exampleCount": 0
            }
        }
    ]
    

Czyszczenie zasobów

Po zakończeniu pracy z tym przewodnikiem Szybki start usuń folder projektu z systemu plików.

Następne kroki

Najlepsze rozwiązania dotyczące aplikacji

| Dokumentacja referencyjna — przykład

Wymagania wstępne

Plik JSON z przykładowymi wypowiedziami

Przykładowe wypowiedzi są zgodne z określonym formatem.

Pole text zawiera tekst przykładowej wypowiedzi. Pole intentName musi odpowiadać nazwie istniejącej wypowiedzi w aplikacji LUIS. Pole entityLabels jest wymagane. Jeśli nie chcesz dodawać etykiet do żadnych jednostek, podaj pustą tablicę.

Jeśli tablica entityLabels nie jest pusta, elementy startCharIndex i endCharIndex muszą oznaczać jednostkę określoną w polu entityName. Jest to indeks zaczynający się od zera. Jeśli zaczynasz lub kończysz etykietę w miejscu w tekście, wywołanie interfejsu API w celu dodania wypowiedzi zakończy się niepowodzeniem.

[
  {
    "text": "order a pizza",
    "intentName": "ModifyOrder",
    "entityLabels": [
      {
        "entityName": "Order",
        "startCharIndex": 6,
        "endCharIndex": 12
      }
    ]
  },
  {
    "text": "order a large pepperoni pizza",
    "intentName": "ModifyOrder",
    "entityLabels": [
      {
        "entityName": "Order",
        "startCharIndex": 6,
        "endCharIndex": 28
      },
      {
        "entityName": "FullPizzaWithModifiers",
        "startCharIndex": 6,
        "endCharIndex": 28
      },
      {
        "entityName": "PizzaType",
        "startCharIndex": 14,
        "endCharIndex": 28
      },
      {
        "entityName": "Size",
        "startCharIndex": 8,
        "endCharIndex": 12
      }
    ]
  },
  {
    "text": "I want two large pepperoni pizzas on thin crust",
    "intentName": "ModifyOrder",
    "entityLabels": [
      {
        "entityName": "Order",
        "startCharIndex": 7,
        "endCharIndex": 46
      },
      {
        "entityName": "FullPizzaWithModifiers",
        "startCharIndex": 7,
        "endCharIndex": 46
      },
      {
        "entityName": "PizzaType",
        "startCharIndex": 17,
        "endCharIndex": 32
      },
      {
        "entityName": "Size",
        "startCharIndex": 11,
        "endCharIndex": 15
      },
      {
        "entityName": "Quantity",
        "startCharIndex": 7,
        "endCharIndex": 9
      },
      {
        "entityName": "Crust",
        "startCharIndex": 37,
        "endCharIndex": 46
      }
    ]
  }
]

Programowe zmienianie modelu

  1. Utwórz nowy folder do przechowywania projektu Java, na przykład java-model-with-rest.

  2. Utwórz podkatalog o nazwie lib i skopiuj następujące biblioteki Java do podkatalogu lib :

  3. Utwórz nowy plik o nazwie Model.java. Dodaj następujący kod:

    //
    // This quickstart shows how to add utterances to a LUIS model using the 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.methods.HttpPost;
    import org.apache.http.client.utils.URIBuilder;
    import org.apache.http.entity.StringEntity;
    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/*" Model.java
    //      macOs: javac -cp ":lib/*" Model.java
    //      Linux: javac -cp ":lib/*" Model.java
    
    // To run, execute this command at the console:
    //      Windows: java -cp ";lib/*" Model
    //      macOs: java -cp ":lib/*" Model
    //      Linux: java -cp ":lib/*" Model
    
    public class Model
    {
        public static void main(String[] args)
        {
            try
            {
                //////////
                // Values to modify.
    
                // YOUR-APP-ID: The App ID GUID found on the www.luis.ai Application Settings page.
                String AppId = "PASTE_YOUR_LUIS_APP_ID_HERE";
    
                // YOUR-AUTHORING-KEY: Your LUIS authoring key, 32 character value.
                String Key = "PASTE_YOUR_LUIS_AUTHORING_SUBSCRIPTION_KEY_HERE";
    
                // YOUR-AUTHORING-ENDPOINT: Replace this with your authoring key endpoint.
                // For example, "https://your-resource-name.cognitiveservices.azure.com/"
                String Endpoint = "PASTE_YOUR_LUIS_AUTHORING_ENDPOINT_HERE";
    
                // NOTE: Replace this your version number. The Pizza app uses a version number of "0.1".
                String Version = "0.1";
                //////////
    
                // The list of utterances to add, in JSON format.
                String Utterances = "[{'text': 'order a pizza', 'intentName': 'ModifyOrder', 'entityLabels': [{'entityName': 'Order', 'startCharIndex': 6, 'endCharIndex': 12}]}, {'text': 'order a large pepperoni pizza', 'intentName': 'ModifyOrder', 'entityLabels': [{'entityName': 'Order', 'startCharIndex': 6, 'endCharIndex': 28}, {'entityName': 'FullPizzaWithModifiers', 'startCharIndex': 6, 'endCharIndex': 28}, {'entityName': 'PizzaType', 'startCharIndex': 14, 'endCharIndex': 28}, {'entityName': 'Size', 'startCharIndex': 8, 'endCharIndex': 12}]}, {'text': 'I want two large pepperoni pizzas on thin crust', 'intentName': 'ModifyOrder', 'entityLabels': [{'entityName': 'Order', 'startCharIndex': 7, 'endCharIndex': 46}, {'entityName': 'FullPizzaWithModifiers', 'startCharIndex': 7, 'endCharIndex': 46}, {'entityName': 'PizzaType', 'startCharIndex': 17, 'endCharIndex': 32}, {'entityName': 'Size', 'startCharIndex': 11, 'endCharIndex': 15}, {'entityName': 'Quantity', 'startCharIndex': 7, 'endCharIndex': 9}, {'entityName': 'Crust', 'startCharIndex': 37, 'endCharIndex': 46}]}]";
    
                // Create the URLs for uploading example utterances and for training.
                URIBuilder addUtteranceURL = new URIBuilder(Endpoint + "luis/authoring/v3.0-preview/apps/" + AppId + "/versions/" + Version + "/examples");
                URIBuilder trainURL = new URIBuilder(Endpoint + "luis/authoring/v3.0-preview/apps/" + AppId + "/versions/" + Version + "/train");
                URI addUtterancesURI = addUtteranceURL.build();
                URI trainURI = trainURL.build();
    
    
                // Add the utterances.
    
                // Create the request.
                HttpClient addUtterancesClient = HttpClients.createDefault();
                HttpPost addUtterancesRequest = new HttpPost(addUtterancesURI);
    
                // Add the headers.
                addUtterancesRequest.setHeader("Ocp-Apim-Subscription-Key",Key);
                addUtterancesRequest.setHeader("Content-type","application/json");
    
                // Add the body.
                StringEntity stringEntity = new StringEntity(Utterances);
                addUtterancesRequest.setEntity(stringEntity);
    
                // Execute the request and obtain the response.
                HttpResponse addUtterancesResponse = addUtterancesClient.execute(addUtterancesRequest);
                HttpEntity addUtterancesEntity = addUtterancesResponse.getEntity();
    
                // Print the response on the console.
                if (addUtterancesEntity != null)
                {
                    System.out.println(EntityUtils.toString(addUtterancesEntity));
                }
    
    
                // Train the model.
    
                // Create the request.
                HttpClient trainClient = HttpClients.createDefault();
                HttpPost trainRequest = new HttpPost(trainURI);
    
                // Add the headers.
                trainRequest.setHeader("Ocp-Apim-Subscription-Key",Key);
                trainRequest.setHeader("Content-type","application/json");
    
                // Execute the request and obtain the response.
                HttpResponse trainResponse = trainClient.execute(trainRequest);
                HttpEntity trainEntity = trainResponse.getEntity();
    
                // Print the response on the console.
                if (trainEntity != null)
                {
                    System.out.println(EntityUtils.toString(trainEntity));
                }
    
    
                // Get the training status.
    
    
                // Create the request.
                HttpClient trainStatusClient = HttpClients.createDefault();
                HttpGet trainStatusRequest = new HttpGet(trainURI);
    
                // Add the headers.
                trainStatusRequest.setHeader("Ocp-Apim-Subscription-Key",Key);
                trainStatusRequest.setHeader("Content-type","application/json");
    
                // Execute the request and obtain the response.
                HttpResponse trainStatusResponse = trainStatusClient.execute(trainStatusRequest);
                HttpEntity trainStatusEntity = trainStatusResponse.getEntity();
    
                // Print the response on the console.
                if (trainStatusEntity != null)
                {
                    System.out.println(EntityUtils.toString(trainStatusEntity));
                }
            }
    
            // Display errors if they occur.
            catch (Exception e)
            {
                System.out.println(e.getMessage());
            }
        }
    }
    
  4. Zastąp YOUR- wartości zaczynające się od własnych wartości.

    Informacja Purpose
    YOUR-APP-ID Identyfikator aplikacji usługi LUIS.
    YOUR-AUTHORING-KEY Klucz tworzenia 32 znaków.
    YOUR-AUTHORING-ENDPOINT Punkt końcowy adresu URL tworzenia. Na przykład https://replace-with-your-resource-name.api.cognitive.microsoft.com/. Nazwa zasobu została ustawiona podczas tworzenia zasobu.

    Przypisane klucze i zasoby są widoczne w portalu usługi LUIS w sekcji Zarządzanie na stronie zasobów platformy Azure. Identyfikator aplikacji jest dostępny w tej samej sekcji Zarządzanie na stronie Ustawienia aplikacji.

    Ważne

    Pamiętaj, aby usunąć klucz z kodu po zakończeniu i nigdy nie publikować go publicznie. W przypadku środowiska produkcyjnego użyj bezpiecznego sposobu przechowywania i uzyskiwania dostępu do poświadczeń, takich jak usługa Azure Key Vault. Aby uzyskać więcej informacji, zobacz artykuł Dotyczący zabezpieczeń usług Azure AI.

  5. W wierszu polecenia w tym samym katalogu, w którym został utworzony Model.java plik, wprowadź następujące polecenie, aby skompilować plik Java:

    • Jeśli używasz systemu Windows, użyj tego polecenia: javac -cp ";lib/*" Model.java
    • Jeśli używasz systemu macOS lub Linux, użyj następującego polecenia: javac -cp ":lib/*" Model.java
  6. Uruchom aplikację Java z wiersza polecenia, wprowadzając następujący tekst w wierszu polecenia:

    • Jeśli używasz systemu Windows, użyj tego polecenia: java -cp ";lib/*" Model
    • Jeśli używasz systemu macOS lub Linux, użyj następującego polecenia: java -cp ":lib/*" Model
  7. Przejrzyj odpowiedź na tworzenie:

    [{"value":{"ExampleId":1137150691,"UtteranceText":"order a pizza"},"hasError":false},{"value":{"ExampleId":1137150692,"UtteranceText":"order a large pepperoni pizza"},"hasError":false},{"value":{"ExampleId":1137150693,"UtteranceText":"i want two large pepperoni pizzas on thin crust"},"hasError":false}]
    {"statusId":9,"status":"Queued"}
    [{"modelId":"edb46abf-0000-41ab-beb2-a41a0fe1630f","details":{"statusId":9,"status":"Queued","exampleCount":0}},{"modelId":"a5030be2-616c-4648-bf2f-380fa9417d37","details":{"statusId":9,"status":"Queued","exampleCount":0}},{"modelId":"3f2b1f31-a3c3-4fbd-8182-e9d9dbc120b9","details":{"statusId":9,"status":"Queued","exampleCount":0}},{"modelId":"e4b6704b-1636-474c-9459-fe9ccbeba51c","details":{"statusId":9,"status":"Queued","exampleCount":0}},{"modelId":"031d3777-2a00-4a7a-9323-9a3280a30000","details":{"statusId":9,"status":"Queued","exampleCount":0}},{"modelId":"9250e7a1-06eb-4413-9432-ae132ed32583","details":{"statusId":3,"status":"InProgress","exampleCount":0,"progressSubstatus":"CollectingData"}}]
    

    Oto dane wyjściowe sformatowane pod kątem czytelności:

    [
      {
        "value": {
          "ExampleId": 1137150691,
          "UtteranceText": "order a pizza"
        },
        "hasError": false
      },
      {
        "value": {
          "ExampleId": 1137150692,
          "UtteranceText": "order a large pepperoni pizza"
        },
        "hasError": false
      },
      {
        "value": {
          "ExampleId": 1137150693,
          "UtteranceText": "i want two large pepperoni pizzas on thin crust"
        },
        "hasError": false
      }
    ]
    {
      "statusId": 9,
      "status": "Queued"
    }
    [
      {
        "modelId": "edb46abf-0000-41ab-beb2-a41a0fe1630f",
        "details": {
          "statusId": 9,
          "status": "Queued",
          "exampleCount": 0
        }
      },
      {
        "modelId": "a5030be2-616c-4648-bf2f-380fa9417d37",
        "details": {
          "statusId": 9,
          "status": "Queued",
          "exampleCount": 0
        }
      },
      {
        "modelId": "3f2b1f31-a3c3-4fbd-8182-e9d9dbc120b9",
        "details": {
          "statusId": 9,
          "status": "Queued",
          "exampleCount": 0
        }
      },
      {
        "modelId": "e4b6704b-1636-474c-9459-fe9ccbeba51c",
        "details": {
          "statusId": 9,
          "status": "Queued",
          "exampleCount": 0
        }
      },
      {
        "modelId": "031d3777-2a00-4a7a-9323-9a3280a30000",
        "details": {
          "statusId": 9,
          "status": "Queued",
          "exampleCount": 0
        }
      },
      {
        "modelId": "9250e7a1-06eb-4413-9432-ae132ed32583",
        "details": {
          "statusId": 3,
          "status": "InProgress",
          "exampleCount": 0,
          "progressSubstatus": "CollectingData"
        }
      }
    ]
    

Czyszczenie zasobów

Po zakończeniu pracy z tym przewodnikiem Szybki start usuń folder projektu z systemu plików.

Następne kroki

Najlepsze rozwiązania dotyczące aplikacji

| Dokumentacja referencyjna — przykład

Wymagania wstępne

Plik JSON z przykładowymi wypowiedziami

Przykładowe wypowiedzi są zgodne z określonym formatem.

Pole text zawiera tekst przykładowej wypowiedzi. Pole intentName musi odpowiadać nazwie istniejącej wypowiedzi w aplikacji LUIS. Pole entityLabels jest wymagane. Jeśli nie chcesz dodawać etykiet do żadnych jednostek, podaj pustą tablicę.

Jeśli tablica entityLabels nie jest pusta, elementy startCharIndex i endCharIndex muszą oznaczać jednostkę określoną w polu entityName. Jest to indeks zaczynający się od zera. Jeśli zaczynasz lub kończysz etykietę w miejscu w tekście, wywołanie interfejsu API w celu dodania wypowiedzi zakończy się niepowodzeniem.

[
  {
    "text": "order a pizza",
    "intentName": "ModifyOrder",
    "entityLabels": [
      {
        "entityName": "Order",
        "startCharIndex": 6,
        "endCharIndex": 12
      }
    ]
  },
  {
    "text": "order a large pepperoni pizza",
    "intentName": "ModifyOrder",
    "entityLabels": [
      {
        "entityName": "Order",
        "startCharIndex": 6,
        "endCharIndex": 28
      },
      {
        "entityName": "FullPizzaWithModifiers",
        "startCharIndex": 6,
        "endCharIndex": 28
      },
      {
        "entityName": "PizzaType",
        "startCharIndex": 14,
        "endCharIndex": 28
      },
      {
        "entityName": "Size",
        "startCharIndex": 8,
        "endCharIndex": 12
      }
    ]
  },
  {
    "text": "I want two large pepperoni pizzas on thin crust",
    "intentName": "ModifyOrder",
    "entityLabels": [
      {
        "entityName": "Order",
        "startCharIndex": 7,
        "endCharIndex": 46
      },
      {
        "entityName": "FullPizzaWithModifiers",
        "startCharIndex": 7,
        "endCharIndex": 46
      },
      {
        "entityName": "PizzaType",
        "startCharIndex": 17,
        "endCharIndex": 32
      },
      {
        "entityName": "Size",
        "startCharIndex": 11,
        "endCharIndex": 15
      },
      {
        "entityName": "Quantity",
        "startCharIndex": 7,
        "endCharIndex": 9
      },
      {
        "entityName": "Crust",
        "startCharIndex": 37,
        "endCharIndex": 46
      }
    ]
  }
]

Tworzenie aplikacji pizza

Utwórz aplikację pizzy.

  1. Wybierz pizza-app-for-luis-v6.json , aby wyświetlić stronę usługi GitHub dla pizza-app-for-luis.json pliku.
  2. Kliknij prawym przyciskiem myszy lub naciśnij przycisk Raw (Nieprzetworzone ) i wybierz polecenie Save link ( Zapisz link), aby zapisać pizza-app-for-luis.json go na komputerze.
  3. Zaloguj się do portalu usługi LUIS.
  4. Wybierz pozycję Moje aplikacje.
  5. Na stronie Moje aplikacje wybierz pozycję + Nowa aplikacja do konwersacji.
  6. Wybierz pozycję Importuj jako plik JSON.
  7. W oknie dialogowym Importowanie nowej aplikacji wybierz przycisk Wybierz plik .
  8. pizza-app-for-luis.json Wybierz pobrany plik, a następnie wybierz pozycję Otwórz.
  9. W oknie dialogowym Importowanie nowej aplikacji Nazwa wprowadź nazwę aplikacji Pizza, a następnie wybierz przycisk Gotowe.

Aplikacja zostanie zaimportowana.

Jeśli zostanie wyświetlone okno dialogowe Jak utworzyć efektywną aplikację usługi LUIS, zamknij okno dialogowe.

Trenowanie i publikowanie aplikacji Pizza

Powinna zostać wyświetlona strona Intents (Intencje ) z listą intencji w aplikacji Pizza.

  1. W prawym górnym rogu witryny internetowej usługi LUIS wybierz przycisk Trenuj .

    Przycisk Train (Ucz)

  2. Trenowanie jest ukończone po wyłączeniu przycisku Train (Trenowanie).

Aby otrzymać przewidywanie usługi LUIS w czatbotze lub innych aplikacjach klienckich, należy opublikować aplikację w punkcie końcowym przewidywania.

  1. Wybierz pozycję Publikuj w prawym górnym rogu nawigacji.

    Zrzut ekranu przedstawiający przycisk publikowania w punkcie końcowym.

  2. Wybierz miejsce produkcyjne, a następnie wybierz pozycję Gotowe.

    Zrzut ekranu przedstawiający publikowanie w usłudze LUIS w punkcie końcowym.

  3. Wybierz pozycję Uzyskaj dostęp do adresów URL punktów końcowych w powiadomieniu, aby przejść do strony Zasoby platformy Azure. Adresy URL będą widoczne tylko wtedy, gdy masz zasób przewidywania skojarzony z aplikacją. Możesz również znaleźć stronę Zasoby platformy Azure, klikając pozycję Zarządzaj.

    Zrzut ekranu przedstawiający komunikat pokazujący, że aplikacja została opublikowana.

Dodawanie zasobu tworzenia do aplikacji Pizza

  1. Wybierz pozycję ZARZĄDZAJ.
  2. Wybierz pozycję Azure Resources (Zasoby platformy Azure).
  3. Wybierz pozycję Zasób tworzenia.
  4. Wybierz pozycję Zmień zasób tworzenia.

Jeśli masz zasób tworzenia, wprowadź nazwę dzierżawy, nazwę subskrypcji i nazwę zasobu usługi LUIS zasobu tworzenia.

Jeśli nie masz zasobu tworzenia:

  1. Wybierz pozycję Utwórz nowy zasób.
  2. Wprowadź nazwę dzierżawy, nazwę zasobu, nazwę subskrypcji i nazwę grupy zasobów platformy Azure.

Aplikacja Pizza jest teraz gotowa do użycia.

Rejestrowanie wartości dostępu dla aplikacji Pizza

Aby korzystać z nowej aplikacji Pizza, musisz mieć identyfikator aplikacji, klucz tworzenia i punkt końcowy tworzenia aplikacji Pizza. Aby uzyskać przewidywania, potrzebujesz oddzielnego punktu końcowego przewidywania i klucza przewidywania.

Aby znaleźć następujące wartości:

  1. Na stronie Intents (Intencje) wybierz pozycję MANAGE (ZARZĄDZAJ).
  2. Na stronie Ustawienia aplikacji zapisz identyfikator aplikacji.
  3. Wybierz pozycję Azure Resources (Zasoby platformy Azure).
  4. Wybierz pozycję Zasób tworzenia.
  5. Na kartach Zasoby tworzenia i zasoby przewidywania zapisz klucz podstawowy. Ta wartość jest kluczem tworzenia.
  6. Zarejestruj adres URL punktu końcowego. Ta wartość to punkt końcowy tworzenia.

Programowe zmienianie modelu

  1. Utwórz nowy plik o nazwie predict.go. Dodaj następujący kod:

    //
    // This quickstart shows how to add utterances to a LUIS model using the REST APIs.
    //
    
    // dependencies
    package main
    import (
        "fmt"
        "net/http"
        "io/ioutil"
        "log"
        "strings"
    )
    
    // main function
    func main() {
    
        //////////
        // Values to modify.
    
        // YOUR-APP-ID: The App ID GUID found on the www.luis.ai Application Settings page.
        var appID = "PASTE_YOUR_LUIS_APP_ID_HERE"
    
        // YOUR-AUTHORING-KEY: Your LUIS authoring key, 32 character value.
        var authoringKey = "PASTE_YOUR_LUIS_AUTHORING_SUBSCRIPTION_KEY_HERE"
    
        //  YOUR-AUTHORING-ENDPOINT: Replace this with your authoring key endpoint.
        // For example, "https://your-resource-name.cognitiveservices.azure.com/"
        var endpoint = "PASTE_YOUR_LUIS_AUTHORING_ENDPOINT_HERE"
    
        // NOTE: Replace this your version number. The Pizza app uses a version number of "0.1".
        var version = "0.1"
        //////////
    
        var exampleUtterances = "[{'text': 'order a pizza', 'intentName': 'ModifyOrder', 'entityLabels': [{'entityName': 'Order', 'startCharIndex': 6, 'endCharIndex': 12}]}, {'text': 'order a large pepperoni pizza', 'intentName': 'ModifyOrder', 'entityLabels': [{'entityName': 'Order', 'startCharIndex': 6, 'endCharIndex': 28}, {'entityName': 'FullPizzaWithModifiers', 'startCharIndex': 6, 'endCharIndex': 28}, {'entityName': 'PizzaType', 'startCharIndex': 14, 'endCharIndex': 28}, {'entityName': 'Size', 'startCharIndex': 8, 'endCharIndex': 12}]}, {'text': 'I want two large pepperoni pizzas on thin crust', 'intentName': 'ModifyOrder', 'entityLabels': [{'entityName': 'Order', 'startCharIndex': 7, 'endCharIndex': 46}, {'entityName': 'FullPizzaWithModifiers', 'startCharIndex': 7, 'endCharIndex': 46}, {'entityName': 'PizzaType', 'startCharIndex': 17, 'endCharIndex': 32}, {'entityName': 'Size', 'startCharIndex': 11, 'endCharIndex': 15}, {'entityName': 'Quantity', 'startCharIndex': 7, 'endCharIndex': 9}, {'entityName': 'Crust', 'startCharIndex': 37, 'endCharIndex': 46}]}]"
    
        fmt.Println("add example utterances requested")
        addUtterance(authoringKey, appID, version, exampleUtterances, endpoint)
    
        fmt.Println("training selected")
        requestTraining(authoringKey, appID, version, endpoint)
    
        fmt.Println("training status selected")
        getTrainingStatus(authoringKey, appID, version, endpoint)
    }
    
    // Send the list of utterances to the model.
    func addUtterance(authoringKey string, appID string,  version string, labeledExampleUtterances string, endpoint string){
    
        var authoringUrl = fmt.Sprintf("%sluis/authoring/v3.0-preview/apps/%s/versions/%s/examples", endpoint, appID, version)
    
        httpRequest("POST", authoringUrl, authoringKey, labeledExampleUtterances)
    }
    
    // Request training.
    func requestTraining(authoringKey string, appID string,  version string, endpoint string){
    
        trainApp("POST", authoringKey, appID, version, endpoint)
    }
    
    
    func trainApp(httpVerb string, authoringKey string, appID string,  version string, endpoint string){
    
        var authoringUrl = fmt.Sprintf("%sluis/authoring/v3.0-preview/apps/%s/versions/%s/train", endpoint, appID, version)
    
        httpRequest(httpVerb,authoringUrl, authoringKey, "")
    }
    
    
    func getTrainingStatus(authoringKey string, appID string, version string, endpoint string){
    
        trainApp("GET", authoringKey, appID, version, endpoint)
    }
    
    // generic HTTP request
    // includes setting header with authoring key
    func httpRequest(httpVerb string, url string, authoringKey string, body string){
    
        client := &http.Client{}
    
        request, err := http.NewRequest(httpVerb, url, strings.NewReader(body))
        request.Header.Add("Ocp-Apim-Subscription-Key", authoringKey)
    
        fmt.Println("body")
        fmt.Println(body)
    
        response, err := client.Do(request)
    
        if err != nil {
            log.Fatal(err)
        } else {
            defer response.Body.Close()
    
            contents, err := ioutil.ReadAll(response.Body)
    
            if err != nil {
                log.Fatal(err)
            }
    
            fmt.Println("   ", response.StatusCode)
            fmt.Println(string(contents))
        }
    }
    
  2. Zastąp YOUR- wartości zaczynające się od własnych wartości.

    Informacja Purpose
    YOUR-APP-ID Identyfikator aplikacji usługi LUIS.
    YOUR-AUTHORING-KEY Klucz tworzenia 32 znaków.
    YOUR-AUTHORING-ENDPOINT Punkt końcowy adresu URL tworzenia. Na przykład https://replace-with-your-resource-name.api.cognitive.microsoft.com/. Nazwa zasobu została ustawiona podczas tworzenia zasobu.

    Przypisane klucze i zasoby są widoczne w portalu usługi LUIS w sekcji Zarządzanie na stronie zasobów platformy Azure. Identyfikator aplikacji jest dostępny w tej samej sekcji Zarządzanie na stronie Ustawienia aplikacji.

    Ważne

    Pamiętaj, aby usunąć klucz z kodu po zakończeniu i nigdy nie publikować go publicznie. W przypadku środowiska produkcyjnego użyj bezpiecznego sposobu przechowywania i uzyskiwania dostępu do poświadczeń, takich jak usługa Azure Key Vault. Aby uzyskać więcej informacji, zobacz artykuł Dotyczący zabezpieczeń usług Azure AI.

  3. W wierszu polecenia w tym samym katalogu, w którym został utworzony plik, wprowadź następujące polecenie, aby skompilować plik Języka Go:

    go build model.go
    
  4. Uruchom aplikację języka Go z wiersza polecenia, wprowadzając następujący tekst w wierszu polecenia:

    go run model.go
    
  5. Przejrzyj odpowiedź na tworzenie:

    add example utterances requested
    body
    [{'text': 'order a pizza', 'intentName': 'ModifyOrder', 'entityLabels': [{'entityName': 'Order', 'startCharIndex': 6, 'endCharIndex': 12}]}, {'text': 'order a large pepperoni pizza', 'intentName': 'ModifyOrder', 'entityLabels': [{'entityName': 'Order', 'startCharIndex': 6, 'endCharIndex': 28}, {'entityName': 'FullPizzaWithModifiers', 'startCharIndex': 6, 'endCharIndex': 28}, {'entityName': 'PizzaType', 'startCharIndex': 14, 'endCharIndex': 28}, {'entityName': 'Size', 'startCharIndex': 8, 'endCharIndex': 12}]}, {'text': 'I want two large pepperoni pizzas on thin crust', 'intentName': 'ModifyOrder', 'entityLabels': [{'entityName': 'Order', 'startCharIndex': 7, 'endCharIndex': 46}, {'entityName': 'FullPizzaWithModifiers', 'startCharIndex': 7, 'endCharIndex': 46}, {'entityName': 'PizzaType', 'startCharIndex': 17, 'endCharIndex': 32}, {'entityName': 'Size', 'startCharIndex': 11, 'endCharIndex': 15}, {'entityName': 'Quantity', 'startCharIndex': 7, 'endCharIndex': 9}, {'entityName': 'Crust', 'startCharIndex': 37, 'endCharIndex': 46}]}]
        201
    [{"value":{"ExampleId":1137150691,"UtteranceText":"order a pizza"},"hasError":false},{"value":{"ExampleId":1137150692,"UtteranceText":"order a large pepperoni pizza"},"hasError":false},{"value":{"ExampleId":1137150693,"UtteranceText":"i want two large pepperoni pizzas on thin crust"},"hasError":false}]
    training selected
    body
    
        202
    {"statusId":9,"status":"Queued"}
    training status selected
    body
    
        200
    [{"modelId":"edb46abf-0000-41ab-beb2-a41a0fe1630f","details":{"statusId":9,"status":"Queued","exampleCount":0}},{"modelId":"a5030be2-616c-4648-bf2f-380fa9417d37","details":{"statusId":9,"status":"Queued","exampleCount":0}},{"modelId":"3f2b1f31-a3c3-4fbd-8182-e9d9dbc120b9","details":{"statusId":9,"status":"Queued","exampleCount":0}},{"modelId":"e4b6704b-1636-474c-9459-fe9ccbeba51c","details":{"statusId":9,"status":"Queued","exampleCount":0}},{"modelId":"031d3777-2a00-4a7a-9323-9a3280a30000","details":{"statusId":9,"status":"Queued","exampleCount":0}},{"modelId":"9250e7a1-06eb-4413-9432-ae132ed32583","details":{"statusId":9,"status":"Queued","exampleCount":0}}]
    

    Oto dane wyjściowe sformatowane pod kątem czytelności:

    add example utterances requested
    body
    [
      {
        'text': 'order a pizza',
        'intentName': 'ModifyOrder',
        'entityLabels': [
          {
            'entityName': 'Order',
            'startCharIndex': 6,
            'endCharIndex': 12
          }
        ]
      },
      {
        'text': 'order a large pepperoni pizza',
        'intentName': 'ModifyOrder',
        'entityLabels': [
          {
            'entityName': 'Order',
            'startCharIndex': 6,
            'endCharIndex': 28
          },
          {
            'entityName': 'FullPizzaWithModifiers',
            'startCharIndex': 6,
            'endCharIndex': 28
          },
          {
            'entityName': 'PizzaType',
            'startCharIndex': 14,
            'endCharIndex': 28
          },
          {
            'entityName': 'Size',
            'startCharIndex': 8,
            'endCharIndex': 12
          }
        ]
      },
      {
        'text': 'I want two large pepperoni pizzas on thin crust',
        'intentName': 'ModifyOrder',
        'entityLabels': [
          {
            'entityName': 'Order',
            'startCharIndex': 7,
            'endCharIndex': 46
          },
          {
            'entityName': 'FullPizzaWithModifiers',
            'startCharIndex': 7,
            'endCharIndex': 46
          },
          {
            'entityName': 'PizzaType',
            'startCharIndex': 17,
            'endCharIndex': 32
          },
          {
            'entityName': 'Size',
            'startCharIndex': 11,
            'endCharIndex': 15
          },
          {
            'entityName': 'Quantity',
            'startCharIndex': 7,
            'endCharIndex': 9
          },
          {
            'entityName': 'Crust',
            'startCharIndex': 37,
            'endCharIndex': 46
          }
        ]
      }
    ]
    
        201
    [
      {
        "value": {
          "ExampleId": 1137150691,
          "UtteranceText": "order a pizza"
        },
        "hasError": false
      },
      {
        "value": {
          "ExampleId": 1137150692,
          "UtteranceText": "order a large pepperoni pizza"
        },
        "hasError": false
      },
      {
        "value": {
          "ExampleId": 1137150693,
          "UtteranceText": "i want two large pepperoni pizzas on thin crust"
        },
        "hasError": false
      }
    ]
    training selected
    body
    
        202
    {
      "statusId": 9,
      "status": "Queued"
    }
    training status selected
    body
    
        200
    [
      {
        "modelId": "edb46abf-0000-41ab-beb2-a41a0fe1630f",
        "details": {
          "statusId": 9,
          "status": "Queued",
          "exampleCount": 0
        }
      },
      {
        "modelId": "a5030be2-616c-4648-bf2f-380fa9417d37",
        "details": {
          "statusId": 9,
          "status": "Queued",
          "exampleCount": 0
        }
      },
      {
        "modelId": "3f2b1f31-a3c3-4fbd-8182-e9d9dbc120b9",
        "details": {
          "statusId": 9,
          "status": "Queued",
          "exampleCount": 0
        }
      },
      {
        "modelId": "e4b6704b-1636-474c-9459-fe9ccbeba51c",
        "details": {
          "statusId": 9,
          "status": "Queued",
          "exampleCount": 0
        }
      },
      {
        "modelId": "031d3777-2a00-4a7a-9323-9a3280a30000",
        "details": {
          "statusId": 9,
          "status": "Queued",
          "exampleCount": 0
        }
      },
      {
        "modelId": "9250e7a1-06eb-4413-9432-ae132ed32583",
        "details": {
          "statusId": 9,
          "status": "Queued",
          "exampleCount": 0
        }
      }
    ]
    

Czyszczenie zasobów

Po zakończeniu pracy z tym przewodnikiem Szybki start usuń plik z systemu plików.

Następne kroki

Najlepsze rozwiązania dotyczące aplikacji

| Dokumentacja referencyjna — przykład

Wymagania wstępne

Plik JSON z przykładowymi wypowiedziami

Przykładowe wypowiedzi są zgodne z określonym formatem.

Pole text zawiera tekst przykładowej wypowiedzi. Pole intentName musi odpowiadać nazwie istniejącej wypowiedzi w aplikacji LUIS. Pole entityLabels jest wymagane. Jeśli nie chcesz dodawać etykiet do żadnych jednostek, podaj pustą tablicę.

Jeśli tablica entityLabels nie jest pusta, elementy startCharIndex i endCharIndex muszą oznaczać jednostkę określoną w polu entityName. Jest to indeks zaczynający się od zera. Jeśli zaczynasz lub kończysz etykietę w miejscu w tekście, wywołanie interfejsu API w celu dodania wypowiedzi zakończy się niepowodzeniem.

[
  {
    "text": "order a pizza",
    "intentName": "ModifyOrder",
    "entityLabels": [
      {
        "entityName": "Order",
        "startCharIndex": 6,
        "endCharIndex": 12
      }
    ]
  },
  {
    "text": "order a large pepperoni pizza",
    "intentName": "ModifyOrder",
    "entityLabels": [
      {
        "entityName": "Order",
        "startCharIndex": 6,
        "endCharIndex": 28
      },
      {
        "entityName": "FullPizzaWithModifiers",
        "startCharIndex": 6,
        "endCharIndex": 28
      },
      {
        "entityName": "PizzaType",
        "startCharIndex": 14,
        "endCharIndex": 28
      },
      {
        "entityName": "Size",
        "startCharIndex": 8,
        "endCharIndex": 12
      }
    ]
  },
  {
    "text": "I want two large pepperoni pizzas on thin crust",
    "intentName": "ModifyOrder",
    "entityLabels": [
      {
        "entityName": "Order",
        "startCharIndex": 7,
        "endCharIndex": 46
      },
      {
        "entityName": "FullPizzaWithModifiers",
        "startCharIndex": 7,
        "endCharIndex": 46
      },
      {
        "entityName": "PizzaType",
        "startCharIndex": 17,
        "endCharIndex": 32
      },
      {
        "entityName": "Size",
        "startCharIndex": 11,
        "endCharIndex": 15
      },
      {
        "entityName": "Quantity",
        "startCharIndex": 7,
        "endCharIndex": 9
      },
      {
        "entityName": "Crust",
        "startCharIndex": 37,
        "endCharIndex": 46
      }
    ]
  }
]

Tworzenie projektu Node.js

  1. Utwórz nowy folder do przechowywania projektu Node.js, takiego jak node-model-with-rest.

  2. Otwórz nowy wiersz polecenia, przejdź do utworzonego folderu i wykonaj następujące polecenie:

    npm init
    

    Naciśnij klawisz Enter w każdym wierszu polecenia, aby zaakceptować ustawienia domyślne.

  3. Zainstaluj moduł request-promise, wprowadzając następujące polecenie:

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

Programowe zmienianie modelu

  1. Utwórz nowy plik o nazwie model.js. Dodaj następujący kod:

    //
    // This quickstart shows how to add utterances to a LUIS model using the REST APIs.
    //
    
    var request = require('request-promise');
    
    //////////
    // Values to modify.
    
    // YOUR-APP-ID: The App ID GUID found on the www.luis.ai Application Settings page.
    const LUIS_appId = "PASTE_YOUR_LUIS_APP_ID_HERE";
    
    // YOUR-AUTHORING-KEY: Your LUIS authoring key, 32 character value.
    const LUIS_authoringKey = "PASTE_YOUR_LUIS_AUTHORING_SUBSCRIPTION_KEY_HERE";
    
    // YOUR-AUTHORING-ENDPOINT: Replace this with your authoring key endpoint.
    // For example, "https://your-resource-name.cognitiveservices.azure.com/"
    const LUIS_endpoint = "PASTE_YOUR_LUIS_AUTHORING_ENDPOINT_HERE";
    
    // NOTE: Replace this your version number. The Pizza app uses a version number of "0.1".
    const LUIS_versionId = "0.1";
    //////////
    
    const addUtterancesURI = `${LUIS_endpoint}luis/authoring/v3.0-preview/apps/${LUIS_appId}/versions/${LUIS_versionId}/examples`;
    const addTrainURI = `${LUIS_endpoint}luis/authoring/v3.0-preview/apps/${LUIS_appId}/versions/${LUIS_versionId}/train`;
    
    const utterances = [
        {
            'text': 'order a pizza',
            'intentName': 'ModifyOrder',
            'entityLabels': [
                {
                    'entityName': 'Order',
                    'startCharIndex': 6,
                    'endCharIndex': 12
                }
            ]
        },
        {
            'text': 'order a large pepperoni pizza',
            'intentName': 'ModifyOrder',
            'entityLabels': [
                {
                    'entityName': 'Order',
                    'startCharIndex': 6,
                    'endCharIndex': 28
                },
                {
                    'entityName': 'FullPizzaWithModifiers',
                    'startCharIndex': 6,
                    'endCharIndex': 28
                },
                {
                    'entityName': 'PizzaType',
                    'startCharIndex': 14,
                    'endCharIndex': 28
                },
                {
                    'entityName': 'Size',
                    'startCharIndex': 8,
                    'endCharIndex': 12
                }
            ]
        },
        {
            'text': 'I want two large pepperoni pizzas on thin crust',
            'intentName': 'ModifyOrder',
            'entityLabels': [
                {
                    'entityName': 'Order',
                    'startCharIndex': 7,
                    'endCharIndex': 46
                },
                {
                    'entityName': 'FullPizzaWithModifiers',
                    'startCharIndex': 7,
                    'endCharIndex': 46
                },
                {
                    'entityName': 'PizzaType',
                    'startCharIndex': 17,
                    'endCharIndex': 32
                },
                {
                    'entityName': 'Size',
                    'startCharIndex': 11,
                    'endCharIndex': 15
                },
                {
                    'entityName': 'Quantity',
                    'startCharIndex': 7,
                    'endCharIndex': 9
                },
                {
                    'entityName': 'Crust',
                    'startCharIndex': 37,
                    'endCharIndex': 46
                }
            ]
        }
    ];
    
    // Main function.
    const main = async() =>{
    
        await addUtterances(utterances);
        await train("POST");
        await train("GET");
    
    }
    
    // Adds the utterances to the model.
    const addUtterances = async (utterances) => {
    
        const options = {
            uri: addUtterancesURI,
            method: 'POST',
            headers: {
                'Ocp-Apim-Subscription-Key': LUIS_authoringKey
            },
            json: true,
            body: utterances
        };
    
        const response = await request(options)
        console.log("addUtterance:\n" + JSON.stringify(response, null, 2));
    }
    
    // With verb === "POST", sends a training request.
    // With verb === "GET", obtains the training status.
    const train = async (verb) => {
    
        const options = {
            uri: addTrainURI,
            method: verb,
            headers: {
                'Ocp-Apim-Subscription-Key': LUIS_authoringKey
            },
            json: true,
            body: null // The body can be empty for a training request
        };
    
        const response = await request(options)
        console.log("train " + verb + ":\n" + JSON.stringify(response, null, 2));
    }
    
    // MAIN
    main().then(() => console.log("done")).catch((err)=> console.log(err));
    
  2. Zastąp YOUR- wartości zaczynające się od własnych wartości.

    Informacja Purpose
    YOUR-APP-ID Identyfikator aplikacji usługi LUIS.
    YOUR-AUTHORING-KEY Klucz tworzenia 32 znaków.
    YOUR-AUTHORING-ENDPOINT Punkt końcowy adresu URL tworzenia. Na przykład https://replace-with-your-resource-name.api.cognitive.microsoft.com/. Nazwa zasobu została ustawiona podczas tworzenia zasobu.

    Przypisane klucze i zasoby są widoczne w portalu usługi LUIS w sekcji Zarządzanie na stronie zasobów platformy Azure. Identyfikator aplikacji jest dostępny w tej samej sekcji Zarządzanie na stronie Ustawienia aplikacji.

    Ważne

    Pamiętaj, aby usunąć klucz z kodu po zakończeniu i nigdy nie publikować go publicznie. W przypadku środowiska produkcyjnego użyj bezpiecznego sposobu przechowywania i uzyskiwania dostępu do poświadczeń, takich jak usługa Azure Key Vault. Aby uzyskać więcej informacji, zobacz artykuł Dotyczący zabezpieczeń usług Azure AI.

  3. W wierszu polecenia wprowadź następujące polecenie, aby uruchomić projekt:

    node model.js
    
  4. Przejrzyj odpowiedź na tworzenie:

    addUtterance:
    [
      {
        "value": {
          "ExampleId": 1137150691,
          "UtteranceText": "order a pizza"
        },
        "hasError": false
      },
      {
        "value": {
          "ExampleId": 1137150692,
          "UtteranceText": "order a large pepperoni pizza"
        },
        "hasError": false
      },
      {
        "value": {
          "ExampleId": 1137150693,
          "UtteranceText": "i want two large pepperoni pizzas on thin crust"
        },
        "hasError": false
      }
    ]
    train POST:
    {
      "statusId": 9,
      "status": "Queued"
    }
    train GET:
    [
      {
        "modelId": "edb46abf-0000-41ab-beb2-a41a0fe1630f",
        "details": {
          "statusId": 9,
          "status": "Queued",
          "exampleCount": 0
        }
      },
      {
        "modelId": "a5030be2-616c-4648-bf2f-380fa9417d37",
        "details": {
          "statusId": 9,
          "status": "Queued",
          "exampleCount": 0
        }
      },
      {
        "modelId": "3f2b1f31-a3c3-4fbd-8182-e9d9dbc120b9",
        "details": {
          "statusId": 9,
          "status": "Queued",
          "exampleCount": 0
        }
      },
      {
        "modelId": "e4b6704b-1636-474c-9459-fe9ccbeba51c",
        "details": {
          "statusId": 9,
          "status": "Queued",
          "exampleCount": 0
        }
      },
      {
        "modelId": "031d3777-2a00-4a7a-9323-9a3280a30000",
        "details": {
          "statusId": 9,
          "status": "Queued",
          "exampleCount": 0
        }
      },
      {
        "modelId": "9250e7a1-06eb-4413-9432-ae132ed32583",
        "details": {
          "statusId": 9,
          "status": "Queued",
          "exampleCount": 0
        }
      }
    ]
    done
    

Czyszczenie zasobów

Po zakończeniu pracy z tym przewodnikiem Szybki start usuń folder projektu z systemu plików.

Następne kroki

Najlepsze rozwiązania dotyczące aplikacji

| Dokumentacja referencyjna — przykład

Wymagania wstępne

Plik JSON z przykładowymi wypowiedziami

Przykładowe wypowiedzi są zgodne z określonym formatem.

Pole text zawiera tekst przykładowej wypowiedzi. Pole intentName musi odpowiadać nazwie istniejącej wypowiedzi w aplikacji LUIS. Pole entityLabels jest wymagane. Jeśli nie chcesz dodawać etykiet do żadnych jednostek, podaj pustą tablicę.

Jeśli tablica entityLabels nie jest pusta, elementy startCharIndex i endCharIndex muszą oznaczać jednostkę określoną w polu entityName. Jest to indeks zaczynający się od zera. Jeśli zaczynasz lub kończysz etykietę w miejscu w tekście, wywołanie interfejsu API w celu dodania wypowiedzi zakończy się niepowodzeniem.

[
  {
    "text": "order a pizza",
    "intentName": "ModifyOrder",
    "entityLabels": [
      {
        "entityName": "Order",
        "startCharIndex": 6,
        "endCharIndex": 12
      }
    ]
  },
  {
    "text": "order a large pepperoni pizza",
    "intentName": "ModifyOrder",
    "entityLabels": [
      {
        "entityName": "Order",
        "startCharIndex": 6,
        "endCharIndex": 28
      },
      {
        "entityName": "FullPizzaWithModifiers",
        "startCharIndex": 6,
        "endCharIndex": 28
      },
      {
        "entityName": "PizzaType",
        "startCharIndex": 14,
        "endCharIndex": 28
      },
      {
        "entityName": "Size",
        "startCharIndex": 8,
        "endCharIndex": 12
      }
    ]
  },
  {
    "text": "I want two large pepperoni pizzas on thin crust",
    "intentName": "ModifyOrder",
    "entityLabels": [
      {
        "entityName": "Order",
        "startCharIndex": 7,
        "endCharIndex": 46
      },
      {
        "entityName": "FullPizzaWithModifiers",
        "startCharIndex": 7,
        "endCharIndex": 46
      },
      {
        "entityName": "PizzaType",
        "startCharIndex": 17,
        "endCharIndex": 32
      },
      {
        "entityName": "Size",
        "startCharIndex": 11,
        "endCharIndex": 15
      },
      {
        "entityName": "Quantity",
        "startCharIndex": 7,
        "endCharIndex": 9
      },
      {
        "entityName": "Crust",
        "startCharIndex": 37,
        "endCharIndex": 46
      }
    ]
  }
]

Tworzenie aplikacji pizza

Utwórz aplikację pizzy.

  1. Wybierz pizza-app-for-luis-v6.json , aby wyświetlić stronę usługi GitHub dla pizza-app-for-luis.json pliku.
  2. Kliknij prawym przyciskiem myszy lub naciśnij przycisk Raw (Nieprzetworzone ) i wybierz polecenie Save link ( Zapisz link), aby zapisać pizza-app-for-luis.json go na komputerze.
  3. Zaloguj się do portalu usługi LUIS.
  4. Wybierz pozycję Moje aplikacje.
  5. Na stronie Moje aplikacje wybierz pozycję + Nowa aplikacja do konwersacji.
  6. Wybierz pozycję Importuj jako plik JSON.
  7. W oknie dialogowym Importowanie nowej aplikacji wybierz przycisk Wybierz plik .
  8. pizza-app-for-luis.json Wybierz pobrany plik, a następnie wybierz pozycję Otwórz.
  9. W oknie dialogowym Importowanie nowej aplikacji Nazwa wprowadź nazwę aplikacji Pizza, a następnie wybierz przycisk Gotowe.

Aplikacja zostanie zaimportowana.

Jeśli zostanie wyświetlone okno dialogowe Jak utworzyć efektywną aplikację usługi LUIS, zamknij okno dialogowe.

Trenowanie i publikowanie aplikacji Pizza

Powinna zostać wyświetlona strona Intents (Intencje ) z listą intencji w aplikacji Pizza.

  1. W prawym górnym rogu witryny internetowej usługi LUIS wybierz przycisk Trenuj .

    Przycisk Train (Ucz)

  2. Trenowanie jest ukończone po wyłączeniu przycisku Train (Trenowanie).

Aby otrzymać przewidywanie usługi LUIS w czatbotze lub innych aplikacjach klienckich, należy opublikować aplikację w punkcie końcowym przewidywania.

  1. Wybierz pozycję Publikuj w prawym górnym rogu nawigacji.

    Zrzut ekranu przedstawiający przycisk publikowania w punkcie końcowym.

  2. Wybierz miejsce produkcyjne, a następnie wybierz pozycję Gotowe.

    Zrzut ekranu przedstawiający publikowanie w usłudze LUIS w punkcie końcowym.

  3. Wybierz pozycję Uzyskaj dostęp do adresów URL punktów końcowych w powiadomieniu, aby przejść do strony Zasoby platformy Azure. Adresy URL będą widoczne tylko wtedy, gdy masz zasób przewidywania skojarzony z aplikacją. Możesz również znaleźć stronę Zasoby platformy Azure, klikając pozycję Zarządzaj.

    Zrzut ekranu przedstawiający komunikat pokazujący, że aplikacja została opublikowana.

Dodawanie zasobu tworzenia do aplikacji Pizza

  1. Wybierz pozycję ZARZĄDZAJ.
  2. Wybierz pozycję Azure Resources (Zasoby platformy Azure).
  3. Wybierz pozycję Zasób tworzenia.
  4. Wybierz pozycję Zmień zasób tworzenia.

Jeśli masz zasób tworzenia, wprowadź nazwę dzierżawy, nazwę subskrypcji i nazwę zasobu usługi LUIS zasobu tworzenia.

Jeśli nie masz zasobu tworzenia:

  1. Wybierz pozycję Utwórz nowy zasób.
  2. Wprowadź nazwę dzierżawy, nazwę zasobu, nazwę subskrypcji i nazwę grupy zasobów platformy Azure.

Aplikacja Pizza jest teraz gotowa do użycia.

Rejestrowanie wartości dostępu dla aplikacji Pizza

Aby korzystać z nowej aplikacji Pizza, musisz mieć identyfikator aplikacji, klucz tworzenia i punkt końcowy tworzenia aplikacji Pizza. Aby uzyskać przewidywania, potrzebujesz oddzielnego punktu końcowego przewidywania i klucza przewidywania.

Aby znaleźć następujące wartości:

  1. Na stronie Intents (Intencje) wybierz pozycję MANAGE (ZARZĄDZAJ).
  2. Na stronie Ustawienia aplikacji zapisz identyfikator aplikacji.
  3. Wybierz pozycję Azure Resources (Zasoby platformy Azure).
  4. Wybierz pozycję Zasób tworzenia.
  5. Na kartach Zasoby tworzenia i zasoby przewidywania zapisz klucz podstawowy. Ta wartość jest kluczem tworzenia.
  6. Zarejestruj adres URL punktu końcowego. Ta wartość to punkt końcowy tworzenia.

Programowe zmienianie modelu

  1. Utwórz nowy plik o nazwie model.py. Dodaj następujący kod:

    ########### Python 3.6 #############
    
    #
    # This quickstart shows how to add utterances to a LUIS model using the REST APIs.
    #
    
    import requests
    
    try:
    
        ##########
        # Values to modify.
    
        # YOUR-APP-ID: The App ID GUID found on the www.luis.ai Application Settings page.
        appId = "PASTE_YOUR_LUIS_APP_ID_HERE"
    
        # YOUR-AUTHORING-KEY: Your LUIS authoring key, 32 character value.
        authoring_key = "PASTE_YOUR_LUIS_AUTHORING_SUBSCRIPTION_KEY_HERE"
    
        # YOUR-AUTHORING-ENDPOINT: Replace this with your authoring key endpoint.
        # For example, "https://your-resource-name.cognitiveservices.azure.com/"
        authoring_endpoint = "PASTE_YOUR_LUIS_AUTHORING_ENDPOINT_HERE"
    
        # The version number of your LUIS app
        app_version = "0.1"
        ##########
    
        # The headers to use in this REST call.
        headers = {'Ocp-Apim-Subscription-Key': authoring_key}
    
        # The URL parameters to use in this REST call.
        params ={
            #'timezoneOffset': '0',
            #'verbose': 'true',
            #'show-all-intents': 'true',
            #'spellCheck': 'false',
            #'staging': 'false'
        }
    
        # List of example utterances to send to the LUIS app.
        data = """[
        {
            'text': 'order a pizza',
            'intentName': 'ModifyOrder',
            'entityLabels': [
                {
                    'entityName': 'Order',
                    'startCharIndex': 6,
                    'endCharIndex': 12
                }
            ]
        },
        {
            'text': 'order a large pepperoni pizza',
            'intentName': 'ModifyOrder',
            'entityLabels': [
                {
                    'entityName': 'Order',
                    'startCharIndex': 6,
                    'endCharIndex': 28
                },
                {
                    'entityName': 'FullPizzaWithModifiers',
                    'startCharIndex': 6,
                    'endCharIndex': 28
                },
                {
                    'entityName': 'PizzaType',
                    'startCharIndex': 14,
                    'endCharIndex': 28
                },
                {
                    'entityName': 'Size',
                    'startCharIndex': 8,
                    'endCharIndex': 12
                }
            ]
        },
        {
            'text': 'I want two large pepperoni pizzas on thin crust',
            'intentName': 'ModifyOrder',
            'entityLabels': [
                {
                    'entityName': 'Order',
                    'startCharIndex': 7,
                    'endCharIndex': 46
                },
                {
                    'entityName': 'FullPizzaWithModifiers',
                    'startCharIndex': 7,
                    'endCharIndex': 46
                },
                {
                    'entityName': 'PizzaType',
                    'startCharIndex': 17,
                    'endCharIndex': 32
                },
                {
                    'entityName': 'Size',
                    'startCharIndex': 11,
                    'endCharIndex': 15
                },
                {
                    'entityName': 'Quantity',
                    'startCharIndex': 7,
                    'endCharIndex': 9
                },
                {
                    'entityName': 'Crust',
                    'startCharIndex': 37,
                    'endCharIndex': 46
                }
            ]
        }
    ]
    """
    
    
        # Make the REST call to POST the list of example utterances.
        response = requests.post(f'{authoring_endpoint}luis/authoring/v3.0-preview/apps/{appId}/versions/{app_version}/examples',
            headers=headers, params=params, data=data)
    
        # Display the results on the console.
        print('Add the list of utterances:')
        print(response.json())
    
    
        # Make the REST call to initiate a training session.
        response = requests.post(f'{authoring_endpoint}luis/authoring/v3.0-preview/apps/{appId}/versions/{app_version}/train',
            headers=headers, params=params, data=None)
    
        # Display the results on the console.
        print('Request training:')
        print(response.json())
    
    
        # Make the REST call to request the status of training.
        response = requests.get(f'{authoring_endpoint}luis/authoring/v3.0-preview/apps/{appId}/versions/{app_version}/train',
            headers=headers, params=params, data=None)
    
        # Display the results on the console.
        print('Request training status:')
        print(response.json())
    
    
    except Exception as e:
        # Display the error string.
        print(f'{e}')
    
  2. Zastąp YOUR- wartości zaczynające się od własnych wartości.

    Informacja Purpose
    YOUR-APP-ID Identyfikator aplikacji usługi LUIS.
    YOUR-AUTHORING-KEY Klucz tworzenia 32 znaków.
    YOUR-AUTHORING-ENDPOINT Punkt końcowy adresu URL tworzenia. Na przykład https://replace-with-your-resource-name.api.cognitive.microsoft.com/. Nazwa zasobu została ustawiona podczas tworzenia zasobu.

    Przypisane klucze i zasoby są widoczne w portalu usługi LUIS w sekcji Zarządzanie na stronie zasobów platformy Azure. Identyfikator aplikacji jest dostępny w tej samej sekcji Zarządzanie na stronie Ustawienia aplikacji.

    Ważne

    Pamiętaj, aby usunąć klucz z kodu po zakończeniu i nigdy nie publikować go publicznie. W przypadku środowiska produkcyjnego użyj bezpiecznego sposobu przechowywania i uzyskiwania dostępu do poświadczeń, takich jak usługa Azure Key Vault. Aby uzyskać więcej informacji, zobacz artykuł Dotyczący zabezpieczeń usług Azure AI.

  3. W wierszu polecenia w tym samym katalogu, w którym został utworzony plik, wprowadź następujące polecenie, aby uruchomić plik:

    python model.py
    
  4. Przejrzyj odpowiedź na tworzenie:

    Add the list of utterances:
    [{'value': {'ExampleId': 1137150691, 'UtteranceText': 'order a pizza'}, 'hasError': False}, {'value': {'ExampleId': 1137150692, 'UtteranceText': 'order a large pepperoni pizza'}, 'hasError': False}, {'value': {'ExampleId': 1137150693, 'UtteranceText': 'i want two large pepperoni pizzas on thin crust'}, 'hasError': False}]
    Request training:
    {'statusId': 9, 'status': 'Queued'}
    Request training status:
    [{'modelId': 'edb46abf-0000-41ab-beb2-a41a0fe1630f', 'details': {'statusId': 3, 'status': 'InProgress', 'exampleCount': 0, 'progressSubstatus': 'CollectingData'}}, {'modelId': 'a5030be2-616c-4648-bf2f-380fa9417d37', 'details': {'statusId': 3, 'status': 'InProgress', 'exampleCount': 0, 'progressSubstatus': 'CollectingData'}}, {'modelId': '3f2b1f31-a3c3-4fbd-8182-e9d9dbc120b9', 'details': {'statusId': 3, 'status': 'InProgress', 'exampleCount': 0, 'progressSubstatus': 'CollectingData'}}, {'modelId': 'e4b6704b-1636-474c-9459-fe9ccbeba51c', 'details': {'statusId': 3, 'status': 'InProgress', 'exampleCount': 0, 'progressSubstatus': 'CollectingData'}}, {'modelId': '031d3777-2a00-4a7a-9323-9a3280a30000', 'details': {'statusId': 3, 'status': 'InProgress', 'exampleCount': 0, 'progressSubstatus': 'CollectingData'}}, {'modelId': '9250e7a1-06eb-4413-9432-ae132ed32583', 'details': {'statusId': 3, 'status': 'InProgress', 'exampleCount': 0, 'progressSubstatus': 'CollectingData'}}]
    

    Oto dane wyjściowe sformatowane pod kątem czytelności:

    Add the list of utterances:
    [
      {
        'value': {
          'ExampleId': 1137150691,
          'UtteranceText': 'order a pizza'
        },
        'hasError': False
      },
      {
        'value': {
          'ExampleId': 1137150692,
          'UtteranceText': 'order a large pepperoni pizza'
        },
        'hasError': False
      },
      {
        'value': {
          'ExampleId': 1137150693,
          'UtteranceText': 'i want two large pepperoni pizzas on thin crust'
        },
        'hasError': False
      }
    ]
    
    Request training:
    {
      'statusId': 9,
      'status': 'Queued'
    }
    
    Request training status:
    [
      {
        'modelId': 'edb46abf-0000-41ab-beb2-a41a0fe1630f',
        'details': {
          'statusId': 3,
          'status': 'InProgress',
          'exampleCount': 0,
          'progressSubstatus': 'CollectingData'
        }
      },
      {
        'modelId': 'a5030be2-616c-4648-bf2f-380fa9417d37',
        'details': {
          'statusId': 3,
          'status': 'InProgress',
          'exampleCount': 0,
          'progressSubstatus': 'CollectingData'
        }
      },
      {
        'modelId': '3f2b1f31-a3c3-4fbd-8182-e9d9dbc120b9',
        'details': {
          'statusId': 3,
          'status': 'InProgress',
          'exampleCount': 0,
          'progressSubstatus': 'CollectingData'
        }
      },
      {
        'modelId': 'e4b6704b-1636-474c-9459-fe9ccbeba51c',
        'details': {
          'statusId': 3,
          'status': 'InProgress',
          'exampleCount': 0,
          'progressSubstatus': 'CollectingData'
        }
      },
      {
        'modelId': '031d3777-2a00-4a7a-9323-9a3280a30000',
        'details': {
          'statusId': 3,
          'status': 'InProgress',
          'exampleCount': 0,
          'progressSubstatus': 'CollectingData'
        }
      },
      {
        'modelId': '9250e7a1-06eb-4413-9432-ae132ed32583',
        'details': {
          'statusId': 3,
          'status': 'InProgress',
          'exampleCount': 0,
          'progressSubstatus': 'CollectingData'
        }
      }
    ]
    

Czyszczenie zasobów

Po zakończeniu pracy z tym przewodnikiem Szybki start usuń plik z systemu plików.

Następne kroki

Najlepsze rozwiązania dotyczące aplikacji