Creare un hub usando Azure Machine Learning SDK e l'interfaccia della riga di comando (versione classica)

Si applica solo a:Portale di Foundry (versione classica). Questo articolo non è disponibile per il nuovo portale foundry. Altre informazioni sul nuovo portale.

Nota

I collegamenti in questo articolo potrebbero aprire contenuto nella nuova documentazione di Microsoft Foundry anziché nella documentazione di Foundry (versione classica) visualizzata.

Questo articolo illustra come creare le risorse seguenti Microsoft Foundry usando Azure Machine Learning SDK e interfaccia della riga di comando di Azure (con l'estensione Machine Learning):

  • Un hub della Foundry
  • Una connessione alla piattaforma Foundry

Nota

Un hub viene usato solo per un progetto basato su hub. Un progetto Foundry non usa un hub. Per altre informazioni, vedere Tipi di progetti.

Prerequisiti

Configurare l'ambiente

Usare le schede seguenti per selezionare se si usa Python SDK o interfaccia della riga di comando di Azure:

  1. Installare i pacchetti. Se in una cella del notebook, usare %pip install invece.

    pip install azure-ai-ml
    pip install azure-identity
    
  2. Specificare i dettagli della sottoscrizione:

    # Enter details of your subscription
    subscription_id = "<SUBSCRIPTION_ID>"
    resource_group = "<RESOURCE_GROUP>"
  3. Ottieni un riferimento alla sottoscrizione. Tutto il codice Python in questo articolo usa ml_client:

    # get a handle to the subscription
    
    from azure.ai.ml import MLClient
    from azure.identity import DefaultAzureCredential
    
    ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group)
  4. (Facoltativo) Se si dispone di più account, aggiungere l'ID tenant del Microsoft Entra ID che si vuole usare nel DefaultAzureCredential. Individuate l'ID tenant nel portale Azure sotto Microsoft Entra ID, Identità esterne.

    DefaultAzureCredential(interactive_browser_tenant_id="<TENANT_ID>")
    
  5. (Facoltativo) Se si lavora nelle aree Azure per enti pubblici - US o Azure China (21Vianet), specificare l'area in cui si vuole eseguire l'autenticazione. È possibile specificare l'area con DefaultAzureCredential. L'esempio seguente esegue l'autenticazione nell'area Azure per enti pubblici - Stati Uniti:

    from azure.identity import AzureAuthorityHosts
    DefaultAzureCredential(authority=AzureAuthorityHosts.AZURE_GOVERNMENT)
    
  6. Verificare la connessione.

    for hub in ml_client.workspaces.list():
        print(f"  - {hub.name}")
    

Se viene visualizzato un errore di autenticazione, assicurarsi che le credenziali di Azure siano configurate (eseguire az login o configurare le credenziali tramite Azure Identity SDK). Se ricevi un errore di autorizzazione, assicurati di avere il ruolo di Collaboratore nella sottoscrizione o nel gruppo di risorse.

Riferimenti: MLClient, DefaultAzureCredential

Creare l'hub Foundry e la connessione a Microsoft Foundry

Usare gli esempi seguenti per creare un nuovo hub. Sostituire i valori stringa di esempio con i propri valori:

from azure.ai.ml.entities import Hub

my_hub_name = "myexamplehub"
my_location = "East US"
my_display_name = "My Example Hub"

# Construct a basic hub
my_hub = Hub(
    name=my_hub_name,
    location=my_location,
    display_name=my_display_name
)

# Create the hub and wait for completion
created_hub = ml_client.workspaces.begin_create(my_hub).result()
print(f"Created hub: {created_hub.name}")

Questo codice crea un nuovo hub con il nome, la posizione e il nome visualizzato specificati. Azure effettua automaticamente il provisioning delle risorse Archiviazione di Azure e di Azure Key Vault associate.

Riferimenti: Hub, MLClient.workspaces.begin_create

Creare una connessione Foundry

Dopo aver creato una risorsa Foundry o Azure risorsa OpenAI nello stesso gruppo di risorse, è possibile connetterla all'hub. È anche possibile connettersi Azure AI Search da qualsiasi gruppo di risorse nella stessa sottoscrizione.

  1. Includi il tuo hub nella connessione ml_client.

    • Immettere i dettagli della sottoscrizione. Per <AML_WORKSPACE_NAME>immettere il nome dell'hub:

      # Enter details of your AML workspace
      subscription_id = "<SUBSCRIPTION_ID>"
      resource_group = "<RESOURCE_GROUP>"
      workspace = "<AML_WORKSPACE_NAME>"
    • Acquisire un identificatore per il nodo centrale:

      # get a handle to the workspace
      from azure.ai.ml import MLClient
      from azure.identity import DefaultAzureCredential
      
      ml_client = MLClient(
          DefaultAzureCredential(), subscription_id, resource_group, workspace
      )
  2. Usare ml_client per creare la connessione agli strumenti Foundry. Gli endpoint sono disponibili nel portale Azure in Gestione delle risorse > Chiavi ed endpoint. Per una risorsa Foundry, usare l'endpoint dei Servizi di Intelligenza Artificiale. Per Azure AI Search, usare l'URL per l'endpoint.

    from azure.ai.ml.entities import AzureAIServicesConnection
    
    # Construct a connection to Azure AI Services
    my_connection_name = "my-ai-services-connection"  # Any name you want
    aiservices_resource_name = "<your-resource-name>"  # From Azure portal
    my_endpoint = "<your-endpoint>"  # From Azure portal
    my_api_keys = None  # Leave blank to use Azure Entra ID (AAD) authentication
    my_ai_services_resource_id = f"/subscriptions/{subscription_id}/resourceGroups/{resource_group}/providers/Microsoft.CognitiveServices/accounts/{aiservices_resource_name}"
    
    my_connection = AzureAIServicesConnection(
        name=my_connection_name,
        endpoint=my_endpoint,
        api_key=my_api_keys,
        ai_services_resource_id=my_ai_services_resource_id
    )
    
    # Create the connection
    ml_client.connections.create_or_update(my_connection)
    print(f"Created connection: {my_connection.name}")
    

    Riferimenti: AzureAIServicesConnection, MLClient.connections

Creare un hub con risorse di dipendenza esistenti

Per impostazione predefinita, un hub crea automaticamente le risorse Archiviazione di Azure e Azure Key Vault associate. Se si desidera riutilizzare le risorse di Archiviazione di Azure o di Azure Key Vault esistenti, è possibile specificarle durante la creazione dell'hub. Negli esempi seguenti sostituire i valori segnaposto con i propri ID risorsa:

Suggerimento

È possibile recuperare l'ID risorsa dell'account di archiviazione e del Key Vault dal portale di Azure passando alla panoramica della risorsa e selezionando Vista JSON. L'ID risorsa si trova nel campo ID . È anche possibile usare il interfaccia della riga di comando di Azure per recuperare l'ID risorsa. Ad esempio, usare az storage account show --name {my_storage_account_name} --query "id" e az keyvault show --name {my_key_vault_name} --query "id".

from azure.ai.ml.entities import Hub

my_hub_name = "myexamplehub"
my_location = "East US"
my_display_name = "My Example Hub"
my_resource_group = "myresourcegroupname"
my_storage_account_id = "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>"
my_key_vault_id = "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.KeyVault/vaults/<key-vault-name>"

# Construct a hub with existing dependency resources
my_hub = Hub(
    name=my_hub_name,
    location=my_location,
    display_name=my_display_name,
    resource_group=my_resource_group,
    storage_account_id=my_storage_account_id,
    key_vault_id=my_key_vault_id
)

# Create the hub
created_hub = ml_client.workspaces.begin_create(my_hub).result()
print(f"Created hub with existing resources: {created_hub.name}")

Per trovare gli ID risorsa per le risorse esistenti, visitare la pagina Azure portale, passare alla pagina Panoramica e selezionare JSON view. L'ID risorsa viene visualizzato nel campo ID . In alternativa, usare interfaccia della riga di comando di Azure:

# Get Storage account resource ID
az storage account show --name <storage-account-name> --resource-group <resource-group> --query "id"

# Get Key Vault resource ID
az keyvault show --name <key-vault-name> --resource-group <resource-group> --query "id"

Riferimenti: Hub

Aggiornare applicazione Azure Insights e Registro Azure Container

Per usare ambienti personalizzati per Prompt Flow, è necessario configurare un Registro Azure Container per l'hub. Per usare applicazione Azure Insights per le distribuzioni di Prompt Flow, è necessario configurare una risorsa applicazione Azure Insights per l'hub. L'aggiornamento del Registro Azure Container collegato all'area di lavoro o delle risorse di Application Insights potrebbe interrompere la derivazione dei processi precedenti, gli endpoint di inferenza distribuiti o la possibilità di rieseguire i processi precedenti nell'area di lavoro. Dopo l'associazione a un hub Foundry, Registro Azure Container e le risorse di Application Insights non possono essere disassociate (impostate su null).

È possibile usare il portale di Azure, le opzioni di Azure SDK/interfaccia della riga di comando o i modelli di infrastruttura come codice per aggiornare sia applicazione Azure Insights che Registro Azure Container per l'hub.

from azure.ai.ml.entities import Hub

my_app_insights = "{APPLICATION_INSIGHTS_ARM_ID}"
my_container_registry = "{CONTAINER_REGISTRY_ARM_ID}"

# construct a hub with Application Insights and Container Registry
my_hub = Hub(name="myexamplehub", 
             location="East US", 
             application_insights=my_app_insights,
             container_registry=my_container_registry)

# update_dependent_resources is used to give consent to update the workspace dependent resources.
updated_hub = ml_client.workspaces.begin_update(workspace=my_hub, update_dependent_resources=True).result()
print(f"Hub updated: {updated_hub.name}")

Questo script aggiorna un hub esistente con le risorse di Application Insights e Registro Container specificate. Il update_dependent_resources=True parametro conferma l'aggiornamento.

Riferimento: Hub, MLClient.workspaces.begin_update()