Condividi tramite


Chiamare gli endpoint del modello di Machine Learning da Dataflow Gen2 (anteprima)

Importante

Questa funzionalità si trova in Anteprima.

Microsoft Fabric Dataflow Gen2 può chiamare endpoint del modello di Machine Learning per ottenere stime in tempo reale durante la trasformazione dei dati. Questa integrazione consente di arricchire i dati applicando modelli di Machine Learning sottoposti a training come parte della pipeline del flusso di dati. È possibile richiamare gli endpoint del modello usando l'autenticazione dell'entità servizio tramite le funzioni di query M.

Prerequisiti

Prima di poter chiamare gli endpoint del modello di Machine Learning da Dataflow Gen2, assicurarsi di disporre degli elementi seguenti:

Configurare le autorizzazioni dell'entità servizio

Per consentire all'entità servizio di chiamare gli endpoint del modello di Machine Learning, è necessario concedere le autorizzazioni appropriate:

  1. Passare all'area di lavoro contenente il modello di Machine Learning in Fabric.

  2. Selezionare Gestisci accesso dal menu dell'area di lavoro.

  3. Selezionare Aggiungi persone o gruppi.

  4. Cerca il principale del servizio in base al nome dell'applicazione o all'ID client.

  5. Assegnare al principale del servizio almeno il ruolo di Collaboratore per accedere e invocare gli endpoint del modello.

Ottenere l'URL dell'endpoint e i dettagli di autenticazione

Prima di creare la funzione di query M, raccogliere le informazioni seguenti:

  1. URL endpoint: Vai al modello di apprendimento automatico in Fabric e copia l'URL dell'endpoint nella sezione Dettagli dell'endpoint.

    Screenshot che mostra dove trovare l'URL dell'endpoint del modello di Machine Learning.

  2. ID tenant: Trova l'ID tenant nel portale di Azure nella sezione Microsoft Entra ID.

  3. ID client: individuare l'ID applicazione (client) del principale del servizio nel portale di Azure.

  4. Segreto client: Creare o recuperare un segreto client per il principale del servizio dal portale Azure.

Creare una funzione di query M per chiamare l'endpoint

In Dataflow Gen2 è possibile creare una funzione di query M personalizzata che esegue l'autenticazione usando l'entità servizio e chiama l'endpoint del modello di Machine Learning.

  1. In Dataflow Gen2 selezionare Recupera dati>Query vuota.

  2. In alternativa, ottenere i dati da arricchire e quindi aprire l'Editor avanzato dalla scheda Home .

  3. Sostituire la query con il codice della funzione M seguente:

    let
        CallMLEndpoint = (endpointUrl as text, tenantId as text, clientId as text, clientSecret as text, inputData as any) =>
        let
            // Get access token using service principal
            tokenUrl = "https://login.microsoftonline.com/" & tenantId & "/oauth2/v2.0/token",
            tokenBody = "client_id=" & clientId &
                        "&scope=https://api.fabric.microsoft.com/.default" &
                        "&client_secret=" & clientSecret &
                        "&grant_type=client_credentials",
            tokenResponse = Web.Contents(
                tokenUrl,
                [
                    Headers = [#"Content-Type" = "application/x-www-form-urlencoded"],
                    Content = Text.ToBinary(tokenBody)
                ]
            ),
            tokenJson = Json.Document(tokenResponse),
            accessToken = tokenJson[access_token],
    
            // Call ML endpoint with bearer token
            requestBody = Json.FromValue(inputData),
            response = Web.Contents(
                endpointUrl,
                [
                    Headers = [
                        #"Content-Type" = "application/json",
                        #"Authorization" = "Bearer " & accessToken
                    ],
                    Content = requestBody
                ]
            ),
            result = Json.Document(response)
        in
            result
    in
        CallMLEndpoint
    
  4. Rinominare la query in CallMLEndpoint facendo clic con il pulsante destro del mouse sulla query nel riquadro Query .

Usare la funzione nel flusso di dati

Dopo aver creato la funzione, è possibile usarla per chiamare l'endpoint di Machine Learning per ogni riga nei dati:

  1. Caricare o connettersi ai dati di origine nel flusso di dati.

  2. Aggiungere una colonna personalizzata che richiama la funzione endpoint ml. Selezionare Aggiungi colonna>Personalizzata.

  3. Usare la formula seguente per chiamare l'endpoint (sostituire i parametri con i valori effettivi):

    CallMLEndpoint(
        "<your-machine-learning-endpoint-url>",
        "<your-tenant-id>",
        "<your-client-id>",
        "<your-client-secret>",
        [input1 = [Column1], input2 = [Column2]]
    )
    
  4. La funzione restituisce il risultato della stima del modello di Machine Learning, che è possibile espandere e usare nei passaggi di trasformazione successivi.

Procedure consigliate

  • Credenziali sicure: è consigliabile considerare l'uso di parametri di Dataflow Gen2 o l'integrazione della libreria di variabili per archiviare valori sensibili come segreti client anziché inserirli nel codice.

  • Gestione degli errori: aggiungere la logica di gestione degli errori alla query M per gestire correttamente gli errori degli endpoint o gli scenari di timeout.

  • Disponibilità degli endpoint: assicurarsi che l'endpoint del modello di Machine Learning sia attivo prima di eseguire il flusso di dati. Gli endpoint inattivi causeranno l'esito negativo dell'aggiornamento del flusso di dati. Disabilitare la funzionalità di sospensione automatica se si vuole chiamare continuamente l'endpoint.

  • Prestazioni: la chiamata di endpoint di Machine Learning per ogni riga può essere lenta per set di dati di grandi dimensioni. È consigliabile filtrare o campionare i dati prima di applicare stime.

Considerazioni e limitazioni

  • L'autenticazione del principale del servizio è necessaria per chiamare gli endpoint di machine learning da Dataflow Gen2.
  • La chiamata agli endpoint di Machine Learning comporta costi sia per il calcolo del flusso di dati che per l'utilizzo degli endpoint di Machine Learning. Controlla di conseguenza l'utilizzo della capacità del Fabric .