Copiare analizzatori personalizzati

Ogni risorsa Content Understanding fornisce l'accesso a tutti gli analizzatori predefiniti per impostazione predefinita. Per un elenco completo, vedere analizzatori predefiniti. Gli analizzatori personalizzati sono analizzatori definiti per elaborare contenuto specifico in cui è possibile definire il tipo di contenuto, lo schema e qualsiasi altra logica di elaborazione. Per altre informazioni sulla definizione di un analizzatore personalizzato, vedere Definizione di un analizzatore personalizzato.

L'operazione di copia negli analizzatori supporta alcuni scenari diversi:

  • Copiare all'interno di una risorsa per creare una copia di un analizzatore esistente nella stessa risorsa di un backup o di una versione su cui è possibile eseguire l'iterazione.
  • Copia tra le risorse per copiare un analizzatore da una risorsa Foundry a un'altra. Ciò supporta scenari di failover e analizzatori di condivisione tra team.

Importante

L'operazione di copia per la copia tra le risorse supporta la copia degli analizzatori tra sottoscrizioni e persino i tenant di Azure.

Questa guida illustra come usare l'API REST Content Understanding per copiare analizzatori personalizzati all'interno di una risorsa e tra le risorse foundry.

Prerequisiti

Copiare all'interno di una risorsa Foundry

L'operazione di copia all'interno di una risorsa Foundry è un'operazione in un unico passaggio. Specificare l'ID dell'analizzatore di destinazione nell'URL della richiesta e specificare l'ID dell'analizzatore di origine nel corpo della richiesta.

POST https://{resource}.services.ai.azure.com/contentunderstanding/analyzers/{targetAnalyzer}:copy?api-version=2025-11-01
Content-Type: application/json
Ocp-Apim-Subscription-Key: {Auth key}

{
  "sourceAnalyzerId": "{sourceAnalyzerId}"

}

Copiare tra le risorse Foundry

La copia di un analizzatore tra le risorse Foundry è un processo a più fasi perché un'entità servizio potrebbe non avere autorizzazioni su entrambe le risorse.

  1. Chiamare l'API Concedi autorizzazione di copia nell'analizzatore di origine, specificando l'ID risorsa completo della destinazione di copia e l'area di destinazione. La risposta contiene un token di autorizzazione di copia con una scadenza (expiresAt).
  2. Chiamare l'API di copia nella risorsa di destinazione, specificando l'ID risorsa di origine completo, l'ID dell'analizzatore di origine e l'area di origine.

Importante

Sia le risorse di origine che di destinazione richiedono che il ruolo utente di Servizi cognitivi venga concesso alle credenziali usate per eseguire il codice. Questo ruolo è necessario per le operazioni di copia tra risorse.

POST https://{source resource}.services.ai.azure.com/contentunderstanding/analyzers/{source analyzer id}:grantCopyAuthorization?api-version=2025-11-01
Content-Type: application/json
Ocp-Apim-Subscription-Key: {Auth key}

{ 
  "targetAzureResourceId":"/subscriptions/{subscription guid}/resourceGroups/{resource group}/providers/Microsoft.CognitiveServices/accounts/{target resource}",
  "targetRegion":"{region}"
}


POST https://{target resource}.services.ai.azure.com/contentunderstanding/analyzers/{target analyzer id}:copy?api-version=2025-11-01
Content-Type: application/json
Ocp-Apim-Subscription-Key: {Auth key}

{
    "sourceAzureResourceId":"/subscriptions/{subscription guid}/resourceGroups/{resource group}/providers/Microsoft.CognitiveServices/accounts/{source resource}",
    "sourceAnalyzerId":"{source analyzer id}",
    "sourceRegion":"{region}"
}

Nota

Gli analizzatori supportano ora la classificazione/segmentazione e l'analisi di ognuna delle classi e dei segmenti identificati in una singola richiesta. Quando si copia un analizzatore che usa questa funzionalità, è necessario copiare anche eventuali analizzatori a cui si fa riferimento.

Verificare la copia

È possibile verificare che l'analizzatore sia stato copiato chiamando l'analizzatore GET sulla risorsa se la copia si trovava all'interno della risorsa o nella risorsa di destinazione se la copia si trovava tra le risorse.

GET https://{target resource}.services.ai.azure.com/contentunderstanding/analyzers/{target analyzer id}?api-version=2025-11-01
Ocp-Apim-Subscription-Key: {Auth key}

Questa guida illustra come usare Content Understanding Python SDK per copiare analizzatori personalizzati all'interno di una risorsa e tra le risorse foundry.

Prerequisiti

Configurare

  1. Installare la libreria client di Content Understanding per Python con pip:

    pip install azure-ai-contentunderstanding
    
  2. Facoltativamente, installare la libreria di identità Azure per l'autenticazione Microsoft Entra:

    pip install azure-identity
    

Configurare le variabili di ambiente

Per eseguire l'autenticazione con il servizio Content Understanding, impostare le variabili di ambiente con i propri valori prima di eseguire l'esempio:

  • CONTENTUNDERSTANDING_ENDPOINT - l'endpoint della risorsa di Comprensione dei Contenuti.
  • CONTENTUNDERSTANDING_KEY: chiave API di Content Understanding (facoltativa se si usa Microsoft Entra ID DefaultAzureCredential).

Windows

setx CONTENTUNDERSTANDING_ENDPOINT "your-endpoint"
setx CONTENTUNDERSTANDING_KEY "your-key"

Linux/macOS

export CONTENTUNDERSTANDING_ENDPOINT="your-endpoint"
export CONTENTUNDERSTANDING_KEY="your-key"

Creare il client

import os
from azure.ai.contentunderstanding import ContentUnderstandingClient
from azure.core.credentials import AzureKeyCredential
from azure.identity import DefaultAzureCredential

endpoint = os.environ["CONTENTUNDERSTANDING_ENDPOINT"]
key = os.getenv("CONTENTUNDERSTANDING_KEY")
credential = AzureKeyCredential(key) if key else DefaultAzureCredential()

client = ContentUnderstandingClient(
    endpoint=endpoint, credential=credential
)

Copiare all'interno di una risorsa Foundry

Per copiare un analizzatore all'interno della stessa risorsa, chiamare il metodo begin_copy_analyzer con l'ID dell'analizzatore di origine e l'ID dell'analizzatore di destinazione.

source_analyzer_id = "my-source-analyzer"
target_analyzer_id = "my-target-analyzer"

poller = client.begin_copy_analyzer(
    analyzer_id=target_analyzer_id,
    source_analyzer_id=source_analyzer_id,
)
poller.result()

print("Analyzer copied successfully!")

Suggerimento

Questo codice si basa sull'esempio di analizzatore copy nel repository SDK.

Copiare tra le risorse Foundry

La copia di un analizzatore tra le risorse Foundry è un processo in più passaggi:

  1. Concedere l'autorizzazione di copia alla risorsa di origine.
  2. Usare l'autorizzazione per chiamare l'API di copia nella risorsa di destinazione.

Importante

Sia le risorse di origine che di destinazione richiedono che il ruolo utente di Servizi cognitivi venga concesso alle credenziali usate per eseguire il codice. Questo ruolo è necessario per le operazioni di copia tra risorse.

Per la copia tra risorse, impostare le variabili di ambiente aggiuntive seguenti:

  • CONTENTUNDERSTANDING_SOURCE_RESOURCE_ID - ID completo risorsa Azure Resource Manager della risorsa di origine.
  • CONTENTUNDERSTANDING_SOURCE_REGION : area Azure della risorsa di origine.
  • CONTENTUNDERSTANDING_TARGET_ENDPOINT - Endpoint della risorsa di destinazione.
  • CONTENTUNDERSTANDING_TARGET_RESOURCE_ID - ID completo del Gestore risorse di Azure della risorsa di destinazione.
  • CONTENTUNDERSTANDING_TARGET_REGION : area Azure della risorsa di destinazione.
  • CONTENTUNDERSTANDING_TARGET_KEY - Chiave API di destinazione (facoltativa se si usa DefaultAzureCredential).

Formato ID risorsa di esempio: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{name}

source_endpoint = os.environ["CONTENTUNDERSTANDING_ENDPOINT"]
source_key = os.getenv("CONTENTUNDERSTANDING_KEY")
source_credential = (
    AzureKeyCredential(source_key) if source_key else DefaultAzureCredential()
)

source_resource_id = os.environ["CONTENTUNDERSTANDING_SOURCE_RESOURCE_ID"]
source_region = os.environ["CONTENTUNDERSTANDING_SOURCE_REGION"]

target_endpoint = os.environ["CONTENTUNDERSTANDING_TARGET_ENDPOINT"]
target_key = os.getenv("CONTENTUNDERSTANDING_TARGET_KEY")
target_credential = (
    AzureKeyCredential(target_key) if target_key else DefaultAzureCredential()
)

target_resource_id = os.environ["CONTENTUNDERSTANDING_TARGET_RESOURCE_ID"]
target_region = os.environ["CONTENTUNDERSTANDING_TARGET_REGION"]

source_analyzer_id = "my-source-analyzer"
target_analyzer_id = "my-target-analyzer"

# Create source and target clients
source_client = ContentUnderstandingClient(
    endpoint=source_endpoint, credential=source_credential
)
target_client = ContentUnderstandingClient(
    endpoint=target_endpoint, credential=target_credential
)

# Step 1: Grant copy authorization on the source resource
copy_auth = source_client.grant_copy_authorization(
    analyzer_id=source_analyzer_id,
    target_azure_resource_id=target_resource_id,
    target_region=target_region,
)

print("Authorization granted successfully!")
print(f"  Target Azure Resource ID: {copy_auth.target_azure_resource_id}")
print(f"  Expires at: {copy_auth.expires_at}")

# Step 2: Copy analyzer to target resource
copy_poller = target_client.begin_copy_analyzer(
    analyzer_id=target_analyzer_id,
    source_analyzer_id=source_analyzer_id,
    source_azure_resource_id=source_resource_id,
    source_region=source_region,
)
copy_poller.result()

print("Analyzer copied successfully to target resource!")

Suggerimento

Questo codice si basa sull'esempio grant copy auth nel repository SDK.

Nota

Gli analizzatori supportano ora la classificazione/segmentazione e l'analisi di ognuna delle classi e dei segmenti identificati in una singola richiesta. Quando si copia un analizzatore che usa questa funzionalità, è necessario copiare anche eventuali analizzatori a cui si fa riferimento.

Verificare la copia

Verificare che l'analizzatore sia stato copiato recuperandolo dalla risorsa di destinazione.

copied_analyzer = target_client.get_analyzer(
    analyzer_id=target_analyzer_id
)
print(f"  Target Analyzer ID: {copied_analyzer.analyzer_id}")
print(f"  Description: {copied_analyzer.description}")
print(f"  Status: {copied_analyzer.status}")

Questa guida illustra come usare Content Understanding .NET SDK per copiare analizzatori personalizzati all'interno di una risorsa e tra le risorse foundry.

Prerequisiti

Configurare

  1. Creare una nuova applicazione console .NET:

    dotnet new console -n CopyAnalyzerExample
    cd CopyAnalyzerExample
    
  2. Installare la libreria client di Content Understanding per .NET:

    dotnet add package Azure.AI.ContentUnderstanding
    
  3. Facoltativamente, installare la libreria di identità Azure per l'autenticazione Microsoft Entra:

    dotnet add package Azure.Identity
    

Configurare le variabili di ambiente

Per eseguire l'autenticazione con il servizio Content Understanding, impostare le variabili di ambiente con i propri valori prima di eseguire l'esempio:

  • CONTENTUNDERSTANDING_ENDPOINT - l'endpoint della risorsa di Comprensione dei Contenuti.
  • CONTENTUNDERSTANDING_KEY: chiave API di Content Understanding (facoltativa se si usa Microsoft Entra ID DefaultAzureCredential).

Windows

setx CONTENTUNDERSTANDING_ENDPOINT "your-endpoint"
setx CONTENTUNDERSTANDING_KEY "your-key"

Linux/macOS

export CONTENTUNDERSTANDING_ENDPOINT="your-endpoint"
export CONTENTUNDERSTANDING_KEY="your-key"

Creare il client

using Azure;
using Azure.AI.ContentUnderstanding;
using Azure.Identity;

string endpoint = Environment.GetEnvironmentVariable(
    "CONTENTUNDERSTANDING_ENDPOINT");
string apiKey = Environment.GetEnvironmentVariable(
    "CONTENTUNDERSTANDING_KEY");

var client = !string.IsNullOrEmpty(apiKey)
    ? new ContentUnderstandingClient(
        new Uri(endpoint),
        new AzureKeyCredential(apiKey))
    : new ContentUnderstandingClient(
        new Uri(endpoint),
        new DefaultAzureCredential());

Copiare all'interno di una risorsa Foundry

Per copiare un analizzatore all'interno della stessa risorsa, chiamare il metodo CopyAnalyzerAsync con l'ID dell'analizzatore di origine e l'ID dell'analizzatore di destinazione.

string sourceAnalyzerId = "my-source-analyzer";
string targetAnalyzerId = "my-target-analyzer";

await client.CopyAnalyzerAsync(
    WaitUntil.Completed,
    targetAnalyzerId,
    sourceAnalyzerId);

Suggerimento

Questo codice si basa sull'esempio di analizzatore copy nel repository SDK.

Copiare tra le risorse Foundry

La copia di un analizzatore tra le risorse Foundry è un processo in più passaggi:

  1. Concedere l'autorizzazione di copia alla risorsa di origine.
  2. Usare l'autorizzazione per chiamare l'API di copia nella risorsa di destinazione.

Importante

Sia le risorse di origine che di destinazione richiedono che il ruolo utente di Servizi cognitivi venga concesso alle credenziali usate per eseguire il codice. Questo ruolo è necessario per le operazioni di copia tra risorse.

// Get source endpoint from configuration
string sourceEndpoint =
    "https://source-resource.services.ai.azure.com/";

// Create source client using DefaultAzureCredential
ContentUnderstandingClient sourceClient =
    new ContentUnderstandingClient(
        new Uri(sourceEndpoint),
        new DefaultAzureCredential());

// Source analyzer ID (must already exist in the source resource)
string sourceAnalyzerId =
    "my_source_analyzer";
// Target analyzer ID (will be created during copy)
string targetAnalyzerId =
    "my_target_analyzer";

// Get source and target resource information
string sourceResourceId =
    "/subscriptions/{subscriptionId}"
    + "/resourceGroups/{resourceGroupName}"
    + "/providers/Microsoft.CognitiveServices"
    + "/accounts/{name}";
string sourceRegion = "eastus";
string targetEndpoint =
    "https://target-resource.services.ai.azure.com/";
string targetResourceId =
    "/subscriptions/{subscriptionId}"
    + "/resourceGroups/{resourceGroupName}"
    + "/providers/Microsoft.CognitiveServices"
    + "/accounts/{name}";
string targetRegion = "westus";

// Create target client using DefaultAzureCredential
ContentUnderstandingClient targetClient =
    new ContentUnderstandingClient(
        new Uri(targetEndpoint),
        new DefaultAzureCredential());

// Step 1: Grant copy authorization
var copyAuth = await
    sourceClient.GrantCopyAuthorizationAsync(
        sourceAnalyzerId,
        targetResourceId,
        targetRegion);

Console.WriteLine("Copy authorization granted successfully!");
Console.WriteLine(
    $"  Target Azure Resource ID: "
    + $"{copyAuth.Value.TargetAzureResourceId}");
Console.WriteLine(
    $"  Expires at: {copyAuth.Value.ExpiresAt}");

// Step 2: Copy analyzer to target resource
var copyOperation = await
    targetClient.CopyAnalyzerAsync(
        WaitUntil.Completed,
        targetAnalyzerId,
        sourceAnalyzerId,
        sourceResourceId,
        sourceRegion);

var targetResult = copyOperation.Value;
Console.WriteLine(
    $"Target analyzer '{targetAnalyzerId}' "
    + "copied successfully to target resource!");
Console.WriteLine(
    $"Target analyzer description: "
    + $"{targetResult.Description}");

Suggerimento

Questo codice si basa sull'esempio grant copy auth nel repository SDK.

Nota

Gli analizzatori supportano ora la classificazione/segmentazione e l'analisi di ognuna delle classi e dei segmenti identificati in una singola richiesta. Quando si copia un analizzatore che usa questa funzionalità, è necessario copiare anche eventuali analizzatori a cui si fa riferimento.

Verificare la copia

Verificare che l'analizzatore sia stato copiato recuperandolo dalla risorsa di destinazione.

var analyzerDetails = await
    targetClient.GetAnalyzerAsync(targetAnalyzerId);
var result = analyzerDetails.Value;

Console.WriteLine(
    $"Analyzer '{targetAnalyzerId}' found.");
if (result.Description != null)
{
    Console.WriteLine(
        $"  Description: {result.Description}");
}

Questa guida illustra come usare Content Understanding Java SDK per copiare analizzatori personalizzati all'interno di una risorsa e tra le risorse foundry.

Prerequisiti

Configurare

  1. Aggiungi la dipendenza Content Understanding al file pom.xml nella sezione <dependencies>:

    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-ai-contentunderstanding</artifactId>
        <version>1.0.0</version>
    </dependency>
    
  2. Facoltativamente, aggiungere la libreria di identità Azure per l'autenticazione Microsoft Entra:

    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-identity</artifactId>
        <version>1.14.2</version>
    </dependency>
    

Configurare le variabili di ambiente

Per eseguire l'autenticazione con il servizio Content Understanding, impostare le variabili di ambiente con i propri valori prima di eseguire l'esempio:

  • CONTENTUNDERSTANDING_ENDPOINT - l'endpoint della risorsa di Comprensione dei Contenuti.
  • CONTENTUNDERSTANDING_KEY: chiave API di Content Understanding (facoltativa se si usa Microsoft Entra ID DefaultAzureCredential).

Windows

setx CONTENTUNDERSTANDING_ENDPOINT "your-endpoint"
setx CONTENTUNDERSTANDING_KEY "your-key"

Linux/macOS

export CONTENTUNDERSTANDING_ENDPOINT="your-endpoint"
export CONTENTUNDERSTANDING_KEY="your-key"

Creare il client

import com.azure.core.credential.AzureKeyCredential;
import com.azure.core.util.polling.SyncPoller;
import com.azure.ai.contentunderstanding.ContentUnderstandingClient;
import com.azure.ai.contentunderstanding.ContentUnderstandingClientBuilder;
import com.azure.ai.contentunderstanding.models.ContentAnalyzer;
import com.azure.ai.contentunderstanding.models.ContentAnalyzerOperationStatus;
import com.azure.ai.contentunderstanding.models.CopyAuthorization;
import com.azure.identity.DefaultAzureCredentialBuilder;

String endpoint = System.getenv("CONTENTUNDERSTANDING_ENDPOINT");
String key = System.getenv("CONTENTUNDERSTANDING_KEY");

ContentUnderstandingClientBuilder builder =
    new ContentUnderstandingClientBuilder()
        .endpoint(endpoint);

ContentUnderstandingClient client;
if (key != null && !key.trim().isEmpty()) {
    client = builder.credential(
        new AzureKeyCredential(key)).buildClient();
} else {
    client = builder.credential(
        new DefaultAzureCredentialBuilder()
            .build()).buildClient();
}

Copiare all'interno di una risorsa Foundry

Per copiare un analizzatore all'interno della stessa risorsa, chiamare il metodo beginCopyAnalyzer con l'ID dell'analizzatore di origine e l'ID dell'analizzatore di destinazione.

String sourceAnalyzerId = "my-source-analyzer";
String targetAnalyzerId = "my-target-analyzer";

SyncPoller<ContentAnalyzerOperationStatus, ContentAnalyzer>
    copyPoller = client.beginCopyAnalyzer(
        targetAnalyzerId, sourceAnalyzerId);
ContentAnalyzer copiedAnalyzer =
    copyPoller.getFinalResult();

System.out.println(
    "Analyzer copied to '"
    + targetAnalyzerId + "' successfully!");

Suggerimento

Questo codice si basa sull'esempio di analizzatore copy nel repository SDK.

Copiare tra le risorse Foundry

La copia di un analizzatore tra le risorse Foundry è un processo in più passaggi:

  1. Concedere l'autorizzazione di copia alla risorsa di origine.
  2. Usare l'autorizzazione per chiamare l'API di copia nella risorsa di destinazione.

Importante

Sia le risorse di origine che di destinazione richiedono che il ruolo utente di Servizi cognitivi venga concesso alle credenziali usate per eseguire il codice. Questo ruolo è necessario per le operazioni di copia tra risorse.

Formato ID risorsa di esempio: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{name}

String sourceEndpoint =
    System.getenv("CONTENTUNDERSTANDING_ENDPOINT");
String sourceKey =
    System.getenv("CONTENTUNDERSTANDING_KEY");
String sourceResourceId =
    System.getenv(
        "CONTENTUNDERSTANDING_SOURCE_RESOURCE_ID");
String sourceRegion =
    System.getenv(
        "CONTENTUNDERSTANDING_SOURCE_REGION");
String targetEndpoint =
    System.getenv(
        "CONTENTUNDERSTANDING_TARGET_ENDPOINT");
String targetKey =
    System.getenv("CONTENTUNDERSTANDING_TARGET_KEY");
String targetResourceId =
    System.getenv(
        "CONTENTUNDERSTANDING_TARGET_RESOURCE_ID");
String targetRegion =
    System.getenv(
        "CONTENTUNDERSTANDING_TARGET_REGION");

String sourceAnalyzerId = "my-source-analyzer";
String targetAnalyzerId = "my-target-analyzer";

// Build source client
ContentUnderstandingClientBuilder sourceBuilder =
    new ContentUnderstandingClientBuilder()
        .endpoint(sourceEndpoint);
ContentUnderstandingClient sourceClient;
if (sourceKey != null
    && !sourceKey.trim().isEmpty()) {
    sourceClient = sourceBuilder.credential(
        new AzureKeyCredential(sourceKey))
        .buildClient();
} else {
    sourceClient = sourceBuilder.credential(
        new DefaultAzureCredentialBuilder()
            .build()).buildClient();
}

// Build target client
ContentUnderstandingClientBuilder targetBuilder =
    new ContentUnderstandingClientBuilder()
        .endpoint(targetEndpoint);
ContentUnderstandingClient targetClient;
if (targetKey != null
    && !targetKey.trim().isEmpty()) {
    targetClient = targetBuilder.credential(
        new AzureKeyCredential(targetKey))
        .buildClient();
} else {
    targetClient = targetBuilder.credential(
        new DefaultAzureCredentialBuilder()
            .build()).buildClient();
}

// Step 1: Grant copy authorization on source client
CopyAuthorization copyAuth =
    sourceClient.grantCopyAuthorization(
        sourceAnalyzerId,
        targetResourceId,
        targetRegion);

System.out.println(
    "Copy authorization granted successfully!");
System.out.println(
    "  Target Azure Resource ID: "
    + copyAuth.getTargetAzureResourceId());
System.out.println(
    "  Expires at: " + copyAuth.getExpiresAt());

// Step 2: Copy analyzer to target resource
SyncPoller<ContentAnalyzerOperationStatus,
    ContentAnalyzer> copyPoller =
    targetClient.beginCopyAnalyzer(
        targetAnalyzerId,
        sourceAnalyzerId,
        false,
        sourceResourceId,
        sourceRegion);

ContentAnalyzer targetResult =
    copyPoller.getFinalResult();
System.out.println(
    "Target analyzer '"
    + targetAnalyzerId + "' copied successfully!");
System.out.println(
    "  Description: "
    + targetResult.getDescription());

Suggerimento

Questo codice si basa sull'esempio grant copy auth nel repository SDK.

Nota

Gli analizzatori supportano ora la classificazione/segmentazione e l'analisi di ognuna delle classi e dei segmenti identificati in una singola richiesta. Quando si copia un analizzatore che usa questa funzionalità, è necessario copiare anche eventuali analizzatori a cui si fa riferimento.

Verificare la copia

Verificare che l'analizzatore sia stato copiato recuperandolo dalla risorsa di destinazione.

ContentAnalyzer analyzer =
    targetClient.getAnalyzer(targetAnalyzerId);

System.out.println(
    "Analyzer '" + targetAnalyzerId + "' found.");
if (analyzer.getDescription() != null) {
    System.out.println(
        "  Description: "
        + analyzer.getDescription());
}

Questa guida illustra come usare Content Understanding JavaScript SDK per copiare analizzatori personalizzati all'interno di una risorsa e tra le risorse foundry.

Prerequisiti

Configurare

  1. Creare un nuovo progetto Node.js:

    mkdir copy-analyzer-example
    cd copy-analyzer-example
    npm init -y
    
  2. Installare la libreria client content Understanding:

    npm install @azure/ai-content-understanding
    
  3. Facoltativamente, installare la libreria di identità Azure per l'autenticazione Microsoft Entra:

    npm install @azure/identity
    

Configurare le variabili di ambiente

Per eseguire l'autenticazione con il servizio Content Understanding, impostare le variabili di ambiente con i propri valori prima di eseguire l'esempio:

  • CONTENTUNDERSTANDING_ENDPOINT - l'endpoint della risorsa di Comprensione dei Contenuti.
  • CONTENTUNDERSTANDING_KEY: chiave API di Content Understanding (facoltativa se si usa Microsoft Entra ID DefaultAzureCredential).

Windows

setx CONTENTUNDERSTANDING_ENDPOINT "your-endpoint"
setx CONTENTUNDERSTANDING_KEY "your-key"

Linux/macOS

export CONTENTUNDERSTANDING_ENDPOINT="your-endpoint"
export CONTENTUNDERSTANDING_KEY="your-key"

Creare il client

const { AzureKeyCredential } =
    require("@azure/core-auth");
const { DefaultAzureCredential } =
    require("@azure/identity");
const {
    ContentUnderstandingClient,
} = require("@azure/ai-content-understanding");

const endpoint =
    process.env["CONTENTUNDERSTANDING_ENDPOINT"];
const key =
    process.env["CONTENTUNDERSTANDING_KEY"];

const credential = key
    ? new AzureKeyCredential(key)
    : new DefaultAzureCredential();

const client = new ContentUnderstandingClient(
    endpoint,
    credential
);

Copiare all'interno di una risorsa Foundry

Per copiare un analizzatore all'interno della stessa risorsa, chiamare il metodo copyAnalyzer con l'ID dell'analizzatore di origine e l'ID dell'analizzatore di destinazione.

const sourceAnalyzerId = "my-source-analyzer";
const targetAnalyzerId = "my-target-analyzer";

const copyPoller = client.copyAnalyzer(
    targetAnalyzerId, sourceAnalyzerId
);
await copyPoller.pollUntilDone();

console.log("Analyzer copied successfully!");

Suggerimento

Questo codice si basa sull'esempio di analizzatore copy nel repository SDK.

Copiare tra le risorse Foundry

La copia di un analizzatore tra le risorse Foundry è un processo in più passaggi:

  1. Concedere l'autorizzazione di copia alla risorsa di origine.
  2. Usare l'autorizzazione per chiamare l'API di copia nella risorsa di destinazione.

Importante

Sia le risorse di origine che di destinazione richiedono che il ruolo utente di Servizi cognitivi venga concesso alle credenziali usate per eseguire il codice. Questo ruolo è necessario per le operazioni di copia tra risorse.

Per la copia tra risorse, impostare le variabili di ambiente aggiuntive seguenti:

  • CONTENTUNDERSTANDING_SOURCE_RESOURCE_ID - ID completo risorsa Azure Resource Manager della risorsa di origine.
  • CONTENTUNDERSTANDING_SOURCE_REGION : area Azure della risorsa di origine.
  • CONTENTUNDERSTANDING_TARGET_ENDPOINT - Endpoint della risorsa di destinazione.
  • CONTENTUNDERSTANDING_TARGET_RESOURCE_ID - ID completo del Gestore risorse di Azure della risorsa di destinazione.
  • CONTENTUNDERSTANDING_TARGET_REGION : area Azure della risorsa di destinazione.
  • CONTENTUNDERSTANDING_TARGET_KEY - Chiave API di destinazione (facoltativa se si usa DefaultAzureCredential).

Formato ID risorsa di esempio: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{name}

const { DefaultAzureCredential } = require("@azure/identity");

const sourceEndpoint =
    process.env["CONTENTUNDERSTANDING_ENDPOINT"];
const sourceKey =
    process.env["CONTENTUNDERSTANDING_KEY"];

const sourceResourceId =
    process.env[
        "CONTENTUNDERSTANDING_SOURCE_RESOURCE_ID"
    ];
const sourceRegion =
    process.env["CONTENTUNDERSTANDING_SOURCE_REGION"];

const targetEndpoint =
    process.env[
        "CONTENTUNDERSTANDING_TARGET_ENDPOINT"
    ];
const targetKey =
    process.env["CONTENTUNDERSTANDING_TARGET_KEY"];

const targetResourceId =
    process.env[
        "CONTENTUNDERSTANDING_TARGET_RESOURCE_ID"
    ];
const targetRegion =
    process.env[
        "CONTENTUNDERSTANDING_TARGET_REGION"
    ];

const sourceAnalyzerId = "my-source-analyzer";
const targetAnalyzerId = "my-target-analyzer";

// Create clients for source and target resources
const sourceCredential = sourceKey
    ? new AzureKeyCredential(sourceKey)
    : new DefaultAzureCredential();
const targetCredential = targetKey
    ? new AzureKeyCredential(targetKey)
    : new DefaultAzureCredential();

const sourceClient = new ContentUnderstandingClient(
    sourceEndpoint,
    sourceCredential
);
const targetClient = new ContentUnderstandingClient(
    targetEndpoint,
    targetCredential
);

// Step 1: Grant copy authorization on the source
const copyAuth =
    await sourceClient.grantCopyAuthorization(
        sourceAnalyzerId,
        targetResourceId,
        { targetRegion: targetRegion }
    );

console.log("Copy authorization granted!");
console.log(
    `  Target resource: `
    + `${copyAuth.targetAzureResourceId}`
);
console.log(
    `  Expires at: ${copyAuth.expiresAt}`
);

// Step 2: Copy the analyzer from source to target
const copyPoller = targetClient.copyAnalyzer(
    targetAnalyzerId,
    sourceAnalyzerId,
    {
        sourceAzureResourceId: sourceResourceId,
        sourceRegion: sourceRegion,
    }
);
await copyPoller.pollUntilDone();

console.log("Analyzer copied successfully!");

// Verify the copy
const targetInfo = await targetClient.getAnalyzer(
    targetAnalyzerId
);
console.log(
    `Target analyzer '${targetAnalyzerId}':`
);
console.log(
    `  Description: ${targetInfo.description}`
);
console.log(
    `  Status: ${targetInfo.status}`
);

Suggerimento

Questo codice si basa sull'esempio grant copy auth nel repository SDK.

Nota

Gli analizzatori supportano ora la classificazione/segmentazione e l'analisi di ognuna delle classi e dei segmenti identificati in una singola richiesta. Quando si copia un analizzatore che usa questa funzionalità, è necessario copiare anche eventuali analizzatori a cui si fa riferimento.

Verificare la copia

Verificare che l'analizzatore sia stato copiato recuperandolo dalla risorsa di destinazione.

const analyzer = await client.getAnalyzer(
    targetAnalyzerId
);
console.log(
    `Analyzer '${targetAnalyzerId}' found.`
);
if (analyzer.description) {
    console.log(
        `  Description: ${analyzer.description}`
    );
}

Questa guida illustra come usare Content Understanding TypeScript SDK per copiare analizzatori personalizzati all'interno di una risorsa e tra le risorse foundry.

Prerequisiti

Configurare

  1. Creare un nuovo progetto Node.js:

    mkdir copy-analyzer-example
    cd copy-analyzer-example
    npm init -y
    
  2. Installare TypeScript e la libreria client content Understanding:

    npm install typescript ts-node @azure/ai-content-understanding
    
  3. Facoltativamente, installare la libreria di identità Azure per l'autenticazione Microsoft Entra:

    npm install @azure/identity
    

Configurare le variabili di ambiente

Per eseguire l'autenticazione con il servizio Content Understanding, impostare le variabili di ambiente con i propri valori prima di eseguire l'esempio:

  • CONTENTUNDERSTANDING_ENDPOINT - l'endpoint della risorsa di Comprensione dei Contenuti.
  • CONTENTUNDERSTANDING_KEY: chiave API di Content Understanding (facoltativa se si usa Microsoft Entra ID DefaultAzureCredential).

Windows

setx CONTENTUNDERSTANDING_ENDPOINT "your-endpoint"
setx CONTENTUNDERSTANDING_KEY "your-key"

Linux/macOS

export CONTENTUNDERSTANDING_ENDPOINT="your-endpoint"
export CONTENTUNDERSTANDING_KEY="your-key"

Creare il client

import { AzureKeyCredential } from "@azure/core-auth";
import { DefaultAzureCredential } from
    "@azure/identity";
import {
    ContentUnderstandingClient,
} from "@azure/ai-content-understanding";
import type {
    ContentAnalyzer,
} from "@azure/ai-content-understanding";

const endpoint =
    process.env["CONTENTUNDERSTANDING_ENDPOINT"]!;
const key =
    process.env["CONTENTUNDERSTANDING_KEY"];

const credential = key
    ? new AzureKeyCredential(key)
    : new DefaultAzureCredential();

const client = new ContentUnderstandingClient(
    endpoint,
    credential
);

Copiare all'interno di una risorsa Foundry

Per copiare un analizzatore all'interno della stessa risorsa, chiamare il metodo copyAnalyzer con l'ID dell'analizzatore di origine e l'ID dell'analizzatore di destinazione.

const sourceAnalyzerId = "my-source-analyzer";
const targetAnalyzerId = "my-target-analyzer";

const copyPoller = client.copyAnalyzer(
    targetAnalyzerId, sourceAnalyzerId
);
await copyPoller.pollUntilDone();

console.log("Analyzer copied successfully!");

Suggerimento

Questo codice si basa sull'esempio di analizzatore copy nel repository SDK.

Copiare tra le risorse Foundry

La copia di un analizzatore tra le risorse Foundry è un processo in più passaggi:

  1. Concedere l'autorizzazione di copia alla risorsa di origine.
  2. Usare l'autorizzazione per chiamare l'API di copia nella risorsa di destinazione.

Importante

Sia le risorse di origine che di destinazione richiedono che il ruolo utente di Servizi cognitivi venga concesso alle credenziali usate per eseguire il codice. Questo ruolo è necessario per le operazioni di copia tra risorse.

Per la copia tra risorse, impostare le variabili di ambiente aggiuntive seguenti:

  • CONTENTUNDERSTANDING_SOURCE_RESOURCE_ID - ID completo risorsa Azure Resource Manager della risorsa di origine.
  • CONTENTUNDERSTANDING_SOURCE_REGION : area Azure della risorsa di origine.
  • CONTENTUNDERSTANDING_TARGET_ENDPOINT - Endpoint della risorsa di destinazione.
  • CONTENTUNDERSTANDING_TARGET_RESOURCE_ID - ID completo del Gestore risorse di Azure della risorsa di destinazione.
  • CONTENTUNDERSTANDING_TARGET_REGION : area Azure della risorsa di destinazione.
  • CONTENTUNDERSTANDING_TARGET_KEY - Chiave API di destinazione (facoltativa se si usa DefaultAzureCredential).

Formato ID risorsa di esempio: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{name}

import { DefaultAzureCredential } from
    "@azure/identity";

const sourceEndpoint =
    process.env["CONTENTUNDERSTANDING_ENDPOINT"]!;
const sourceKey =
    process.env["CONTENTUNDERSTANDING_KEY"];

const sourceResourceId =
    process.env[
        "CONTENTUNDERSTANDING_SOURCE_RESOURCE_ID"
    ]!;
const sourceRegion =
    process.env[
        "CONTENTUNDERSTANDING_SOURCE_REGION"
    ]!;

const targetEndpoint =
    process.env[
        "CONTENTUNDERSTANDING_TARGET_ENDPOINT"
    ]!;
const targetKey =
    process.env["CONTENTUNDERSTANDING_TARGET_KEY"];

const targetResourceId =
    process.env[
        "CONTENTUNDERSTANDING_TARGET_RESOURCE_ID"
    ]!;
const targetRegion =
    process.env[
        "CONTENTUNDERSTANDING_TARGET_REGION"
    ]!;

const sourceAnalyzerId = "my-source-analyzer";
const targetAnalyzerId = "my-target-analyzer";

// Create clients for source and target resources
const sourceCredential = sourceKey
    ? new AzureKeyCredential(sourceKey)
    : new DefaultAzureCredential();
const targetCredential = targetKey
    ? new AzureKeyCredential(targetKey)
    : new DefaultAzureCredential();

const sourceClient = new ContentUnderstandingClient(
    sourceEndpoint, sourceCredential
);
const targetClient = new ContentUnderstandingClient(
    targetEndpoint, targetCredential
);

// Step 1: Grant copy authorization on the source
const copyAuth =
    await sourceClient.grantCopyAuthorization(
        sourceAnalyzerId,
        targetResourceId,
        { targetRegion: targetRegion }
    );

console.log("Copy authorization granted!");
console.log(
    `  Target resource: `
    + `${copyAuth.targetAzureResourceId}`
);
console.log(
    `  Expires at: ${copyAuth.expiresAt}`
);

// Step 2: Copy the analyzer from source to target
const copyPoller = targetClient.copyAnalyzer(
    targetAnalyzerId,
    sourceAnalyzerId,
    {
        sourceAzureResourceId: sourceResourceId,
        sourceRegion: sourceRegion,
    }
);
await copyPoller.pollUntilDone();

console.log("Analyzer copied successfully!");

// Verify the copy
const targetInfo = await targetClient.getAnalyzer(
    targetAnalyzerId
);
console.log(
    `Target analyzer '${targetAnalyzerId}':`
);
console.log(
    `  Description: ${targetInfo.description}`
);
console.log(
    `  Status: ${targetInfo.status}`
);

Suggerimento

Questo codice si basa sull'esempio grant copy auth nel repository SDK.

Nota

Gli analizzatori supportano ora la classificazione/segmentazione e l'analisi di ognuna delle classi e dei segmenti identificati in una singola richiesta. Quando si copia un analizzatore che usa questa funzionalità, è necessario copiare anche eventuali analizzatori a cui si fa riferimento.

Verificare la copia

Verificare che l'analizzatore sia stato copiato recuperandolo dalla risorsa di destinazione.

const analyzer = await client.getAnalyzer(
    targetAnalyzerId
);
console.log(
    `Analyzer '${targetAnalyzerId}' found.`
);
if (analyzer.description) {
    console.log(
        `  Description: ${analyzer.description}`
    );
}