public async Task ShouldSendPublishRequest()
        {
            IEnumerable <Training> trainingList;

            using (var client = new LuisProgClient(SubscriptionKey, Region))
            {
                await client.AddIntentAsync("IntentTest", appId, appVersion);

                await client.AddExampleAsync(appId, appVersion, new Example
                {
                    Text       = "Hello World!",
                    IntentName = "IntentTest"
                });

                await client.TrainAsync(appId, appVersion);

                do
                {
                    trainingList = await client.GetTrainingStatusListAsync(appId, appVersion);
                }while (!trainingList.All(x => x.Details.Status.Equals("Success")));

                var publish = await client.PublishAsync(appId, appVersion, false, "westus");

                Assert.IsNotNull(publish);
            }
        }
        public async Task ShouldAddExample()
        {
            var    client       = new LuisProgClient(SUBSCRIPTION_KEY, LOCATION);
            string intentTestId = null;
            var    intentTest   = await client.GetIntentByNameAsync("IntentTest", _appId, "1.0");

            if (intentTest != null)
            {
                intentTestId = intentTest.Id;
            }
            else
            {
                intentTestId = await client.AddIntentAsync("IntentTest", _appId, "1.0");
            }

            var example = new Example
            {
                Text       = "Hello World!",
                IntentName = "IntentTest"
            };

            var utterance = await client.AddExampleAsync(_appId, "1.0", example);

            Assert.IsNotNull(utterance);
        }
        public async Task ShouldThrowExceptionOnRenameIntentTestWhenExistsIntentWithSameName()
        {
            using (var client = new LuisProgClient(SubscriptionKey, Region))
            {
                var intent = await client.GetIntentByNameAsync(IntentName, appId, appVersion);

                var intentChanged = await client.GetIntentByNameAsync(IntentNameChanged, appId, appVersion);

                string intentChangedId = null;

                if (intent == null)
                {
                    await client.AddIntentAsync(IntentName, appId, appVersion);

                    intent = await client.GetIntentByNameAsync(IntentName, appId, appVersion);
                }
                if (intentChanged == null)
                {
                    intentChangedId = await client.AddIntentAsync(IntentNameChanged, appId, appVersion);
                }

                var ex = await Assert.ThrowsExceptionAsync <Exception>(() =>
                                                                       client.RenameIntentAsync(intent.Id, IntentNameChanged, appId, appVersion));

                Assert.AreEqual(ex.Message, "BadArgument - The models: { IntentTestChanged } already exist in the specified application version.");
            }
        }
Exemplo n.º 4
0
        public async Task ShouldAddLabelledExample()
        {
            using (var client = new LuisProgClient(SubscriptionKey, Region))
            {
                // Add simple entity name if not already exists
                if (await client.Entities.GetSimpleEntityByNameAsync("name", appId, appVersion) == null)
                {
                    await client.Entities.AddSimpleEntityAsync("name", appId, appVersion);
                }

                if (await client.Intents.GetByNameAsync(IntentName, appId, appVersion) == null)
                {
                    await client.Intents.AddAsync(IntentName, appId, appVersion);
                }

                var labeledExample = new Example()
                {
                    Text         = "Who is Test User!",
                    IntentName   = IntentName,
                    EntityLabels = new List <EntityLabel>
                    {
                        new EntityLabel
                        {
                            EntityName     = "name",
                            StartCharIndex = 7,
                            EndCharIndex   = 15
                        }
                    }
                };

                var utterance = await client.Examples.AddAsync(appId, appVersion, labeledExample);

                Assert.NotNull(utterance);
            }
        }
        public async Task ShouldRenameAppSDKTest()
        {
            using (var client = new LuisProgClient(SubscriptionKey, Region))
            {
                var app = await client.GetAppByNameAsync("SDKTest");

                var appChanged = await client.GetAppByNameAsync("SDKTestChanged");

                if (app == null)
                {
                    await client.AddAppAsync("SDKTest", "Description test", "en-us", "SDKTest", string.Empty, appVersion);

                    app = await client.GetAppByNameAsync("SDKTest");
                }

                if (appChanged != null)
                {
                    await client.DeleteAppAsync(appChanged.Id);
                }

                await client.RenameAppAsync(app.Id, "SDKTestChanged", "Description changed");

                app = await client.GetAppByIdAsync(app.Id);

                Assert.AreEqual("SDKTestChanged", app.Name);
            }
        }
Exemplo n.º 6
0
        public async Task ShouldThrowExceptionOnRenameEntityTestWhenExistsEntityWithSameName()
        {
            using (var client = new LuisProgClient(SubscriptionKey, Region))
            {
                var entity = await client.Entities.GetSimpleEntityByNameAsync(SimpleEntityName, appId, appVersion);

                var entityChanged = await client.Entities.GetSimpleEntityByNameAsync(SimpleEntityNameChanged, appId, appVersion);

                string entityChangedId = null;

                if (entity == null)
                {
                    await client.Entities.AddSimpleEntityAsync(SimpleEntityName, appId, appVersion);

                    entity = await client.Entities.GetSimpleEntityByNameAsync(SimpleEntityName, appId, appVersion);
                }
                if (entityChanged == null)
                {
                    entityChangedId = await client.Entities.AddSimpleEntityAsync(SimpleEntityNameChanged, appId, appVersion);
                }

                var ex = await Assert.ThrowsAsync <Exception>(() =>
                                                              client.Entities.RenameAsync(entity.Id, SimpleEntityNameChanged, appId, appVersion));

                Assert.Equal("BadArgument - The models: { SimpleEntityTestChanged } already exist in the specified application version.", ex.Message);
            }
        }
Exemplo n.º 7
0
        public async Task ShouldGetExistCompositeEntityById()
        {
            using (var client = new LuisProgClient(SubscriptionKey, Region))
            {
                var entities = await client.Entities.GetAllCompositeEntitiesAsync(appId, appVersion);

                if (entities.Count == 0)
                {
                    if (await client.Entities.GetSimpleEntityByNameAsync($"{CompositeEntityName}1", appId, appVersion) == null)
                    {
                        await client.Entities.AddSimpleEntityAsync($"{CompositeEntityName}1", appId, appVersion);
                    }

                    await client.Entities.AddCompositeEntityAsync(CompositeEntityName, new[] { $"{CompositeEntityName}1" }, appId, appVersion);

                    entities = await client.Entities.GetAllCompositeEntitiesAsync(appId, appVersion);
                }

                var firstEntity = entities.FirstOrDefault();

                var entity = await client.Entities.GetCompositeEntityByIdAsync(firstEntity.Id, appId, appVersion);

                Assert.Equal(firstEntity.Name, entity.Name);
                Assert.Equal("CompositeEntityTest1", firstEntity.Children.ElementAt(0).Name);
            }
        }
Exemplo n.º 8
0
        public async Task ShouldGetIntentList()
        {
            var client  = new LuisProgClient(SUBSCRIPTION_KEY, LOCATION);
            var intents = await client.GetAllIntentsAsync(_appId, "1.0");

            Assert.IsInstanceOfType(intents, typeof(IEnumerable <Intent>));
        }
        public async Task ShouldSendTrainingRequest()
        {
            var client          = new LuisProgClient(SUBSCRIPTION_KEY, LOCATION);
            var trainingDetails = await client.TrainAsync(_appId, "1.0");

            Assert.IsNotNull(trainingDetails);
        }
Exemplo n.º 10
0
        public async Task ShouldRenameIntentTest()
        {
            var client = new LuisProgClient(SUBSCRIPTION_KEY, LOCATION);
            var intent = await client.GetIntentByNameAsync("IntentTest", _appId, "1.0");

            var intentChanged = await client.GetIntentByNameAsync("IntentTestChanged", _appId, "1.0");

            if (intent == null)
            {
                await client.AddIntentAsync("IntentTest", _appId, "1.0");

                intent = await client.GetIntentByNameAsync("IntentTest", _appId, "1.0");
            }

            if (intentChanged != null)
            {
                await client.DeleteIntentAsync(intentChanged.Id, _appId, "1.0");
            }

            await client.RenameIntentAsync(intent.Id, "IntentTestChanged", _appId, "1.0");

            intent = await client.GetIntentByIdAsync(intent.Id, _appId, "1.0");

            Assert.AreEqual("IntentTestChanged", intent.Name);
        }
Exemplo n.º 11
0
        public async Task ShouldThrowExceptionOnRenameIntentTestWhenExistsIntentWithSameName()
        {
            var client = new LuisProgClient(SUBSCRIPTION_KEY, LOCATION);
            var intent = await client.GetIntentByNameAsync("IntentTest", _appId, "1.0");

            var intentChanged = await client.GetIntentByNameAsync("IntentTestChanged", _appId, "1.0");

            string intentChangedId = null;

            if (intent == null)
            {
                await client.AddIntentAsync("IntentTest", _appId, "1.0");

                intent = await client.GetIntentByNameAsync("IntentTest", _appId, "1.0");
            }
            if (intentChanged == null)
            {
                intentChangedId = await client.AddIntentAsync("IntentTestChanged", _appId, "1.0");
            }

            var ex = await Assert.ThrowsExceptionAsync <Exception>(() =>
                                                                   client.RenameIntentAsync(intent.Id, "IntentTestChanged", _appId, "1.0"));

            Assert.AreEqual(ex.Message, "The application already contains an intent classifier with the same name");
        }
        public async Task ShouldGetEntityList()
        {
            var client   = new LuisProgClient(SUBSCRIPTION_KEY, LOCATION);
            var entities = await client.GetAllEntitiesAsync(_appId, "1.0");

            Assert.IsInstanceOfType(entities, typeof(IEnumerable <Entity>));
        }
        public async Task ShouldThrowExceptionOnRenameEntityTestWhenExistsEntityWithSameName()
        {
            var client = new LuisProgClient(SUBSCRIPTION_KEY, LOCATION);
            var entity = await client.GetEntityByNameAsync("EntityTest", _appId, "1.0");

            var entityChanged = await client.GetEntityByNameAsync("EntityTestChanged", _appId, "1.0");

            string entityChangedId = null;

            if (entity == null)
            {
                await client.AddEntityAsync("EntityTest", _appId, "1.0");

                entity = await client.GetEntityByNameAsync("EntityTest", _appId, "1.0");
            }
            if (entityChanged == null)
            {
                entityChangedId = await client.AddEntityAsync("EntityTestChanged", _appId, "1.0");
            }

            var ex = await Assert.ThrowsExceptionAsync <Exception>(() =>
                                                                   client.RenameEntityAsync(entity.Id, "EntityTestChanged", _appId, "1.0"));

            Assert.AreEqual(ex.Message, "The application already contains an entity extractor with the same name");
        }
        public async Task ShouldRenameEntityTest()
        {
            var client = new LuisProgClient(SUBSCRIPTION_KEY, LOCATION);
            var entity = await client.GetEntityByNameAsync("EntityTest", _appId, "1.0");

            var entityChanged = await client.GetEntityByNameAsync("EntityTestChanged", _appId, "1.0");

            if (entity == null)
            {
                await client.AddEntityAsync("EntityTest", _appId, "1.0");

                entity = await client.GetEntityByNameAsync("EntityTest", _appId, "1.0");
            }

            if (entityChanged != null)
            {
                await client.DeleteEntityAsync(entityChanged.Id, _appId, "1.0");
            }

            await client.RenameEntityAsync(entity.Id, "EntityTestChanged", _appId, "1.0");

            entity = await client.GetEntityByIdAsync(entity.Id, _appId, "1.0");

            Assert.AreEqual("EntityTestChanged", entity.Name);
        }
Exemplo n.º 15
0
        public async Task ShouldThrowExceptionOnAddNewClosedListEntityWhenAlreadyExists()
        {
            using (var client = new LuisProgClient(SubscriptionKey, Region))
            {
                var entityTest = await client.Entities.GetClosedListEntityByNameAsync(SimpleEntityName, appId, appVersion);

                if (entityTest == null)
                {
                    await client.Entities.AddClosedListEntityAsync(ClosedListEntityName,
                                                                   new[]
                    {
                        new ClosedListItem()
                        {
                            CanonicalForm = "SubList", List = new[] { "value1", "value2" }
                        }
                    }, appId, appVersion);
                }

                var ex = await Assert.ThrowsAsync <Exception>(() =>
                                                              client.Entities.AddClosedListEntityAsync(ClosedListEntityName,
                                                                                                       new[]
                {
                    new ClosedListItem()
                    {
                        CanonicalForm = "SubList", List = new[] { "value1", "value2" }
                    }
                }, appId, appVersion));

                Assert.Equal("BadArgument - The models: { ClosedListEntityTest } already exist in the specified application version.", ex.Message);
            }
        }
        public async Task ShouldGetTrainingStatusList()
        {
            var client   = new LuisProgClient(SUBSCRIPTION_KEY, LOCATION);
            var training = await client.GetTrainingStatusListAsync(_appId, "1.0");

            Assert.IsInstanceOfType(training, typeof(IEnumerable <Training>));
        }
Exemplo n.º 17
0
        public async Task ShouldRenameEntityTest()
        {
            using (var client = new LuisProgClient(SubscriptionKey, Region))
            {
                var entity = await client.Entities.GetSimpleEntityByNameAsync(SimpleEntityName, appId, appVersion);

                var entityChanged = await client.Entities.GetSimpleEntityByNameAsync(SimpleEntityNameChanged, appId, appVersion);

                if (entity == null)
                {
                    await client.Entities.AddSimpleEntityAsync(SimpleEntityName, appId, appVersion);

                    entity = await client.Entities.GetSimpleEntityByNameAsync(SimpleEntityName, appId, appVersion);
                }

                if (entityChanged != null)
                {
                    await client.Entities.DeleteSimpleEntityAsync(entityChanged.Id, appId, appVersion);
                }

                await client.Entities.RenameAsync(entity.Id, SimpleEntityNameChanged, appId, appVersion);

                entity = await client.Entities.GetSimpleEntityByIdAsync(entity.Id, appId, appVersion);

                Assert.Equal(SimpleEntityNameChanged, entity.Name);
            }
        }
        public async Task ShouldRenameAppSDKTest()
        {
            var client = new LuisProgClient(SUBSCRIPTION_KEY, LOCATION);
            var app    = await client.GetAppByNameAsync("SDKTest");

            var appChanged = await client.GetAppByNameAsync("SDKTestChanged");

            if (app == null)
            {
                await client.AddAppAsync("SDKTest", "Description test", "en-us", "SDKTest", string.Empty, "1.0");

                app = await client.GetAppByNameAsync("SDKTest");
            }

            if (appChanged != null)
            {
                await client.DeleteAppAsync(appChanged.Id);
            }

            await client.RenameAppAsync(app.Id, "SDKTestChanged", "Description changed");

            app = await client.GetAppByIdAsync(app.Id);

            Assert.AreEqual("SDKTestChanged", app.Name);
        }
Exemplo n.º 19
0
        public async Task ShouldDeleteClosedListEntityTest()
        {
            using (var client = new LuisProgClient(SubscriptionKey, Region))
            {
                if (await client.Entities.GetClosedListEntityByNameAsync(ClosedListEntityName, appId, appVersion) == null)
                {
                    await client.Entities.AddClosedListEntityAsync(ClosedListEntityName,
                                                                   new[]
                    {
                        new ClosedListItem()
                        {
                            CanonicalForm = "SubList", List = new[] { "value1", "value2" }
                        }
                    }, appId, appVersion);
                }

                var entity = await client.Entities.GetClosedListEntityByNameAsync(ClosedListEntityName, appId, appVersion);

                await client.Entities.DeleteClosedListEntityAsync(entity.Id, appId, appVersion);

                entity = await client.Entities.GetClosedListEntityByIdAsync(entity.Id, appId, appVersion);

                Assert.Null(entity);
            }
        }
        public async Task ShouldThrowExceptionOnRenameAppSDKTestWhenExistsAppWithSameName()
        {
            var client = new LuisProgClient(SUBSCRIPTION_KEY, LOCATION);
            var app    = await client.GetAppByNameAsync("SDKTest");

            var appChanged = await client.GetAppByNameAsync("SDKTestChanged");

            string appChangedId = null;

            if (app == null)
            {
                await client.AddAppAsync("SDKTest", "Description test", "en-us", "SDKTest", string.Empty, "1.0");

                app = await client.GetAppByNameAsync("SDKTest");
            }
            if (appChanged == null)
            {
                appChangedId = await client.AddAppAsync("SDKTestChanged", "Description changed", "en-us", "SDKTest", string.Empty, "1.0");
            }

            var ex = await Assert.ThrowsExceptionAsync <Exception>(() =>
                                                                   client.RenameAppAsync(app.Id, "SDKTestChanged", "Description changed"));

            Assert.AreEqual(ex.Message, "An application with the same name already exists");
        }
Exemplo n.º 21
0
        public async Task ShouldAddExample()
        {
            using (var client = new LuisProgClient(SubscriptionKey, Region))
            {
                string intentTestId = null;
                var    intentTest   = await client.Intents.GetByNameAsync(IntentName, appId, appVersion);

                if (intentTest != null)
                {
                    intentTestId = intentTest.Id;
                }
                else
                {
                    intentTestId = await client.Intents.AddAsync(IntentName, appId, appVersion);
                }

                var example = new Example
                {
                    Text       = "Hello World!",
                    IntentName = IntentName
                };

                var utterance = await client.Examples.AddAsync(appId, appVersion, example);

                Assert.NotNull(utterance);
            }
        }
        public async Task ShouldGetAppList()
        {
            var client = new LuisProgClient(SUBSCRIPTION_KEY, LOCATION);
            var apps   = await client.GetAllAppsAsync();

            Assert.IsInstanceOfType(apps, typeof(IEnumerable <LuisApp>));
        }
Exemplo n.º 23
0
        public async Task ShoulAddBatchExample()
        {
            using (var client = new LuisProgClient(SubscriptionKey, Region))
            {
                if (await client.Intents.GetByNameAsync(IntentName, appId, appVersion) == null)
                {
                    await client.Intents.AddAsync(IntentName, appId, appVersion);
                }

                List <Example> examples = new List <Example>();
                examples.Add(new Example
                {
                    Text       = "Hello World!",
                    IntentName = IntentName
                });

                examples.Add(new Example
                {
                    Text       = "This is a test Utterance",
                    IntentName = IntentName
                });

                var addExamples = await client.Examples.AddBatchAsync(appId, appVersion, examples.ToArray());

                Assert.Equal(2, addExamples.Length);
            }
        }
Exemplo n.º 24
0
 /// <summary>
 /// LUIS 트레이닝
 /// </summary>
 /// <param name="appID"></param>
 /// <param name="appVersion"></param>
 /// <param name="authoringKey"></param>
 /// <returns></returns>
 private async Task <TrainingDetails> LuisTrain(string appID, string appVersion, string authoringKey)
 {
     using (var client = new LuisProgClient(authoringKey, Regions.WestUS))
     {
         return(await client.Training.TrainAsync(appID, appVersion));
     }
 }
        public async Task ShouldThrowExceptionOnRenameAppSDKTestWhenExistsAppWithSameName()
        {
            using (var client = new LuisProgClient(SubscriptionKey, Region))
            {
                var app = await client.GetAppByNameAsync("SDKTest");

                var appChanged = await client.GetAppByNameAsync("SDKTestChanged");

                string appChangedId = null;

                if (app == null)
                {
                    await client.AddAppAsync("SDKTest", "Description test", "en-us", "SDKTest", string.Empty, appVersion);

                    app = await client.GetAppByNameAsync("SDKTest");
                }
                if (appChanged == null)
                {
                    appChangedId = await client.AddAppAsync("SDKTestChanged", "Description changed", "en-us", "SDKTest", string.Empty, appVersion);
                }

                var ex = await Assert.ThrowsExceptionAsync <Exception>(() =>
                                                                       client.RenameAppAsync(app.Id, "SDKTestChanged", "Description changed"));

                Assert.AreEqual(ex.Message, "BadArgument - SDKTestChanged already exists.");
            }
        }
Exemplo n.º 26
0
 /// <summary>
 /// LUIS 게시하기
 /// </summary>
 /// <param name="appID"></param>
 /// <param name="appVersion"></param>
 /// <param name="authoringKey"></param>
 /// <returns></returns>
 private async Task <Publish> LuisPublish(string appID, string appVersion, string authoringKey)
 {
     using (var client = new LuisProgClient(authoringKey, Regions.WestUS))
     {
         return(await client.Publishing.PublishAsync(appID, appVersion, false, false));
     }
 }
        public async Task ShouldRenameIntentTest()
        {
            using (var client = new LuisProgClient(SubscriptionKey, Region))
            {
                var intent = await client.GetIntentByNameAsync(IntentName, appId, appVersion);

                var intentChanged = await client.GetIntentByNameAsync(IntentNameChanged, appId, appVersion);

                if (intent == null)
                {
                    await client.AddIntentAsync(IntentName, appId, appVersion);

                    intent = await client.GetIntentByNameAsync(IntentName, appId, appVersion);
                }

                if (intentChanged != null)
                {
                    await client.DeleteIntentAsync(intentChanged.Id, appId, appVersion);
                }

                await client.RenameIntentAsync(intent.Id, IntentNameChanged, appId, appVersion);

                intent = await client.GetIntentByIdAsync(intent.Id, appId, appVersion);

                Assert.AreEqual(IntentNameChanged, intent.Name);
            }
        }
Exemplo n.º 28
0
        public async Task ShouldGetExistClosedListEntityById()
        {
            using (var client = new LuisProgClient(SubscriptionKey, Region))
            {
                var entities = await client.Entities.GetAllClosedListEntitiesAsync(appId, appVersion);

                if (entities.Count == 0)
                {
                    var subList = new List <ClosedListItem>
                    {
                        new ClosedListItem()
                        {
                            CanonicalForm = "Test", List = new[] { "value1", "value2" }
                        }
                    };

                    await client.Entities.AddClosedListEntityAsync(ClosedListEntityName, subList, appId, appVersion);

                    entities = await client.Entities.GetAllClosedListEntitiesAsync(appId, appVersion);
                }

                var firstEntity = entities.FirstOrDefault();

                var entity = await client.Entities.GetClosedListEntityByIdAsync(firstEntity.Id, appId, appVersion);

                Assert.Equal(firstEntity.Name, entity.Name);
                Assert.Single(firstEntity.SubLists);
            }
        }
        public async Task ShouldDeleteIntentAndUtterancesTest()
        {
            using (var client = new LuisProgClient(SubscriptionKey, Region))
            {
                if (await client.GetIntentByNameAsync(IntentName, appId, appVersion) == null)
                {
                    await client.AddIntentAsync(IntentName, appId, appVersion);
                }

                // Add example for the intent
                var exampleAdded = await client.AddExampleAsync(appId, appVersion, new Example()
                {
                    IntentName = IntentName,
                    Text       = "This is sample utterance"
                });

                if (!string.IsNullOrEmpty(exampleAdded?.UtteranceText))
                {
                    var intent = await client.GetIntentByNameAsync(IntentName, appId, appVersion);

                    await client.DeleteIntentAsync(intent.Id, appId, appVersion, true);

                    // TODO : once the get exampleById available, get the exmaple and assert for null
                    intent = await client.GetIntentByIdAsync(intent.Id, appId, appVersion);

                    Assert.IsNull(intent);
                }
            }
        }
 /// <summary>
 /// Luis Utterance 신규등록처리
 /// </summary>
 /// <param name="appID"></param>
 /// <param name="appVersion"></param>
 /// <param name="authoringKey"></param>
 /// <param name="example"></param>
 /// <returns></returns>
 private async Task <Utterance> LuisCreateUtterance(string appID, string appVersion, string authoringKey, Example example)
 {
     using (var client = new LuisProgClient(authoringKey, Regions.WestUS))
     {
         return(await client.Examples.AddAsync(appID, appVersion, example));
     }
 }