private async Task <string> ImportFoldVersion(ApplicationVersionModel applicationVersion, FoldModel fold, string versionName) { var foldVersion = applicationVersion.DeepClone(); foldVersion.Utterances = fold.TrainingSet.ToArray(); foldVersion.Intents = foldVersion.Intents.Where(x => foldVersion.Utterances.Any(y => y.Intent == x.Name)).ToArray(); var response = await _luisClient.ImportVersion(_applicationId, versionName, foldVersion); return(response); }
private async Task <string> RunExperiment(ApplicationVersionModel applicationVersion, FoldModel fold, int index) { var versionId = Guid.NewGuid().ToString().Substring(0, 5) + index; try { Console.WriteLine($"Uploading Version: {index}"); await ImportFoldVersion(applicationVersion, fold, versionId); ColoredConsole.WriteLine($"Success Uploading Version: {index}", ConsoleColor.Green); Console.WriteLine($"Training Version: {index}"); await _luisClient.TrainVersion(_applicationId, versionId); await this.WaitForTraining(versionId); ColoredConsole.WriteLine($"Success Training Version: {versionId}", ConsoleColor.Green); var testId = (await _luisClient.CreateTestDataSet(_applicationId, versionId, fold.TestSet.ToArray())).DeserializeObject <string>(); return(await _luisClient.RunDataSetTest(_applicationId, versionId, testId)); } catch (Exception e) { ColoredConsole.WriteLine(e.Message, ConsoleColor.Red); throw; } }