in src/common/details/ai_python_generative_sdk/AiSdkConsoleGui_PickOrCreate_AiHubProject.cs [35:121]
public static async Task<AiHubProjectInfo> ConfigAiHubProject(
ICommandValues values,
AiHubProjectInfo project,
bool createdProject,
bool allowSkipSearch,
string subscription,
string resourceId,
string groupName,
string openAiEndpoint,
string openAiKey,
string searchEndpoint,
string searchKey)
{
var createdOrPickedSearch = false;
if (!createdProject)
{
openAiEndpoint = string.Empty;
openAiKey = string.Empty;
searchEndpoint = string.Empty;
searchKey = string.Empty;
createdOrPickedSearch = false;
(var hubName, var openai, var search) = await VerifyResourceConnections(values, subscription, project.Group, project.Name);
var alreadyPickedDeployments = values.GetOrDefault("service.openai.deployments.picked", "false") == "true";
if (alreadyPickedDeployments)
{
openAiEndpoint = values["service.openai.endpoint"];
openAiKey = values["service.openai.key"];
}
else if (!string.IsNullOrEmpty(openai?.Name))
{
var (chatDeployment, embeddingsDeployment, evaluationDeployment, keys) = await AzCliConsoleGui.PickOrCreateAndConfigCognitiveServicesOpenAiKindResourceDeployments(values, "AZURE OPENAI RESOURCE", true, subscription, openai.Value);
openAiEndpoint = openai.Value.Endpoint;
openAiKey = keys.Key1;
}
else
{
var openAiResource = await AzCliConsoleGui.PickOrCreateAndConfigCognitiveServicesOpenAiKindResource(values, true, subscription);
openAiEndpoint = openAiResource.Endpoint;
openAiKey = openAiResource.Key;
}
if (!string.IsNullOrEmpty(search?.Name))
{
var keys = await AzCliConsoleGui.LoadSearchResourceKeys(subscription, search.Value);
ConfigSetHelpers.ConfigSearchResource(search.Value.Endpoint, keys.Key1);
searchEndpoint = search.Value.Endpoint;
searchKey = keys.Key1;
}
else
{
var pickedOrCreated = await AzCliConsoleGui.PickOrCreateAndConfigCogSearchResource(allowSkipSearch, subscription, null, null, project.Name, "aiproj");
createdOrPickedSearch = pickedOrCreated != null;
if (createdOrPickedSearch)
{
searchEndpoint = pickedOrCreated.Value.Endpoint;
searchKey = pickedOrCreated.Value.Key;
}
}
}
Program.Telemetry.Wrap(
() => GetOrCreateAiHubProjectConnections(values, createdProject || createdOrPickedSearch, subscription, project.Group, project.Name, openAiEndpoint, openAiKey, searchEndpoint, searchKey),
(outcome, ex, duration) => new InitTelemetryEvent(InitStage.Connections)
{
Outcome = outcome,
// TODO set selected?
RunId = values.GetOrDefault("telemetry.init.run_id", null),
RunType = values.GetOrDefault("telemetry.init.run_type", null),
DurationInMs = duration.TotalMilliseconds,
Error = ex?.Message
});
Program.Telemetry.Wrap(
() => CreateAiHubProjectConfigJsonFile(subscription, project.Group, project.Name),
(outcome, ex, duration) => new InitTelemetryEvent(InitStage.Save)
{
Outcome = outcome,
RunId = values.GetOrDefault("telemetry.init.run_id", null),
RunType = values.GetOrDefault("telemetry.init.run_type", null),
DurationInMs = duration.TotalMilliseconds,
Error = ex?.Message
});
return project;
}