Пример #1
0
        public override async Task <ParseResult> ParseAsync(ChatState chatState, Chat_ParseField chatParseField, ChatMessage message)
        {
            int timezoneOffset = chatState.GetUserTimeZoneOffset();

            if (message.LuisDateOutput == null)
            {
                message.LuisDateOutput = await luisService.Parse(message.UserInput, timezoneOffset);
            }

            var assumeFuture = false;

            if (bool.TryParse(chatParseField?.GetProperty("AssumeFuture"), out bool test))
            {
                assumeFuture = test;
            }

            var results = ExtractDateResults(chatState, message.LuisDateOutput, assumeFuture);

            if ((results == null) || (results.Length == 0))
            {
                logger.InfoFormat("Parse: luis date parser got nothing. - {0}", (message.LuisDateOutput != null) ? JsonConvert.SerializeObject(message.LuisDateOutput) : "null");
                return(ParseResult.Failed);
            }

            if (version == 1)
            {
                return(ProcessAsV1Date(message, timezoneOffset, results));
            }

            return(ParseResult.CreateSuccess(results));
        }
Пример #2
0
        public override async Task <ParseResult> ParseAsync(ChatState state, Chat_ParseField chatParseField, ChatMessage message)
        {
            if (message.LuisDamageClassifierOutput == null)
            {
                message.LuisDamageClassifierOutput = await luisService.Parse(message.CorrectedUserInput, 0);
            }

            string[] intents = message.LuisDamageClassifierOutput.GetIntents(ChatConfiguration.MinLuisConfidenceRatio);

            if (intents?.Length > 0)
            {
                return(ParseResult.CreateSuccess(intents));
            }

            // AVA-997: Always use None if we didn't parse anything.
            return(ParseResultNoneList);
        }
Пример #3
0
        public override async Task <ParseResult> ParseAsync(ChatState state, Chat_ParseField chatParseField, ChatMessage message)
        {
            if (message.LuisDateOutput == null)
            {
                message.LuisDateOutput = await luisService.Parse(message.UserInput, state.GetUserTimeZoneOffset());
            }

            if (message.LuisDateOutput?.Entities.Length > 0)
            {
                var v1Entities = ExtractV1TimeEntities(state, message.LuisDateOutput);
                if (v1Entities.Length > 0)
                {
                    return(ParseResult.CreateSuccess(v1Entities));
                }
            }

            logger.DebugFormat("Parse: Luis Time Parser got nothing. - {0}", (message.LuisDateOutput != null) ? JsonConvert.SerializeObject(message.LuisDateOutput) : "null");

            return(ParseResult.Failed);
        }