private Task <RecognizerResult> RecognizeInternal(string utterance, CancellationToken ct)
        {
            if (string.IsNullOrEmpty(utterance))
            {
                throw new ArgumentNullException(nameof(utterance));
            }

            var luisRequest = new LuisRequest(utterance);

            _luisOptions.Apply(luisRequest);
            return(Recognize(luisRequest, ct, _luisRecognizerOptions.Verbose));
        }
        public Task <(RecognizerResult recognizerResult, LuisResult luisResult)> CallAndRecognize(string utterance, CancellationToken ct)
        {
            if (string.IsNullOrEmpty(utterance))
            {
                throw new ArgumentNullException(nameof(utterance));
            }

            var luisRequest = new LuisRequest(utterance);

            _luisOptions.Apply(luisRequest);
            return(Recognize(luisRequest, ct, _luisRecognizerOptions.Verbose));
        }