Ejemplo n.º 1
0
        public async Task <QnASearchResultList> AnswerQuestion(string question, string userId, int resultCount = 1)
        {
            //From QnA Knowledgebase - embedded GUID in POST portion
            var runtimeKB = _configuration["QNA_KB_ID"];
            //From QnA Knowledgebase - HOST
            var runtimeEndpoint = _configuration["QNA_RuntimeEndpoint"];
            //From QnA Knowledgebase - Authorization Endpoint Key
            var runtimeKey = _configuration["QNA_RuntimeKey"];

            var runtimeCreds = new EndpointKeyServiceClientCredentials(runtimeKey);

            //Runtime client for asking questions
            using (QnAMakerRuntimeClient rtClient = new QnAMakerRuntimeClient(runtimeCreds)
            {
                RuntimeEndpoint = runtimeEndpoint
            })
            {
                QueryDTO query = new QueryDTO()
                {
                    Question       = question,   //The text of the question
                    ScoreThreshold = 0.55,       //The minimum relevance score to accept
                    Top            = resultCount //How many answers to return, maximum
                };

                return(await rtClient.Runtime.GenerateAnswerAsync(runtimeKB, query).ConfigureAwait(false));
            }
        }
Ejemplo n.º 2
0
        private async Task CognitiveServices_QnA_MigrationGuide_Runtime()
        {
            #region Snippet:CognitiveServices_QnA_Maker_Snippets_MigrationGuide_CreateRuntimeClient
            EndpointKeyServiceClientCredentials credential = new EndpointKeyServiceClientCredentials("{ApiKey}");

            QnAMakerRuntimeClient client = new QnAMakerRuntimeClient(credential)
            {
                RuntimeEndpoint = "{QnaMakerEndpoint}"
            };
            #endregion Snippet:CognitiveServices_QnA_Maker_Snippets_MigrationGuide_CreateRuntimeClient

            #region Snippet:CognitiveServices_QnA_Maker_Snippets_MigrationGuide_QueryKnowledgeBase
            QueryDTO queryDTO = new QueryDTO();
            queryDTO.Question = "{Question}";

            QnASearchResultList response = await client.Runtime.GenerateAnswerAsync("{knowledgebase-id}", queryDTO);

            #endregion Snippet:CognitiveServices_QnA_Maker_Snippets_MigrationGuide_QueryKnowledgeBase

            #region Snippet:CognitiveServices_QnA_Maker_Snippets_MigrationGuide_Chat
            QueryDTO queryDTOFollowUp = new QueryDTO();
            queryDTOFollowUp.Context = new QueryDTOContext(previousQnaId: 1);

            QnASearchResultList responseFollowUp = await client.Runtime.GenerateAnswerAsync("{knowledgebase-id}", queryDTO);

            #endregion Snippet:CognitiveServices_QnA_Maker_Snippets_MigrationGuide_Chat
        }