From 32f65ae07a46527b389866709c53864345f852d8 Mon Sep 17 00:00:00 2001 From: Oceania2018 Date: Thu, 4 Oct 2018 16:18:46 -0500 Subject: [PATCH 1/4] finish training for rasa nlu. --- BotSharp.Core/PlatformBuilderBase.cs | 22 +++++++++++++++++++ .../IPlatformBuilder.cs | 2 +- BotSharp.WebHost/BotSharp.WebHost.csproj | 4 ---- BotSharp.WebHost/Startup.cs | 2 +- BotSharp.sln | 20 ----------------- 5 files changed, 24 insertions(+), 26 deletions(-) diff --git a/BotSharp.Core/PlatformBuilderBase.cs b/BotSharp.Core/PlatformBuilderBase.cs index 56618ee8..802d8820 100644 --- a/BotSharp.Core/PlatformBuilderBase.cs +++ b/BotSharp.Core/PlatformBuilderBase.cs @@ -1,6 +1,7 @@ using BotSharp.Core.Engines; using BotSharp.Platform.Abstraction; using BotSharp.Platform.Models; +using BotSharp.Platform.Models.MachineLearning; using DotNetToolkit; using Microsoft.Extensions.Configuration; using Newtonsoft.Json; @@ -9,6 +10,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; +using System.Threading.Tasks; namespace BotSharp.Core { @@ -70,6 +72,26 @@ namespace BotSharp.Core return Storage.FetchByName(agentName); } + public virtual async Task Train(TAgent agent, TrainingCorpus corpus, BotTrainOptions options) + { + if (String.IsNullOrEmpty(options.AgentDir)) + { + options.AgentDir = Path.Combine(AppDomain.CurrentDomain.GetData("DataPath").ToString(), "Projects", agent.Id); + } + + if (String.IsNullOrEmpty(options.Model)) + { + options.Model = "model_" + DateTime.UtcNow.ToString("yyyyMMdd"); + } + + var trainer = new BotTrainer(); + agent.Corpus = corpus; + + var info = await trainer.Train(agent, options); + + return info; + } + public virtual bool SaveAgent(TAgent agent) { GetStorage(); diff --git a/BotSharp.Platform.Abstraction/IPlatformBuilder.cs b/BotSharp.Platform.Abstraction/IPlatformBuilder.cs index c04b98be..4e3a470b 100644 --- a/BotSharp.Platform.Abstraction/IPlatformBuilder.cs +++ b/BotSharp.Platform.Abstraction/IPlatformBuilder.cs @@ -48,7 +48,7 @@ namespace BotSharp.Platform.Abstraction /// bool SaveAgent(TAgent agent); - Task Train(TAgent agent, TrainingCorpus corpus); + Task Train(TAgent agent, TrainingCorpus corpus, BotTrainOptions options); AiResponse TextRequest(AiRequest request); } diff --git a/BotSharp.WebHost/BotSharp.WebHost.csproj b/BotSharp.WebHost/BotSharp.WebHost.csproj index 96920fdc..68c7fd5b 100644 --- a/BotSharp.WebHost/BotSharp.WebHost.csproj +++ b/BotSharp.WebHost/BotSharp.WebHost.csproj @@ -74,10 +74,6 @@ - - - - PreserveNewest diff --git a/BotSharp.WebHost/Startup.cs b/BotSharp.WebHost/Startup.cs index 85fc4940..77541628 100644 --- a/BotSharp.WebHost/Startup.cs +++ b/BotSharp.WebHost/Startup.cs @@ -142,7 +142,7 @@ namespace BotSharp.WebHost }; Console.WriteLine(); - Console.WriteLineFormatted("Platform Emulator: {0} powered by {1} engine.", Color.White, settings); + Console.WriteLineFormatted("{0} platform emulator powered by {1} engine.", Color.White, settings); Console.WriteLine(); } } diff --git a/BotSharp.sln b/BotSharp.sln index d51a8768..ed4e217b 100644 --- a/BotSharp.sln +++ b/BotSharp.sln @@ -22,10 +22,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BotSharp.Platform.Abstracti EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BotSharp.Platform.Models", "BotSharp.Platform.Models\BotSharp.Platform.Models.csproj", "{C4F2EAE5-F2C7-4F52-9DB2-7E76D7080C72}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BotSharp.Platform.Dialogflow", "..\botsharp-dialogflow\BotSharp.Platform.Dialogflow\BotSharp.Platform.Dialogflow.csproj", "{B865F070-9693-47C6-B901-40121F659C6F}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BotSharp.Platform.Rasa", "..\botsharp-rasa\BotSharp.Platform.Rasa\BotSharp.Platform.Rasa.csproj", "{87C265EF-3A8A-4290-8AD2-33504168F653}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -90,22 +86,6 @@ Global {C4F2EAE5-F2C7-4F52-9DB2-7E76D7080C72}.Release|Any CPU.Build.0 = Release|Any CPU {C4F2EAE5-F2C7-4F52-9DB2-7E76D7080C72}.Release|x64.ActiveCfg = Release|Any CPU {C4F2EAE5-F2C7-4F52-9DB2-7E76D7080C72}.Release|x64.Build.0 = Release|Any CPU - {B865F070-9693-47C6-B901-40121F659C6F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B865F070-9693-47C6-B901-40121F659C6F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B865F070-9693-47C6-B901-40121F659C6F}.Debug|x64.ActiveCfg = Debug|Any CPU - {B865F070-9693-47C6-B901-40121F659C6F}.Debug|x64.Build.0 = Debug|Any CPU - {B865F070-9693-47C6-B901-40121F659C6F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B865F070-9693-47C6-B901-40121F659C6F}.Release|Any CPU.Build.0 = Release|Any CPU - {B865F070-9693-47C6-B901-40121F659C6F}.Release|x64.ActiveCfg = Release|Any CPU - {B865F070-9693-47C6-B901-40121F659C6F}.Release|x64.Build.0 = Release|Any CPU - {87C265EF-3A8A-4290-8AD2-33504168F653}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {87C265EF-3A8A-4290-8AD2-33504168F653}.Debug|Any CPU.Build.0 = Debug|Any CPU - {87C265EF-3A8A-4290-8AD2-33504168F653}.Debug|x64.ActiveCfg = Debug|Any CPU - {87C265EF-3A8A-4290-8AD2-33504168F653}.Debug|x64.Build.0 = Debug|Any CPU - {87C265EF-3A8A-4290-8AD2-33504168F653}.Release|Any CPU.ActiveCfg = Release|Any CPU - {87C265EF-3A8A-4290-8AD2-33504168F653}.Release|Any CPU.Build.0 = Release|Any CPU - {87C265EF-3A8A-4290-8AD2-33504168F653}.Release|x64.ActiveCfg = Release|Any CPU - {87C265EF-3A8A-4290-8AD2-33504168F653}.Release|x64.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From 081e6474de1b91146d34a92378d0b9f21bfed38b Mon Sep 17 00:00:00 2001 From: Obrain2016 Date: Thu, 4 Oct 2018 19:03:45 -0500 Subject: [PATCH 2/4] Create docker-compose-articulateui0.1.0.yml --- .../docker-compose-articulateui0.1.0.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 dockerfiles/docker-compose-articulateui0.1.0.yml diff --git a/dockerfiles/docker-compose-articulateui0.1.0.yml b/dockerfiles/docker-compose-articulateui0.1.0.yml new file mode 100644 index 00000000..7e3c9142 --- /dev/null +++ b/dockerfiles/docker-compose-articulateui0.1.0.yml @@ -0,0 +1,17 @@ +version: '3.0' + +services: + ui: + image: botsharpdocker/botsharp-articulateui:0.1.0 + ports: ['0.0.0.0:3000:3000'] + networks: ['botsharp-network'] + environment: + - rasanluendpoint=http://botsharp:7500 + + botsharp: + image: botsharpdocker/botsharp-articulate:0.1.0 + ports: ['0.0.0.0:7500:7500'] + networks: ['botsharp-network'] + + +networks: {botsharp-network: {}} From d3a56bb8228605fee7e165aad8c9433bdc64b79e Mon Sep 17 00:00:00 2001 From: Obrain2016 Date: Thu, 4 Oct 2018 19:04:17 -0500 Subject: [PATCH 3/4] Rename docker-compose-articulateui0.1.0.yml to docker-compose-articulateui-0.1.0.yml --- ...rticulateui0.1.0.yml => docker-compose-articulateui-0.1.0.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename dockerfiles/{docker-compose-articulateui0.1.0.yml => docker-compose-articulateui-0.1.0.yml} (100%) diff --git a/dockerfiles/docker-compose-articulateui0.1.0.yml b/dockerfiles/docker-compose-articulateui-0.1.0.yml similarity index 100% rename from dockerfiles/docker-compose-articulateui0.1.0.yml rename to dockerfiles/docker-compose-articulateui-0.1.0.yml From 9250a66ba6da46377733783cc641fd36f5acab25 Mon Sep 17 00:00:00 2001 From: Oceania2018 Date: Thu, 4 Oct 2018 20:57:10 -0500 Subject: [PATCH 4/4] load platform emulator dynamically --- .../PlatformServiceCollectionExtensions.cs | 53 +++++++++++++++++++ BotSharp.WebHost/BotSharp.WebHost.csproj | 9 +++- BotSharp.WebHost/BotSharp.WebHost.csproj.user | 2 +- .../Properties/PublishProfiles/Docker.pubxml | 22 ++++++++ .../PublishProfiles/Docker.pubxml.user | 11 ++++ BotSharp.WebHost/Settings/app.json | 1 + BotSharp.WebHost/Startup.cs | 35 +++--------- BotSharp.sln | 44 +++++++++++++++ 8 files changed, 147 insertions(+), 30 deletions(-) create mode 100644 BotSharp.Core/PlatformServiceCollectionExtensions.cs create mode 100644 BotSharp.WebHost/Properties/PublishProfiles/Docker.pubxml create mode 100644 BotSharp.WebHost/Properties/PublishProfiles/Docker.pubxml.user diff --git a/BotSharp.Core/PlatformServiceCollectionExtensions.cs b/BotSharp.Core/PlatformServiceCollectionExtensions.cs new file mode 100644 index 00000000..d2447ada --- /dev/null +++ b/BotSharp.Core/PlatformServiceCollectionExtensions.cs @@ -0,0 +1,53 @@ +using Colorful; +using Microsoft.Extensions.Configuration; +using System; +using System.Collections.Generic; +using System.Drawing; +using System.IO; +using System.Reflection; +using System.Text; +using Console = Colorful.Console; + +namespace Microsoft.Extensions.DependencyInjection +{ + public static class PlatformServiceCollectionExtensions + { + public static IServiceCollection AddPlatformEmulator(this IServiceCollection services, IConfiguration configuration, Action action) + { + var platform = configuration.GetValue("Platform"); + var platformAssemblyName = configuration.GetValue("platformAssemblyName"); + var engine = configuration.GetValue($"{platform}:BotEngine"); + + Formatter[] settings = new Formatter[] + { + new Formatter(platform, Color.Yellow), + new Formatter(platformAssemblyName, Color.Yellow), + new Formatter(engine, Color.Yellow), + }; + + // load platform emulator dynamically + Console.WriteLine(); + + var platformDllPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"{platformAssemblyName}.dll"); + if (File.Exists(platformDllPath)) + { + Assembly library = Assembly.LoadFile(platformDllPath); + action(library); + Console.WriteLineFormatted("Loaded {0} platform emulator from {1} assembly which is using {2} engine.", Color.White, settings); + } + else + { + Console.WriteLine($"Can't load {platformAssemblyName} assembly."); + } + + Console.WriteLine(); + + /*Type myClass = (from type in library.GetExportedTypes() + where typeof(IMyInterface).IsAssignableFrom(type) + select type) + .Single();*/ + + return services; + } + } +} diff --git a/BotSharp.WebHost/BotSharp.WebHost.csproj b/BotSharp.WebHost/BotSharp.WebHost.csproj index 68c7fd5b..ae9a330a 100644 --- a/BotSharp.WebHost/BotSharp.WebHost.csproj +++ b/BotSharp.WebHost/BotSharp.WebHost.csproj @@ -31,21 +31,25 @@ + + + + @@ -63,7 +67,6 @@ - @@ -74,6 +77,10 @@ + + + + PreserveNewest diff --git a/BotSharp.WebHost/BotSharp.WebHost.csproj.user b/BotSharp.WebHost/BotSharp.WebHost.csproj.user index e1c26c60..ec8e513b 100644 --- a/BotSharp.WebHost/BotSharp.WebHost.csproj.user +++ b/BotSharp.WebHost/BotSharp.WebHost.csproj.user @@ -2,7 +2,7 @@ BotSharp.WebHost - RASA + Docker ProjectDebugger diff --git a/BotSharp.WebHost/Properties/PublishProfiles/Docker.pubxml b/BotSharp.WebHost/Properties/PublishProfiles/Docker.pubxml new file mode 100644 index 00000000..65e0607a --- /dev/null +++ b/BotSharp.WebHost/Properties/PublishProfiles/Docker.pubxml @@ -0,0 +1,22 @@ + + + + + FileSystem + FileSystem + Release + Any CPU + + True + False + 03dca427-327a-4fc9-9a2f-57d17f16708c + publish\ + True + netcoreapp2.1 + false + <_IsPortable>true + + \ No newline at end of file diff --git a/BotSharp.WebHost/Properties/PublishProfiles/Docker.pubxml.user b/BotSharp.WebHost/Properties/PublishProfiles/Docker.pubxml.user new file mode 100644 index 00000000..1c02563d --- /dev/null +++ b/BotSharp.WebHost/Properties/PublishProfiles/Docker.pubxml.user @@ -0,0 +1,11 @@ + + + + + + <_PublishTargetUrl>C:\Users\haipi\Documents\Projects\BotSharp\BotSharp.WebHost\publish\ + + \ No newline at end of file diff --git a/BotSharp.WebHost/Settings/app.json b/BotSharp.WebHost/Settings/app.json index 4c647dff..58a0a84f 100644 --- a/BotSharp.WebHost/Settings/app.json +++ b/BotSharp.WebHost/Settings/app.json @@ -2,6 +2,7 @@ "assemblies": "BotSharp.Core", "platform": "DialogflowAi", + "platformAssemblyName": "BotSharp.Platform.Dialogflow", "version": "0.1.0", diff --git a/BotSharp.WebHost/Startup.cs b/BotSharp.WebHost/Startup.cs index 77541628..b0d514e0 100644 --- a/BotSharp.WebHost/Startup.cs +++ b/BotSharp.WebHost/Startup.cs @@ -1,10 +1,8 @@ -using Colorful; -using DotNetToolkit.JwtHelper; +using DotNetToolkit.JwtHelper; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.PlatformAbstractions; using Newtonsoft.Json.Serialization; using Swashbuckle.AspNetCore.Swagger; using System; @@ -12,8 +10,6 @@ using System.Collections.Generic; using System.Drawing; using System.IO; using System.Linq; -using System.Reflection; -using Console = Colorful.Console; namespace BotSharp.WebHost { @@ -31,7 +27,7 @@ namespace BotSharp.WebHost services.AddCors(); services.AddJwtAuth(Configuration); - services.AddMvc(options => + var mvcBuilder = services.AddMvc(options => { options.RespectBrowserAcceptHeader = true; }).AddJsonOptions(options => @@ -40,6 +36,8 @@ namespace BotSharp.WebHost options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); }); + services.AddPlatformEmulator(Configuration, assembly => mvcBuilder.AddApplicationPart(assembly)); + services.AddSwaggerGen(c => { c.AddSecurityDefinition("Bearer", new ApiKeyScheme() @@ -94,9 +92,9 @@ namespace BotSharp.WebHost c.DocumentTitle = info.Title; c.InjectStylesheet(Configuration.GetValue("Swagger:Stylesheet")); - Console.WriteLine($"{info.Title} [{info.Version}] {info.License.Name}", Color.Gray); - Console.WriteLine($"{info.Description}", Color.Gray); - Console.WriteLine($"{info.Contact.Name}", Color.Gray); + Console.WriteLine($"{info.Title} [{info.Version}] {info.License.Name}"); + Console.WriteLine($"{info.Description}"); + Console.WriteLine($"{info.Contact.Name}"); }); app.Use(async (context, next) => @@ -125,25 +123,6 @@ namespace BotSharp.WebHost loader.Env = env; loader.Config = Configuration; loader.Load();*/ - - // load dll dynamic - /*Assembly library = Assembly.LoadFile(Path.Combine(PlatformServices.Default.Application.ApplicationBasePath, "BotSharp.Platform.Articulate.dll")); - Type myClass = (from type in library.GetExportedTypes() - where typeof(IMyInterface).IsAssignableFrom(type) - select type) - .Single();*/ - - var platform = Configuration.GetValue("Platform"); - var engine = Configuration.GetValue($"{platform}:BotEngine"); - Formatter[] settings = new Formatter[] - { - new Formatter(platform, Color.Yellow), - new Formatter(engine, Color.Yellow), - }; - - Console.WriteLine(); - Console.WriteLineFormatted("{0} platform emulator powered by {1} engine.", Color.White, settings); - Console.WriteLine(); } } } \ No newline at end of file diff --git a/BotSharp.sln b/BotSharp.sln index ed4e217b..9321ee62 100644 --- a/BotSharp.sln +++ b/BotSharp.sln @@ -22,10 +22,14 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BotSharp.Platform.Abstracti EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BotSharp.Platform.Models", "BotSharp.Platform.Models\BotSharp.Platform.Models.csproj", "{C4F2EAE5-F2C7-4F52-9DB2-7E76D7080C72}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BotSharp.Platform.Dialogflow", "..\botsharp-dialogflow\BotSharp.Platform.Dialogflow\BotSharp.Platform.Dialogflow.csproj", "{83D56CDD-7122-48D3-9CDC-BCE21CB10681}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Debug|x64 = Debug|x64 + DIALOGFLOW|Any CPU = DIALOGFLOW|Any CPU + DIALOGFLOW|x64 = DIALOGFLOW|x64 Release|Any CPU = Release|Any CPU Release|x64 = Release|x64 EndGlobalSection @@ -34,6 +38,10 @@ Global {95780673-2A1A-4953-962F-C46CBFDD07FF}.Debug|Any CPU.Build.0 = Debug|Any CPU {95780673-2A1A-4953-962F-C46CBFDD07FF}.Debug|x64.ActiveCfg = Debug|x64 {95780673-2A1A-4953-962F-C46CBFDD07FF}.Debug|x64.Build.0 = Debug|x64 + {95780673-2A1A-4953-962F-C46CBFDD07FF}.DIALOGFLOW|Any CPU.ActiveCfg = DIALOGFLOW|Any CPU + {95780673-2A1A-4953-962F-C46CBFDD07FF}.DIALOGFLOW|Any CPU.Build.0 = DIALOGFLOW|Any CPU + {95780673-2A1A-4953-962F-C46CBFDD07FF}.DIALOGFLOW|x64.ActiveCfg = DIALOGFLOW|x64 + {95780673-2A1A-4953-962F-C46CBFDD07FF}.DIALOGFLOW|x64.Build.0 = DIALOGFLOW|x64 {95780673-2A1A-4953-962F-C46CBFDD07FF}.Release|Any CPU.ActiveCfg = Release|Any CPU {95780673-2A1A-4953-962F-C46CBFDD07FF}.Release|Any CPU.Build.0 = Release|Any CPU {95780673-2A1A-4953-962F-C46CBFDD07FF}.Release|x64.ActiveCfg = Release|x64 @@ -42,6 +50,10 @@ Global {03DCA427-327A-4FC9-9A2F-57D17F16708C}.Debug|Any CPU.Build.0 = Debug|Any CPU {03DCA427-327A-4FC9-9A2F-57D17F16708C}.Debug|x64.ActiveCfg = Debug|x64 {03DCA427-327A-4FC9-9A2F-57D17F16708C}.Debug|x64.Build.0 = Debug|x64 + {03DCA427-327A-4FC9-9A2F-57D17F16708C}.DIALOGFLOW|Any CPU.ActiveCfg = DIALOGFLOW|Any CPU + {03DCA427-327A-4FC9-9A2F-57D17F16708C}.DIALOGFLOW|Any CPU.Build.0 = DIALOGFLOW|Any CPU + {03DCA427-327A-4FC9-9A2F-57D17F16708C}.DIALOGFLOW|x64.ActiveCfg = DIALOGFLOW|x64 + {03DCA427-327A-4FC9-9A2F-57D17F16708C}.DIALOGFLOW|x64.Build.0 = DIALOGFLOW|x64 {03DCA427-327A-4FC9-9A2F-57D17F16708C}.Release|Any CPU.ActiveCfg = Release|Any CPU {03DCA427-327A-4FC9-9A2F-57D17F16708C}.Release|Any CPU.Build.0 = Release|Any CPU {03DCA427-327A-4FC9-9A2F-57D17F16708C}.Release|x64.ActiveCfg = Release|x64 @@ -50,6 +62,10 @@ Global {C2FDC855-BD88-4041-B0FF-3AA8A1C11A22}.Debug|Any CPU.Build.0 = Debug|Any CPU {C2FDC855-BD88-4041-B0FF-3AA8A1C11A22}.Debug|x64.ActiveCfg = Debug|x64 {C2FDC855-BD88-4041-B0FF-3AA8A1C11A22}.Debug|x64.Build.0 = Debug|x64 + {C2FDC855-BD88-4041-B0FF-3AA8A1C11A22}.DIALOGFLOW|Any CPU.ActiveCfg = DIALOGFLOW|Any CPU + {C2FDC855-BD88-4041-B0FF-3AA8A1C11A22}.DIALOGFLOW|Any CPU.Build.0 = DIALOGFLOW|Any CPU + {C2FDC855-BD88-4041-B0FF-3AA8A1C11A22}.DIALOGFLOW|x64.ActiveCfg = DIALOGFLOW|x64 + {C2FDC855-BD88-4041-B0FF-3AA8A1C11A22}.DIALOGFLOW|x64.Build.0 = DIALOGFLOW|x64 {C2FDC855-BD88-4041-B0FF-3AA8A1C11A22}.Release|Any CPU.ActiveCfg = Release|Any CPU {C2FDC855-BD88-4041-B0FF-3AA8A1C11A22}.Release|Any CPU.Build.0 = Release|Any CPU {C2FDC855-BD88-4041-B0FF-3AA8A1C11A22}.Release|x64.ActiveCfg = Release|x64 @@ -58,6 +74,10 @@ Global {8A1F6277-FFCB-4CCD-B798-876D8BE525A9}.Debug|Any CPU.Build.0 = Debug|Any CPU {8A1F6277-FFCB-4CCD-B798-876D8BE525A9}.Debug|x64.ActiveCfg = Debug|x64 {8A1F6277-FFCB-4CCD-B798-876D8BE525A9}.Debug|x64.Build.0 = Debug|x64 + {8A1F6277-FFCB-4CCD-B798-876D8BE525A9}.DIALOGFLOW|Any CPU.ActiveCfg = DIALOGFLOW|Any CPU + {8A1F6277-FFCB-4CCD-B798-876D8BE525A9}.DIALOGFLOW|Any CPU.Build.0 = DIALOGFLOW|Any CPU + {8A1F6277-FFCB-4CCD-B798-876D8BE525A9}.DIALOGFLOW|x64.ActiveCfg = DIALOGFLOW|x64 + {8A1F6277-FFCB-4CCD-B798-876D8BE525A9}.DIALOGFLOW|x64.Build.0 = DIALOGFLOW|x64 {8A1F6277-FFCB-4CCD-B798-876D8BE525A9}.Release|Any CPU.ActiveCfg = Release|Any CPU {8A1F6277-FFCB-4CCD-B798-876D8BE525A9}.Release|Any CPU.Build.0 = Release|Any CPU {8A1F6277-FFCB-4CCD-B798-876D8BE525A9}.Release|x64.ActiveCfg = Release|x64 @@ -66,6 +86,10 @@ Global {30F80E7D-951A-4E8F-9C3C-2C866528EABD}.Debug|Any CPU.Build.0 = Debug|Any CPU {30F80E7D-951A-4E8F-9C3C-2C866528EABD}.Debug|x64.ActiveCfg = Debug|x64 {30F80E7D-951A-4E8F-9C3C-2C866528EABD}.Debug|x64.Build.0 = Debug|x64 + {30F80E7D-951A-4E8F-9C3C-2C866528EABD}.DIALOGFLOW|Any CPU.ActiveCfg = DIALOGFLOW|Any CPU + {30F80E7D-951A-4E8F-9C3C-2C866528EABD}.DIALOGFLOW|Any CPU.Build.0 = DIALOGFLOW|Any CPU + {30F80E7D-951A-4E8F-9C3C-2C866528EABD}.DIALOGFLOW|x64.ActiveCfg = DIALOGFLOW|x64 + {30F80E7D-951A-4E8F-9C3C-2C866528EABD}.DIALOGFLOW|x64.Build.0 = DIALOGFLOW|x64 {30F80E7D-951A-4E8F-9C3C-2C866528EABD}.Release|Any CPU.ActiveCfg = Release|Any CPU {30F80E7D-951A-4E8F-9C3C-2C866528EABD}.Release|Any CPU.Build.0 = Release|Any CPU {30F80E7D-951A-4E8F-9C3C-2C866528EABD}.Release|x64.ActiveCfg = Release|x64 @@ -74,6 +98,10 @@ Global {62F08F9F-16C2-4754-90B0-B604DC18AE23}.Debug|Any CPU.Build.0 = Debug|Any CPU {62F08F9F-16C2-4754-90B0-B604DC18AE23}.Debug|x64.ActiveCfg = Debug|Any CPU {62F08F9F-16C2-4754-90B0-B604DC18AE23}.Debug|x64.Build.0 = Debug|Any CPU + {62F08F9F-16C2-4754-90B0-B604DC18AE23}.DIALOGFLOW|Any CPU.ActiveCfg = Debug|Any CPU + {62F08F9F-16C2-4754-90B0-B604DC18AE23}.DIALOGFLOW|Any CPU.Build.0 = Debug|Any CPU + {62F08F9F-16C2-4754-90B0-B604DC18AE23}.DIALOGFLOW|x64.ActiveCfg = Debug|Any CPU + {62F08F9F-16C2-4754-90B0-B604DC18AE23}.DIALOGFLOW|x64.Build.0 = Debug|Any CPU {62F08F9F-16C2-4754-90B0-B604DC18AE23}.Release|Any CPU.ActiveCfg = Release|Any CPU {62F08F9F-16C2-4754-90B0-B604DC18AE23}.Release|Any CPU.Build.0 = Release|Any CPU {62F08F9F-16C2-4754-90B0-B604DC18AE23}.Release|x64.ActiveCfg = Release|Any CPU @@ -82,10 +110,26 @@ Global {C4F2EAE5-F2C7-4F52-9DB2-7E76D7080C72}.Debug|Any CPU.Build.0 = Debug|Any CPU {C4F2EAE5-F2C7-4F52-9DB2-7E76D7080C72}.Debug|x64.ActiveCfg = Debug|Any CPU {C4F2EAE5-F2C7-4F52-9DB2-7E76D7080C72}.Debug|x64.Build.0 = Debug|Any CPU + {C4F2EAE5-F2C7-4F52-9DB2-7E76D7080C72}.DIALOGFLOW|Any CPU.ActiveCfg = Debug|Any CPU + {C4F2EAE5-F2C7-4F52-9DB2-7E76D7080C72}.DIALOGFLOW|Any CPU.Build.0 = Debug|Any CPU + {C4F2EAE5-F2C7-4F52-9DB2-7E76D7080C72}.DIALOGFLOW|x64.ActiveCfg = Debug|Any CPU + {C4F2EAE5-F2C7-4F52-9DB2-7E76D7080C72}.DIALOGFLOW|x64.Build.0 = Debug|Any CPU {C4F2EAE5-F2C7-4F52-9DB2-7E76D7080C72}.Release|Any CPU.ActiveCfg = Release|Any CPU {C4F2EAE5-F2C7-4F52-9DB2-7E76D7080C72}.Release|Any CPU.Build.0 = Release|Any CPU {C4F2EAE5-F2C7-4F52-9DB2-7E76D7080C72}.Release|x64.ActiveCfg = Release|Any CPU {C4F2EAE5-F2C7-4F52-9DB2-7E76D7080C72}.Release|x64.Build.0 = Release|Any CPU + {83D56CDD-7122-48D3-9CDC-BCE21CB10681}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {83D56CDD-7122-48D3-9CDC-BCE21CB10681}.Debug|Any CPU.Build.0 = Debug|Any CPU + {83D56CDD-7122-48D3-9CDC-BCE21CB10681}.Debug|x64.ActiveCfg = Debug|Any CPU + {83D56CDD-7122-48D3-9CDC-BCE21CB10681}.Debug|x64.Build.0 = Debug|Any CPU + {83D56CDD-7122-48D3-9CDC-BCE21CB10681}.DIALOGFLOW|Any CPU.ActiveCfg = DIALOGFLOW|Any CPU + {83D56CDD-7122-48D3-9CDC-BCE21CB10681}.DIALOGFLOW|Any CPU.Build.0 = DIALOGFLOW|Any CPU + {83D56CDD-7122-48D3-9CDC-BCE21CB10681}.DIALOGFLOW|x64.ActiveCfg = DIALOGFLOW|Any CPU + {83D56CDD-7122-48D3-9CDC-BCE21CB10681}.DIALOGFLOW|x64.Build.0 = DIALOGFLOW|Any CPU + {83D56CDD-7122-48D3-9CDC-BCE21CB10681}.Release|Any CPU.ActiveCfg = Release|Any CPU + {83D56CDD-7122-48D3-9CDC-BCE21CB10681}.Release|Any CPU.Build.0 = Release|Any CPU + {83D56CDD-7122-48D3-9CDC-BCE21CB10681}.Release|x64.ActiveCfg = Release|Any CPU + {83D56CDD-7122-48D3-9CDC-BCE21CB10681}.Release|x64.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE