public ILuisService MakeLuisService(ILuisModel model) { if (model.SubscriptionKey == KeyOne && model.ModelID == ModelOne) { return(luisOne.Object); } if (model.SubscriptionKey == KeyTwo && model.ModelID == ModelTwo) { return(luisTwo.Object); } throw new NotImplementedException(); }
public static ILuisService MakeMockedLuisService(ILuisModel model) { var mock = new Mock <ILuisService>(MockBehavior.Strict); var request = new LuisRequest(query: UtteranceSetAlarm); var uri = request.BuildUri(model); mock .Setup(l => l.BuildUri(It.IsAny <LuisRequest>())) .Returns <LuisRequest>(r => ((ILuisService) new LuisService(model)).BuildUri(r)); mock .Setup(l => l.ModifyRequest(It.IsAny <LuisRequest>())) .Returns <LuisRequest>(r => r); mock .Setup(l => l.QueryAsync(It.Is <Uri>(u => u == uri), It.IsAny <CancellationToken>())) .ReturnsAsync(new LuisResult() { Intents = new[] { new IntentRecommendation() { Intent = ExampleBot.IntentSetAlarm.IntentName, Score = 1.0 } }, Entities = Array.Empty <EntityModel>(), }); mock .Setup(l => l.QueryAsync(It.Is <Uri>(u => u != uri), It.IsAny <CancellationToken>())) .ReturnsAsync(new LuisResult() { Intents = Array.Empty <IntentRecommendation>(), Entities = Array.Empty <EntityModel>(), }); return(mock.Object); }
public Task LuisAllTypes( ILuisModel model, IntentRecommendation intent, LuisResult result, [Entity("entityTypeA")] string entityA_as_String, [Entity("entityTypeA")] IEnumerable <string> entityA_as_IEnumerable_String, [Entity("entityTypeA")] IReadOnlyCollection <string> entityA_as_IReadOnlyCollection_String, [Entity("entityTypeA")] IReadOnlyList <string> entityA_as_IReadOnlyList_String, [Entity("entityTypeA")] EntityRecommendation entityA_as_EntityRecommendation, [Entity("entityTypeA")] IEnumerable <EntityRecommendation> entityA_as_IEnumerable_EntityRecommendation, [Entity("entityTypeA")] IReadOnlyCollection <EntityRecommendation> entityA_as_IReadOnlyCollection_EntityRecommendation, [Entity("entityTypeA")] IReadOnlyList <EntityRecommendation> entityA_as_IReadOnlyList_EntityRecommendation, [Entity("entityTypeB")] string entityB_as_String, [Entity("entityTypeB")] IEnumerable <string> entityB_as_IEnumerable_String, [Entity("entityTypeB")] IReadOnlyCollection <string> entityB_as_IReadOnlyCollection_String, [Entity("entityTypeB")] IReadOnlyList <string> entityB_as_IReadOnlyList_String, [Entity("entityTypeB")] EntityRecommendation entityB_as_EntityRecommendation, [Entity("entityTypeB")] IEnumerable <EntityRecommendation> entityB_as_IEnumerable_EntityRecommendation, [Entity("entityTypeB")] IReadOnlyCollection <EntityRecommendation> entityB_as_IReadOnlyCollection_EntityRecommendation, [Entity("entityTypeB")] IReadOnlyList <EntityRecommendation> entityB_as_IReadOnlyList_EntityRecommendation) { return(methods.LuisAllTypes(model, intent, result, entityA_as_String, entityA_as_IEnumerable_String, entityA_as_IReadOnlyCollection_String, entityA_as_IReadOnlyList_String, entityA_as_EntityRecommendation, entityA_as_IEnumerable_EntityRecommendation, entityA_as_IReadOnlyCollection_EntityRecommendation, entityA_as_IReadOnlyList_EntityRecommendation, entityB_as_String, entityB_as_IEnumerable_String, entityB_as_IReadOnlyCollection_String, entityB_as_IReadOnlyList_String, entityB_as_EntityRecommendation, entityB_as_IEnumerable_EntityRecommendation, entityB_as_IReadOnlyCollection_EntityRecommendation, entityB_as_IReadOnlyList_EntityRecommendation)); }
protected virtual ILuisService MakeService(ILuisModel model) { return(new LuisService(model)); }
protected override ILuisService MakeService(ILuisModel model) { return(this.luis); }
public static IScorable <IResolver, IntentRecommendation> When(this IScorable <IResolver, Binding> scorable, ILuisModel model, LuisIntentAttribute intent, ILuisService service = null) { service = service ?? new LuisService(model); return(new LuisIntentScorable <Binding, Binding>(service, model, intent, scorable)); }
public Task LuisTwo( ILuisModel model, [Entity("entityTypeA")] string entityA) { return(methods.LuisTwo(model, entityA)); }
public LuisIntentScorable(ILuisModel model, LuisIntentAttribute intent, IScorable <IResolver, InnerScore> inner) : base(inner) { SetField.NotNull(out this.model, nameof(model), model); SetField.NotNull(out this.intent, nameof(intent), intent); }
/// <summary> /// Creates a new <see cref="LuisRecognizerMiddleware"/> object. /// </summary> /// <param name="luisModel">The LUIS model to use to recognize text.</param> /// <param name="luisRecognizerOptions">The LUIS recognizer options to use.</param> /// <param name="options">The LUIS request options to use.</param> public LuisRecognizerMiddleware(ILuisModel luisModel, ILuisRecognizerOptions luisRecognizerOptions = null, ILuisOptions luisOptions = null) { _luisModel = luisModel ?? throw new ArgumentNullException(nameof(luisModel)); _luisOptions = luisOptions; _luisRecognizer = new LuisRecognizer(luisModel, luisRecognizerOptions, luisOptions); }
protected override ILuisService MakeService(ILuisModel model) { return(MakeLuisService(model)); }
private static async Task EmitTraceInfo(IBotContext context, LuisResult luisResult, ILuisOptions luisOptions, ILuisModel luisModel) { var luisTraceInfo = new LuisTraceInfo { LuisResult = luisResult, LuisOptions = luisOptions, LuisModel = RemoveSensitiveData(luisModel) }; var activity = Activity.CreateTraceActivityReply(context.Activity as Activity, LuisTraceName, LuisTraceType, luisTraceInfo, LuisTraceLabel) as IMessageActivity; await context.PostAsync(activity); }
/// <summary> /// Initializes a new instance of the <see cref="LuisService"/> class using the model information. /// </summary> /// <param name="model">The LUIS model information.</param> /// <param name="httpClient">an optional alternate HttpClient.</param> public LuisService(ILuisModel model, HttpClient httpClient = null) { _httpClient = httpClient ?? DefaultHttpClient; SetField.NotNull(out this.model, nameof(model), model); }
private static async Task EmitTraceInfo(DialogContext context, LuisResult luisResult, ILuisOptions luisOptions, ILuisModel luisModel) { var luisTraceInfo = new LuisTraceInfo { LuisResult = luisResult, LuisOptions = luisOptions, LuisModel = RemoveSensitiveData(luisModel) }; var trace = context.Context.Activity.CreateTrace(LuisTraceName, luisTraceInfo, LuisTraceType, LuisTraceLabel); await context.Context.SendActivityAsync(trace); }
public LuisDialog(ILuisModel model) : base(new LuisService(model)) { }
/// <summary> /// Build the Uri for issuing the request for the specified Luis model. /// </summary> /// <param name="model"> The Luis model.</param> /// <returns> The request Uri.</returns> public Uri BuildUri(ILuisModel model) { if (model.ModelID == null) { throw new ValidationException(ValidationRules.CannotBeNull, "id"); } if (model.SubscriptionKey == null) { throw new ValidationException(ValidationRules.CannotBeNull, "subscriptionKey"); } var queryParameters = new List <string>(); queryParameters.Add($"subscription-key={Uri.EscapeDataString(model.SubscriptionKey)}"); queryParameters.Add($"q={Uri.EscapeDataString(Query)}"); UriBuilder builder; var id = Uri.EscapeDataString(model.ModelID); switch (model.ApiVersion) { #pragma warning disable CS0612 case LuisApiVersion.V1: builder = new UriBuilder(model.UriBase); queryParameters.Add($"id={id}"); break; #pragma warning restore CS0612 case LuisApiVersion.V2: //v2.0 have the model as path parameter builder = new UriBuilder(new Uri(model.UriBase, id)); break; default: throw new ArgumentException($"{model.ApiVersion} is not a valid Luis api version."); } if (Log != null) { queryParameters.Add($"log={Uri.EscapeDataString(Convert.ToString(Log))}"); } if (SpellCheck != null) { queryParameters.Add($"spellCheck={Uri.EscapeDataString(Convert.ToString(SpellCheck))}"); } if (Staging != null) { queryParameters.Add($"staging={Uri.EscapeDataString(Convert.ToString(Staging))}"); } if (TimezoneOffset != null) { queryParameters.Add($"timezoneOffset={Uri.EscapeDataString(Convert.ToString(TimezoneOffset))}"); } if (Verbose != null) { queryParameters.Add($"verbose={Uri.EscapeDataString(Convert.ToString(Verbose))}"); } if (!string.IsNullOrWhiteSpace(BingSpellCheckSubscriptionKey)) { queryParameters.Add($"bing-spell-check-subscription-key={Uri.EscapeDataString(BingSpellCheckSubscriptionKey)}"); } #pragma warning disable CS0618 if (ContextId != null) { queryParameters.Add($"contextId={Uri.EscapeDataString(ContextId)}"); } if (ForceSet != null) { queryParameters.Add($"forceSet={Uri.EscapeDataString(ForceSet)}"); } #pragma warning restore CS0618 if (ExtraParameters != null) { queryParameters.Add(ExtraParameters); } builder.Query = string.Join("&", queryParameters); return(builder.Uri); }
public Task LuisNone(ILuisModel model) { return(methods.LuisNone(model)); }
/// <summary> /// Construct the LUIS service using the model information. /// </summary> /// <param name="model">The LUIS model information.</param> public LuisService(ILuisModel model) { SetField.NotNull(out this.model, nameof(model), model); }
public Task LuisOne( ILuisModel model, [Entity("entityTypeA")] IEnumerable <string> entityA) { return(methods.LuisOne(model, entityA)); }
/// <summary> /// Removes sensitive information from a LUIS model. /// </summary> /// <param name="luisModel">The model.</param> /// <returns>A new model with the sensitive information removed.</returns> public static ILuisModel RemoveSensitiveData(ILuisModel luisModel) { return(new LuisModel(luisModel.ModelID, Obfuscated, luisModel.UriBase, luisModel.ApiVersion)); }
public static ILuisModel RemoveSensitiveData(ILuisModel luisModel) { return(new LuisModelAttribute(luisModel.ModelID, Obfuscated, luisModel.ApiVersion, luisModel.UriBase.Host, luisModel.Threshold)); }