/// <inheritdoc/> public INLUService CreateInstance(IConfiguration configuration, string settingsPath) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } var userDefinedName = configuration[LuisAppNameConfigurationKey]; var appName = userDefinedName ?? GetRandomName(configuration[LuisAppNamePrefixConfigurationKey]); var isStagingString = configuration[LuisIsStagingConfigurationKey]; var isStaging = isStagingString != null?bool.Parse(isStagingString) : false; var luisSettings = settingsPath != null ? JsonConvert.DeserializeObject <LuisSettings>(File.ReadAllText(settingsPath)) : new LuisSettings(); var luisSpeechKey = configuration[LuisSpeechKeyConfigurationKey]; var azureSubscriptionInfo = AzureSubscriptionInfo.Create( configuration[LuisSubscriptionIdConfigurationKey], configuration[LuisResourceGroupConfigurationKey], configuration[LuisAzureAppNameConfigurationKey], configuration[ArmTokenConfigurationKey]); var luisClient = luisSpeechKey != null ? new RestSpeechLuisClient( configuration[LuisAuthoringKeyConfigurationKey], configuration[LuisAuthoringRegionConfigurationKey], configuration[LuisEndpointKeyConfigurationKey], configuration[LuisEndpointRegionConfigurationKey], azureSubscriptionInfo, luisSpeechKey, isStaging) : new LuisClient( configuration[LuisAuthoringKeyConfigurationKey], configuration[LuisAuthoringRegionConfigurationKey], configuration[LuisEndpointKeyConfigurationKey], configuration[LuisEndpointRegionConfigurationKey], azureSubscriptionInfo, isStaging); return(new LuisNLUService( appName, configuration[LuisAppIdConfigurationKey], GetVersionId(configuration), luisSettings, luisClient)); }
public async Task <string> CreateAppAsync(string appName, CancellationToken cancellationToken) { var request = new ApplicationCreateObject { Name = appName, Culture = "en-us", }; // Creating LUIS app. var appId = await this.AuthoringClient.Apps.AddAsync(request, cancellationToken).ConfigureAwait(false); // Assign Azure resource to LUIS app. var azureSubscriptionInfo = AzureSubscriptionInfo.Create(this.LuisConfiguration); if (azureSubscriptionInfo != null) { await this.AssignAzureResourceAsync(azureSubscriptionInfo, appId).ConfigureAwait(false); } return(appId.ToString()); }