示例#1
0
        public IntentRecognitionResult Parse(LuisResponseDto response)
        {
            var result = new IntentRecognitionResult();
            var intent = response.MostProbableIntent;

            result.OriginalIntent = intent;
            result.IntentLabel    = intent.IntentLabel;
            var action = intent.Actions?.FirstOrDefault(a => a.Triggered);

            if (action != null)
            {
                result.PropertyParameter =
                    action.Parameters.FirstOrDefault(p => p.Value != null && p.Value.Any(v => v.Type == "Property"))?
                    .Value.First()
                    .Entity;
                result.RoomParameter =
                    action.Parameters.FirstOrDefault(p => p.Value != null && p.Value.Any(v => v.Type == "Room"))?.Value.First().Entity;
                result.ThingParameter =
                    action.Parameters.FirstOrDefault(p => p.Value != null && p.Value.Any(v => v.Type == "Thing"))?.Value.First().Entity;
                var numericParameter =
                    action.Parameters.FirstOrDefault(p => p.Value != null && p.Value.Any(v => v.Type == "builtin.number"))?
                    .Value.First()
                    .Entity;
                if (numericParameter != null)
                {
                    result.NumericParameter = int.Parse(numericParameter);
                }
            }
            return(result);
        }
        public void JsonIsProperlyLoaded()
        {
            var file = File.ReadAllText("TestData/TurnOnTvResponse.txt");

            LuisResponseDto obj = null;

            Assert.DoesNotThrow(() => obj = JsonConvert.DeserializeObject <LuisResponseDto>(file));
            Assert.That(obj, Is.Not.Null);
        }