// </snippet_create_client> // <snippet_maintask> static async Task <PredictionResponse> GetPredictionAsync() { // Get client using (var luisClient = CreateClient()) { var requestOptions = new PredictionRequestOptions { DatetimeReference = DateTime.Parse("2019-01-01"), PreferExternalEntities = true }; var predictionRequest = new PredictionRequest { Query = "turn on the bedroom light", Options = requestOptions }; // get prediction return(await luisClient.Prediction.GetSlotPredictionAsync( Guid.Parse(appId), slotName : "production", predictionRequest, verbose : true, showAllIntents : true, log : true)); } }
private static async Task <PredictionResponse> GetIntentAndEntities(string messageText) { var credentials = new ApiKeyServiceClientCredentials(_luisPredictionKey); var luisClient = new LUISRuntimeClient(credentials, new System.Net.Http.DelegatingHandler[] { }) { Endpoint = _luisBaseUrl }; var requestOptions = new PredictionRequestOptions { DatetimeReference = DateTime.Parse("2019-01-01"), PreferExternalEntities = true }; var predictionRequest = new PredictionRequest { Query = messageText, Options = requestOptions }; // get prediction return(await luisClient.Prediction.GetSlotPredictionAsync( Guid.Parse(_luisAppId), slotName : "production", predictionRequest, verbose : true, showAllIntents : true, log : true)); }
private PredictionResponse GetPrediction(string utterance) { var language = GuessLanguage(utterance); var appId = GetAppId(language); var credentials = new ApiKeyServiceClientCredentials(Config.PredictionKey); using (var luisClient = new LUISRuntimeClient(credentials, new System.Net.Http.DelegatingHandler[] { }) { Endpoint = Config.Endpoint }) { var requestOptions = new PredictionRequestOptions { DatetimeReference = DateTime.Now, //DateTime.Parse("2019-01-01"), PreferExternalEntities = true }; var predictionRequest = new PredictionRequest { Query = utterance, Options = requestOptions }; // get prediction return(luisClient.Prediction.GetSlotPredictionAsync( Guid.Parse(appId), slotName: "staging", predictionRequest, verbose: true, showAllIntents: true, log: true).Result); } }
// Send a query to a LUIS application. async static Task Query_App(LUISRuntimeClient client, ApplicationInfo app, string query) { DateTime offsetNow = DateTime.UtcNow; PredictionRequestOptions options = new PredictionRequestOptions { OverridePredictions = true, DatetimeReference = offsetNow }; PredictionRequest obj = new PredictionRequest { Query = query, Options = options, DynamicLists = null, ExternalEntities = null }; Boolean verbose = true; Boolean showAllIntents = true; Boolean logUtterance = true; try { var info = await client.Prediction.GetSlotPredictionAsync(app.ID, "production", obj, verbose, showAllIntents, logUtterance); Console.WriteLine("Top intent: " + info.Prediction.TopIntent); Console.WriteLine("Score: " + info.Prediction.Intents[info.Prediction.TopIntent]); foreach (var item in info.Prediction.Intents.Values) { // For Dispatch Parent apps //Console.WriteLine(item.ChildApp.TopIntent); Console.WriteLine(item.Score); } } catch (ErrorException e) { Console.WriteLine(e.Message); Console.WriteLine(e.Response.Content); } }
private async Task <PredictionResponse> getLUISPredictionAsync(string query) { using (var client = new LUISRuntimeClient(credentials, new DelegatingHandler[] { }) { Endpoint = _luisPredictionEndpoint }) { var appId = Guid.Parse(_luisAppId); var slotName = "production"; var options = new PredictionRequestOptions() { DatetimeReference = DateTime.Parse("2020-01-01"), PreferExternalEntities = true }; var predictionRequest = new PredictionRequest(query, options); var result = await client.Prediction.GetSlotPredictionAsync(appId, slotName, predictionRequest, true, true, true); return(result); } }
public void Prediction_Slot() { UseClientFor(async client => { var utterance = "today this is a test with post"; var slotName = "production"; var requestOptions = new PredictionRequestOptions { DatetimeReference = DateTime.Parse("2019-01-01"), OverridePredictions = true }; var externalResolution = JObject.FromObject(new { text = "post", external = true }); var externalEntities = new[] { new ExternalEntity { EntityName = "simple", StartIndex = 26, EntityLength = 4, Resolution = externalResolution } }; var dynamicLists = new[] { new DynamicList { ListEntityName = "list", RequestLists = new[] { new RequestList { Name = "test", CanonicalForm = "testing", Synonyms = new[] { "this" } } } } }; var predictionRequest = new PredictionRequest { Query = utterance, Options = requestOptions, ExternalEntities = externalEntities, DynamicLists = dynamicLists }; var result = await client.Prediction.GetSlotPredictionAsync( Guid.Parse(appId), slotName, predictionRequest, verbose: true, showAllIntents: true); var prediction = result.Prediction; Assert.Equal(utterance, result.Query); Assert.Equal(utterance, prediction.NormalizedQuery); Assert.Equal("intent", prediction.TopIntent); Assert.Equal(2, prediction.Intents.Count); Assert.Equal(4, prediction.Entities.Count); Assert.Contains("datetimeV2", prediction.Entities.Keys); Assert.Contains("simple", prediction.Entities.Keys); Assert.Contains("list", prediction.Entities.Keys); Assert.Contains("$instance", prediction.Entities.Keys); // Test external resolution var actualResolution = (prediction.Entities["simple"] as JArray).Single(); Assert.True(JToken.DeepEquals(externalResolution, actualResolution)); var topIntent = prediction.Intents[prediction.TopIntent]; Assert.True(topIntent.Score > 0.5); Assert.Equal("positive", prediction.Sentiment.Label); Assert.True(prediction.Sentiment.Score > 0.5); // dispatch var child = topIntent.ChildApp; Assert.Equal(utterance, child.NormalizedQuery); Assert.Equal("None", child.TopIntent); Assert.Equal(1, child.Intents.Count); Assert.Equal(2, child.Entities.Count); Assert.Contains("datetimeV2", child.Entities.Keys); Assert.Contains("$instance", child.Entities.Keys); var dispatchTopIntent = child.Intents[child.TopIntent]; Assert.True(dispatchTopIntent.Score > 0.5); Assert.Equal("positive", child.Sentiment.Label); Assert.True(child.Sentiment.Score > 0.5); }); }