Created
March 2, 2022 23:43
-
-
Save sunnyy02/1773b0b3e101bb5575493d78e38d28d8 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using Microsoft.Bot.Builder; | |
using Microsoft.Bot.Builder.AI.Luis; | |
using Microsoft.Extensions.Configuration; | |
using System.Threading; | |
using System.Threading.Tasks; | |
namespace AppointmentBot | |
{ | |
public class AppointmentBookingRecognizer : IRecognizer | |
{ | |
private readonly LuisRecognizer _recognizer; | |
public AppointmentBookingRecognizer(IConfiguration configuration) | |
{ | |
var luisIsConfigured = !string.IsNullOrEmpty(configuration["LuisAppId"]) && !string.IsNullOrEmpty(configuration["LuisApiKey"]) && !string.IsNullOrEmpty(configuration["LuisApiEndpointUrl"]); | |
if (luisIsConfigured) | |
{ | |
var luisApplication = new LuisApplication( | |
configuration["LuisAppId"], | |
configuration["LuisApiKey"], | |
configuration["LuisApiEndpointUrl"]); | |
// Set the recognizer options depending on which endpoint version you want to use. | |
// More details can be found in https://docs.microsoft.com/en-gb/azure/cognitive-services/luis/luis-migration-api-v3 | |
var recognizerOptions = new LuisRecognizerOptionsV3(luisApplication) | |
{ | |
PredictionOptions = new Microsoft.Bot.Builder.AI.LuisV3.LuisPredictionOptions | |
{ | |
IncludeInstanceData = true, | |
} | |
}; | |
_recognizer = new LuisRecognizer(recognizerOptions); | |
} | |
} | |
// Returns true if luis is configured in the appsettings.json and initialized. | |
public virtual bool IsConfigured => _recognizer != null; | |
public virtual async Task<RecognizerResult> RecognizeAsync(ITurnContext turnContext, CancellationToken cancellationToken) | |
=> await _recognizer.RecognizeAsync(turnContext, cancellationToken); | |
public virtual async Task<T> RecognizeAsync<T>(ITurnContext turnContext, CancellationToken cancellationToken) | |
where T : IRecognizerConvert, new() | |
=> await _recognizer.RecognizeAsync<T>(turnContext, cancellationToken); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment