public static async Task PickOrCreateAndConfigCognitiveServicesOpenAiKindResource()

in src/common/details/azcli/AzCliConsoleGui_PickOrCreateAndConfig_CognitiveServicesResource_OpenAiKind.cs [23:84]


        public static async Task<AzCli.CognitiveServicesResourceInfoEx> PickOrCreateAndConfigCognitiveServicesOpenAiKindResource(
            INamedValues values,
            bool interactive,
            string subscriptionId,
            string regionFilter = null,
            string groupFilter = null,
            string resourceFilter = null,
            string kinds = null,
            string sku = null,
            bool yes = false,
            bool skipChat = false,
            bool allowSkipChat = true,
            bool skipEmbeddings = false,
            bool allowSkipEmbeddings = true,
            bool skipRealTime = false,
            bool allowSkipRealTime = true,
            string chatDeploymentFilter = null,
            string embeddingsDeploymentFilter = null,
            string realtimeDeploymentFilter = null,
            string chatModelFilter = null,
            string embeddingsModelFilter = null,
            string realtimeModelFilter = null)
        {
            kinds ??= "OpenAI;AIServices";
            var sectionHeader = "AZURE OPENAI RESOURCE";

            var regionLocation = !string.IsNullOrEmpty(regionFilter) ? await AzCliConsoleGui.PickRegionLocationAsync(interactive, regionFilter) : new AzCli.AccountRegionLocationInfo();
            var resource = await AzCliConsoleGui.PickOrCreateCognitiveResource(sectionHeader, interactive, subscriptionId, regionLocation.Name, groupFilter, resourceFilter, kinds, sku, yes);

            var (chatDeployment, embeddingsDeployment, realtimeDeployment, keys) = await PickOrCreateAndConfigCognitiveServicesOpenAiKindResourceDeployments(
                values,
                sectionHeader,
                interactive,
                subscriptionId,
                resource,
                skipChat,
                allowSkipChat,
                chatDeploymentFilter,
                chatModelFilter,
                skipEmbeddings,
                allowSkipEmbeddings,
                embeddingsDeploymentFilter,
                embeddingsModelFilter,
                skipRealTime,
                allowSkipRealTime,
                realtimeDeploymentFilter,
                realtimeModelFilter);

            return new AzCli.CognitiveServicesResourceInfoEx
            {
                Id = resource.Id,
                Group = resource.Group,
                Name = resource.Name,
                Kind = resource.Kind,
                RegionLocation = resource.RegionLocation,
                Endpoint = resource.Endpoint,
                Key = keys.Key1,
                ChatDeployment = chatDeployment.HasValue ? chatDeployment.Value.Name : null,
                EmbeddingsDeployment = embeddingsDeployment.HasValue ? embeddingsDeployment.Value.Name : null,
                RealTimeDeployment = realtimeDeployment.HasValue ? realtimeDeployment.Value.Name : null
            };
        }