Schnellstart: Abfragen eines V2-Vorhersageendpunkts mit dem C# .NET SDKQuickstart: Query V2 prediction endpoint with C# .NET SDK

Verwenden Sie das auf NuGet verfügbare .NET SDK, um eine Benutzeräußerung an Language Understanding (LUIS) zu senden und eine Vorhersage der Benutzerabsicht zu empfangen.Use the .NET SDK, found on NuGet, to send a user utterance to Language Understanding (LUIS) and receive a prediction of the user's intention.

In dieser Schnellstartanleitung wird eine Benutzeräußerung (beispielsweise turn on the bedroom light) an eine öffentliche Language Understanding-Anwendung gesendet. Anschließend wird die Vorhersage empfangen, und die Absicht mit der höchsten Punktzahl (HomeAutomation.TurnOn) und die in der Äußerung gefundene Entität (HomeAutomation.Room) werden angezeigt.This quickstart sends a user utterance, such as turn on the bedroom light, to a public Language Understanding application, then receives the prediction and displays the top-scoring intent HomeAutomation.TurnOn and the entity HomeAutomation.Room found within the utterance.

VoraussetzungenPrerequisites

Hinweis

Die vollständige Lösung steht im GitHub-Repository cognitive-services-language-understanding zur Verfügung.The complete solution is available from the cognitive-services-language-understanding GitHub repository.

Weitere Dokumentationen:Looking for more documentation?

Abrufen eines Schlüssels für Cognitive Services oder Language UnderstandingGet Cognitive Services or Language Understanding key

Um die öffentliche App für die Gebäudeautomatisierung verwenden zu können, benötigen Sie einen gültigen Schlüssel für Endpunktvorhersagen.In order to use the public app for home automation, you need a valid key for endpoint predictions. Sie können entweder einen (über die Azure-Befehlszeilenschnittstelle erstellten) Cognitive Services-Schlüssel verwenden, der für viele Cognitive Services gültig ist, oder einen Language Understanding-Schlüssel.You can use either a Cognitive Services key (created below with the Azure CLI), which is valid for many cognitive services, or a Language Understanding key.

Verwenden Sie den folgenden Azure CLI-Befehl zum Erstellen eines Cognitive Services-Schlüssels:Use the following Azure CLI command to create a Cognitive Service key:

az cognitiveservices account create \
    -n my-cog-serv-resource \
    -g my-cog-serv-resource-group \
    --kind CognitiveServices \
    --sku S0 \
    -l WestEurope \ 
    --yes

Erstellen eines .NET Core-ProjektsCreate .NET Core project

Erstellen Sie in Visual Studio Community 2017 ein .NET Core-Konsolenprojekt.Create a .NET Core console project in Visual Studio Community 2017.

  1. Öffnen Sie Visual Studio Community 2017.Open Visual Studio Community 2017.
  2. Erstellen Sie ein neues Projekt, indem Sie im Abschnitt Visual C# die Option Konsolen-App (.NET Core) auswählen.Create a new project, from the Visual C# section, choose Console App (.NET Core).
  3. Geben Sie den Projektnamen QueryPrediction ein, behalten Sie die übrigen Standardwerte bei, und wählen Sie OK aus.Enter the project name QueryPrediction, leave the remaining default values, and select OK. Dadurch wird ein einfaches Projekt mit einer primären Codedatei namens Program.cs erstellt.This creates a simple project with the primary code file named Program.cs.

Hinzufügen des SDK mit NuGetAdd SDK with NuGet

  1. Wählen Sie in der Strukturansicht des Projektmappen-Explorers das Projekt mit dem Namen QueryPrediction aus, und klicken Sie mit der rechten Maustaste darauf.In the Solution Explorer, select the Project in the tree view named QueryPrediction, then right-click. Wählen Sie im Menü die Option NuGet-Pakete verwalten... aus.From the menu, select Manage NuGet Packages....
  2. Wählen Sie Durchsuchen aus, und geben Sie Microsoft.Azure.CognitiveServices.Language.LUIS.Runtime ein.Select Browse then enter Microsoft.Azure.CognitiveServices.Language.LUIS.Runtime. Wenn die Paketinformationen angezeigt werden, wählen Sie Installieren aus, um das Paket im Projekt zu installieren.When the package information displays, select Install to install the package into the project.
  3. Fügen Sie am Anfang von Program.cs die folgenden using-Anweisungen hinzu.Add the following using statements to the top of Program.cs. Behalten Sie die bereits vorhandene using-Anweisung für System bei.Do not remove the existing using statement for System.
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Azure.CognitiveServices.Language.LUIS.Runtime;
using Microsoft.Azure.CognitiveServices.Language.LUIS.Runtime.Models;

Erstellen einer neuen Methode für die VorhersageCreate a new method for the prediction

Erstellen Sie eine neue Methode (GetPrediction), um die Abfrage an den Vorhersageendpunkt zu senden.Create a new method, GetPrediction to send the query to the query prediction endpoint. Die Methode erstellt und konfiguriert alle erforderlichen Objekte und gibt anschließend eine Aufgabe (Task) mit den Vorhersageergebnissen (LuisResult) zurück.The method will create and configure all necessary objects then return a Task with the LuisResult prediction results.

static async  Task<LuisResult> GetPrediction() {
}

Erstellen des AnmeldeinformationsobjektsCreate credentials object

Fügen Sie der Methode GetPrediction den folgenden Code hinzu, um die Clientanmeldeinformationen mit Ihrem Cognitive Services-Schlüssel zu erstellen.Add the following code to the GetPrediction method to create the client credentials with your Cognitive Service key.

Ersetzen Sie <REPLACE-WITH-YOUR-KEY> durch die Region Ihres Cognitive Services-Schlüssels.Replace <REPLACE-WITH-YOUR-KEY> with your Cognitive Service key's region. Der Schlüssel befindet sich im Azure-Portal auf der Schlüsselseite für diese Ressource.The key is in the Azure portal on the Keys page for that resource.

// Use Language Understanding or Cognitive Services key
// to create authentication credentials
var endpointPredictionkey = "<REPLACE-WITH-YOUR-KEY>";
var credentials = new ApiKeyServiceClientCredentials(endpointPredictionkey);

Erstellen des Language Understanding-ClientsCreate Language Understanding client

Fügen Sie in der Methode GetPrediction nach dem vorherigen Code den folgenden Code hinzu, um die neuen Anmeldeinformationen zu verwenden. Dadurch wird ein LUISRuntimeClient-Clientobjekt erstellt.In the GetPrediction method, after the preceding code, add the following code to use the new credentials, creating a LUISRuntimeClient client object.

Ersetzen Sie <REPLACE-WITH-YOUR-KEY-REGION> durch die Region Ihres Schlüssels (etwa westus).Replace <REPLACE-WITH-YOUR-KEY-REGION> with your key's region, such as westus. Die Schlüsselregion befindet sich im Azure-Portal auf der Übersichtsseite für diese Ressource.The key region is in the Azure portal on the Overview page for that resource.

// Create Luis client and set endpoint
// region of endpoint must match key's region, for example `westus`
var luisClient = new LUISRuntimeClient(credentials, new System.Net.Http.DelegatingHandler[] { });
luisClient.Endpoint = "https://<REPLACE-WITH-YOUR-KEY-REGION>.api.cognitive.microsoft.com";

Festlegen der AbfrageparameterSet query parameters

Fügen Sie in der Methode GetPrediction nach dem vorherigen Code den folgenden Code hinzu, um die Abfrageparameter festzulegen:In the GetPrediction method, after the preceding code, add the following code to set the query parameters.

// public Language Understanding Home Automation app
var appId = "df67dcdb-c37d-46af-88e1-8b97951ca1c2";

// query specific to home automation app
var query = "turn on the bedroom light";

// common settings for remaining parameters
Double? timezoneOffset = null;
var verbose = true;
var staging = false;
var spellCheck = false;
String bingSpellCheckKey = null;
var log = false;

Abfragen eines VorhersageendpunktsQuery prediction endpoint

Fügen Sie in der Methode GetPrediction nach dem vorherigen Code den folgenden Code hinzu, um die Abfrageparameter festzulegen:In the GetPrediction method, after the preceding code, add the following code to set the query parameters:

// Create prediction client
var prediction = new Prediction(luisClient);

// get prediction
return await prediction.ResolveAsync(appId, query, timezoneOffset, verbose, staging, spellCheck, bingSpellCheckKey, log, CancellationToken.None);

Anzeigen der VorhersageergebnisseDisplay prediction results

Ändern Sie die Methode Main, um die neue Methode GetPrediction aufzurufen und die Vorhersageergebnisse zurückzugeben:Change the Main method to call the new GetPrediction method and return the prediction results:

static void Main(string[] args)
{

    var luisResult = GetPrediction().Result;

    // Display query
    Console.WriteLine("Query:'{0}'", luisResult.Query);

    // Display most common properties of query result
    Console.WriteLine("Top intent is '{0}' with score {1}", luisResult.TopScoringIntent.Intent,luisResult.TopScoringIntent.Score);

    // Display all entities detected in query utterance
    foreach (var entity in luisResult.Entities)
    {
        Console.WriteLine("{0}:'{1}' begins at position {2} and ends at position {3}", entity.Type, entity.Entity, entity.StartIndex, entity.EndIndex);
    }

    Console.Write("done");

}

Ausführen des ProjektsRun the project

Erstellen Sie das Projekt in Studio, und führen Sie das Projekt aus, um die Ausgabe der Abfrage anzuzeigen:Build the project in Studio and run the project to the see the output of the query:

Query:'turn on the bedroom light'
Top intent is 'HomeAutomation.TurnOn' with score 0.809439957
HomeAutomation.Room:'bedroom' begins at position 12 and ends at position 18

Nächste SchritteNext steps

Machen Sie sich näher mit dem .NET SDK und der .NET-Referenzdokumentation vertraut.Learn more about the .NET SDK and the .NET reference documentation.