public async Task <QnAResult[]> QueryQnAService(string query, QnABotState qnAcontext, ITurnContext turnContext) { var requestUrl = $"{this._endpoint.Host}/knowledgebases/{this._endpoint.KnowledgeBaseId}/generateanswer"; var request = new HttpRequestMessage(HttpMethod.Post, requestUrl); var requestObject = new { question = query, top = this._options.Top, context = qnAcontext, strictFilters = this._options.StrictFilters, metadataBoost = this._options.MetadataBoost, scoreThreshold = this._options.ScoreThreshold, }; var jsonRequest = JsonConvert.SerializeObject(requestObject, Formatting.None); request.Headers.Add("Authorization", $"EndpointKey {this._endpoint.EndpointKey}"); request.Content = new StringContent(jsonRequest, System.Text.Encoding.UTF8, "application/json"); await LuisServiceV3.LogCustomTrace(requestObject, turnContext, "QnA Request", "QnA"); var response = await this._httpClient.SendAsync(request).ConfigureAwait(false); response.EnsureSuccessStatusCode(); var contentString = response.Content.ReadAsStringAsync().Result; var result = JsonConvert.DeserializeObject <QnAResultList>(contentString); await LuisServiceV3.LogCustomTrace(result, turnContext, "QnA Result", "QnA"); return(result.Answers); }
/// <summary> /// Initializes a new instance of the <see cref="BasicBot"/> class. /// </summary> /// <param name="botServices">Bot services.</param> /// <param name="accessors">Bot State Accessors.</param> public BasicBot(BotServices services, UserState userState, ConversationState conversationState, ILoggerFactory loggerFactory) { _services = services ?? throw new ArgumentNullException(nameof(services)); _userState = userState ?? throw new ArgumentNullException(nameof(userState)); _conversationState = conversationState ?? throw new ArgumentNullException(nameof(conversationState)); _qnaStateAccessor = _userState.CreateProperty <QnABotState>(nameof(QnABotState)); _greetingStateAccessor = _userState.CreateProperty <GreetingState>(nameof(GreetingState)); _dialogStateAccessor = _conversationState.CreateProperty <DialogState>(nameof(DialogState)); // Verify LUIS configuration. if (!_services.LuisServices.ContainsKey(LuisConfiguration)) { throw new InvalidOperationException($"The bot configuration does not contain a service type of `luis` with the id `{LuisConfiguration}`."); } laLigaBL = new LaLigaBL(); luisServiceV3 = new LuisServiceV3(); qnAServiceHelper = new QnAServiceHelper(); Dialogs = new DialogSet(_dialogStateAccessor); Dialogs.Add(new GreetingDialog(_greetingStateAccessor, loggerFactory)); }