Snabb start: fråga v2 förutsägelse slut C# punkt med .NET SDKQuickstart: Query V2 prediction endpoint with C# .NET SDK

Använd .NET SDK, som finns i NuGet, till att skicka talindata för användaren till LUIS (Language Understanding) och ta emot en förutsägelse av användarens avsikt.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.

Den här snabbstarten skickar talindata för användaren, som t.ex. turn on the bedroom light, till ett offentligt Language Understanding-program. Därefter tas förutsägelsen emot och visar den främsta avsikten HomeAutomation.TurnOn och entiteten HomeAutomation.Room i talindatan.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.

KravPrerequisites

Anteckning

Den fullständiga lösningen är tillgänglig från GitHub-lagringsplatsen cognitive-services-language-understanding.The complete solution is available from the cognitive-services-language-understanding GitHub repository.

Letar du efter mer dokumentation?Looking for more documentation?

Hämta Cognitive Services- eller Language Understanding-nyckelnGet Cognitive Services or Language Understanding key

För att kunna använda den offentliga appen vid hemautomatisering, behöver du en giltig nyckel för slutpunktens förutsägelser.In order to use the public app for home automation, you need a valid key for endpoint predictions. Du kan använda antingen en Cognitive Services-nyckel (som skapas nedan med Azure CLI) och är giltig för många kognitiva tjänster, eller en Language Understanding-nyckel.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.

Använd följande Azure CLI-kommando till att skapa en nyckel för Cognitive Service: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

Skapa ett .NET Core-projektCreate .NET Core project

Skapa ett .NET Core-konsolprojekt i Visual Studio Community 2017.Create a .NET Core console project in Visual Studio Community 2017.

  1. Öppna Visual Studio Community 2017.Open Visual Studio Community 2017.
  2. Skapa ett nytt projekt genom att från avsnittet Visual C# välja Konsolapp (.NET Core) .Create a new project, from the Visual C# section, choose Console App (.NET Core).
  3. Ange projektnamnet QueryPrediction, lämna kvar återstående standardvärden och välj OK.Enter the project name QueryPrediction, leave the remaining default values, and select OK. Detta skapar ett enkelt projekt med en primär kodfil med namnet Program.cs.This creates a simple project with the primary code file named Program.cs.

Lägga till SDK med NuGetAdd SDK with NuGet

  1. I Solution Explorer väljer du projektet i trädvyn med namnet QueryPrediction. Högerklicka sedan.In the Solution Explorer, select the Project in the tree view named QueryPrediction, then right-click. På samma meny väljer du Hantera NuGet-paket... .From the menu, select Manage NuGet Packages....
  2. Välj Bläddra och ange Microsoft.Azure.CognitiveServices.Language.LUIS.Runtime.Select Browse then enter Microsoft.Azure.CognitiveServices.Language.LUIS.Runtime. När paketinformationen visas väljer du Installera för att installera paketet i projektet.When the package information displays, select Install to install the package into the project.
  3. Lägg till följande using-instruktioner överst i Program.cs.Add the following using statements to the top of Program.cs. Ta inte bort den befintliga using-instruktionen för System.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;

Skapa en ny metod för förutsägelsenCreate a new method for the prediction

Skapa den nya metoden GetPrediction som skickar frågan till slutpunkten för förutsägelsefrågan.Create a new method, GetPrediction to send the query to the query prediction endpoint. Metoden skapar och konfigurerar alla nödvändiga objekt och returnerar sedan en Task med förutsägelseresultatet LuisResult.The method will create and configure all necessary objects then return a Task with the LuisResult prediction results.

static async  Task<LuisResult> GetPrediction() {
}

Skapa autentiseringsobjektCreate credentials object

Lägg till följande kod i GetPrediction-metoden för att skapa klientens autentiseringsuppgifter med din Cognitive Service-nyckel.Add the following code to the GetPrediction method to create the client credentials with your Cognitive Service key.

Ersätt <REPLACE-WITH-YOUR-KEY> med din Cognitive Service-nyckels region.Replace <REPLACE-WITH-YOUR-KEY> with your Cognitive Service key's region. Nyckeln finns i Azure-portalen på nyckelsidan för resursen.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);

Skapa en LUIS-klientCreate Language Understanding client

I GetPrediction-metoden, efter föregående kod, lägger du till följande kod för att använda de nya autentiseringsuppgifterna och skapa ett LUISRuntimeClient-klientobjekt.In the GetPrediction method, after the preceding code, add the following code to use the new credentials, creating a LUISRuntimeClient client object.

Ersätt <REPLACE-WITH-YOUR-KEY-REGION> med din nyckelregion, till exempel westus.Replace <REPLACE-WITH-YOUR-KEY-REGION> with your key's region, such as westus. Nyckelregionen finns i Azure-portalen på översiktssidan för resursen.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";

Ange frågeparametrarSet query parameters

I GetPrediction-metoden efter föregående kod lägger du till följande kod för att ange frågeparametrarna.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;

Slutpunkt för frågeförutsägelseQuery prediction endpoint

I GetPrediction-metoden efter föregående kod lägger du till följande kod för att ange frågeparametrarna: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);

Visa förutsägelseresultatDisplay prediction results

Ändra Main-metoden för att anropa den nya GetPrediction-metoden och returnera sedan förutsägelseresultatet: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");

}

Kör projektetRun the project

Skapa projektet i Studio och kör projektet för att se resultatet av frågan: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ästa stegNext steps

Läs mer om .NET SDK och referensdokumentationen för .NET.Learn more about the .NET SDK and the .NET reference documentation.