in src/ai/commands/init_command.cs [53:114]
private async Task DoCommand(string command)
{
StartCommand();
DisplayInitServiceBanner();
var interactive = _values.GetOrDefault("init.service.interactive", true);
var runId = _values.GetOrAdd("telemetry.init.run_id", Guid.NewGuid);
switch (command)
{
#if USE_PYTHON_HUB_PROJECT_CONNECTION_OR_RELATED
case "init": await DoInitRootAsync(); break;
case "init.resource": await DoInitRootHubResource(interactive); break;
case "init.project": await DoInitRootProject(interactive, true, true); break;
case "init.project.new": await DoInitRootProject(interactive, true, false); break;
case "init.project.select": await DoInitRootProject(interactive, false, true); break;
#endif
case "init.aiservices": await DoInitRootCognitiveServicesAIServicesKind(interactive); break;
case "init.cognitiveservices": await DoInitRootCognitiveServicesCognitiveServicesKind(interactive); break;
case "init.inference": await DoInitRootAzureAiInference(interactive); break;
case "init.github": await DoInitRootGitHub(interactive); break;
case "init":
case "init.openai": await DoInitRootOpenAi(interactive, false, false, false, true, false, true); break;
case "init.openai.chat": await DoInitRootOpenAi(interactive, false, false, true, true, true, true); break;
case "init.openai.embeddings": await DoInitRootOpenAi(interactive, true, true, false, false, true, true); break;
case "init.openai.realtime": await DoInitRootOpenAi(interactive, true, true, true, true, false, false); break;
case "init.openai.deployments": await DoInitRootOpenAi(interactive, false, true, false, true, false, true); break;
case "init.search": await DoInitRootSearch(interactive); break;
case "init.speech": await DoInitRootSpeech(interactive); break;
case "init.vision": await DoInitRootVision(interactive); break;
// POST-IGNITE: TODO: add ability to init deployments
// TODO: ensure that deployments in "openai" flow can be skipped
default:
_values.AddThrowError("WARNING", $"Unknown command '{command}'");
break;
}
var outputEnvFile = _values.GetOrDefault("init.output.env.file", false);
if (outputEnvFile)
{
var fileName = ".env";
var env = ConfigEnvironmentHelpers.GetEnvironment(_values);
var fqn = ConfigEnvironmentHelpers.SaveEnvironment(env, fileName);
Console.WriteLine($"\n{fileName} (saved at '{fqn}')\n");
ConfigEnvironmentHelpers.PrintEnvironment(env);
}
StopCommand();
DisposeAfterStop();
DeleteTemporaryFiles();
}