Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Каждый ресурс Content Understanding предоставляет доступ ко всем предварительно созданным анализаторам по умолчанию. Полный список см. в предварительно настроенных анализаторах. Пользовательские анализаторы — это анализаторы, которые определяются для обработки определенного содержимого, где можно определить тип контента, схему и любую другую логику обработки. Дополнительные сведения об определении пользовательского анализатора см. в определении пользовательского анализатора.
Операция копирования в анализаторах поддерживает несколько различных сценариев:
- Скопируйте в ресурсе, чтобы создать копию существующего анализатора в том же ресурсе для резервного копирования или версии, на которой можно выполнить итерацию.
- Используйте копирование между ресурсами, чтобы скопировать анализатор из одного ресурса Foundry в другой ресурс. Это поддерживает сценарии отказоустойчивости и совместное использование анализаторов между командами.
Важно
Операция копирования между ресурсами поддерживает копирование анализаторов между подписками и даже арендаторами Azure.
В этом руководстве показано, как использовать REST API для понимания содержимого для копирования пользовательских анализаторов в пределах одного ресурса и между ресурсами Foundry.
Необходимые условия
- Активная подписка Azure. Если у вас нет учетной записи Azure, создайте её бесплатно.
- Ресурс Microsoft Foundry, созданный в поддерживаемом регионе.
- cURL установлен для вашей среды разработки.
- Существующий пользовательский анализатор в ресурсе. Если вам нужно создать пользовательский анализатор, см. статью "Создание пользовательского анализатора ".
Копирование в ресурс Foundry
Операция копирования в ресурсе Foundry — это одношаговая операция. Укажите идентификатор целевого анализатора в URL-адресе запроса и укажите идентификатор исходного анализатора в тексте запроса.
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}"
}
Копирование через ресурсы Foundry
Копирование анализатора между ресурсами Foundry — это многоэтапный процесс, так как сервисный принципал может не иметь разрешений на оба ресурса.
- Вызовите API авторизации предоставления копирования в исходном анализаторе, указав полный идентификатор ресурса целевого объекта копирования и целевого региона. Ответ содержит маркер авторизации копирования с сроком действия (
expiresAt). - Вызовите API копирования целевого ресурса, указав полный идентификатор исходного ресурса, идентификатор исходного анализатора и исходный регион.
Важно
Исходные и целевые ресурсы требуют предоставления роли пользователя Cognitive Services учетным данным, используемым для запуска кода. Эта роль необходима для операций копирования между ресурсами.
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}"
}
Примечание
Анализаторы теперь поддерживают классификацию и сегментацию и анализ каждого из определенных классов и сегментов в одном запросе. При копировании анализатора, использующего эту функцию, необходимо также скопировать все ссылающиеся анализаторы.
Проверка копии
Вы можете проверить, был ли анализатор скопирован, вызвав GET-анализатор на ресурсе, если эта копия была внутри ресурса, или на целевом ресурсе, если эта копия была между ресурсами.
GET https://{target resource}.services.ai.azure.com/contentunderstanding/analyzers/{target analyzer id}?api-version=2025-11-01
Ocp-Apim-Subscription-Key: {Auth key}
В этом руководстве показано, как использовать Content Understanding Python SDK для копирования пользовательских анализаторов как в пределах одного ресурса, так и между ресурсами Foundry.
Необходимые условия
- Активная подписка Azure. Если у вас нет учетной записи Azure, создайте её бесплатно.
- Ресурс Microsoft Foundry, созданный в поддерживаемом регионе.
- Конечная точка ресурса и ключ API.
- Python 3.9 или более поздней версии.
- Существующий пользовательский анализатор в ресурсе. Если вам нужно создать пользовательский анализатор, см. статью "Создание пользовательского анализатора ".
Настройка
Установите клиентскую библиотеку Content Understanding для Python с помощью pip.
pip install azure-ai-contentunderstandingПри необходимости установите библиотеку удостоверений Azure для проверки подлинности Microsoft Entra:
pip install azure-identity
Настройка переменных среды
Чтобы выполнить проверку подлинности в службе "Распознавание содержимого", задайте переменные среды собственными значениями перед выполнением примера:
-
CONTENTUNDERSTANDING_ENDPOINT— конечная точка для вашего ресурса Content Understanding. -
CONTENTUNDERSTANDING_KEY— ключ API распознавания содержимого (необязательно, если используется 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"
Создание клиента
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
)
Копирование в ресурс Foundry
Чтобы скопировать анализатор в одном ресурсе, вызовите begin_copy_analyzer метод с идентификаторами целевого и исходного анализатора.
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!")
Совет
Этот код основан на примере анализатора copy в репозитории SDK.
Копирование через ресурсы Foundry
Копирование анализатора в ресурсах Foundry — это многоэтапный процесс:
- Предоставьте авторизацию копирования в исходном ресурсе.
- Используйте авторизацию для вызова API копирования в целевом ресурсе.
Важно
Исходные и целевые ресурсы требуют предоставления роли пользователя Cognitive Services учетным данным, используемым для запуска кода. Эта роль необходима для операций копирования между ресурсами.
Для копирования между ресурсами задайте следующие дополнительные переменные среды:
-
CONTENTUNDERSTANDING_SOURCE_RESOURCE_ID— полный идентификатор ресурса в Azure Resource Manager для исходного ресурса. -
CONTENTUNDERSTANDING_SOURCE_REGION— Azure регион исходного ресурса. -
CONTENTUNDERSTANDING_TARGET_ENDPOINT— целевая конечная точка ресурса. -
CONTENTUNDERSTANDING_TARGET_RESOURCE_ID— полный идентификатор ресурса Azure Resource Manager целевого ресурса. -
CONTENTUNDERSTANDING_TARGET_REGION— регион Microsoft Azure целевого ресурса. -
CONTENTUNDERSTANDING_TARGET_KEY— целевой ключ API (необязательно, если используется DefaultAzureCredential).
Пример формата идентификатора ресурса: /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!")
Совет
Этот код основан на примере grant copy auth из репозитория SDK.
Примечание
Анализаторы теперь поддерживают классификацию и сегментацию и анализ каждого из определенных классов и сегментов в одном запросе. При копировании анализатора, использующего эту функцию, необходимо также скопировать все ссылающиеся анализаторы.
Проверка копии
Убедитесь, что анализатор был скопирован, извлекая его из целевого ресурса.
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}")
В этом руководстве показано, как использовать SDK Content Understanding .NET для копирования пользовательских анализаторов в пределах ресурса и между ресурсами Foundry.
Необходимые условия
- Активная подписка Azure. Если у вас нет учетной записи Azure, создайте её бесплатно.
- Ресурс Microsoft Foundry, созданный в поддерживаемом регионе.
- Конечная точка ресурса и ключ API.
- Текущая версия .NET.
- Существующий пользовательский анализатор в ресурсе. Если вам нужно создать пользовательский анализатор, см. статью "Создание пользовательского анализатора ".
Настройка
Создайте консольное приложение .NET:
dotnet new console -n CopyAnalyzerExample cd CopyAnalyzerExampleУстановите клиентскую библиотеку "Понимание содержимого" для .NET.
dotnet add package Azure.AI.ContentUnderstandingПри необходимости установите библиотеку удостоверений Azure для проверки подлинности Microsoft Entra:
dotnet add package Azure.Identity
Настройка переменных среды
Чтобы выполнить проверку подлинности в службе "Распознавание содержимого", задайте переменные среды собственными значениями перед выполнением примера:
-
CONTENTUNDERSTANDING_ENDPOINT— конечная точка для вашего ресурса Content Understanding. -
CONTENTUNDERSTANDING_KEY— ключ API распознавания содержимого (необязательно, если используется 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"
Создание клиента
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());
Копирование в ресурс Foundry
Чтобы скопировать анализатор в одном ресурсе, вызовите CopyAnalyzerAsync метод с идентификаторами целевого и исходного анализатора.
string sourceAnalyzerId = "my-source-analyzer";
string targetAnalyzerId = "my-target-analyzer";
await client.CopyAnalyzerAsync(
WaitUntil.Completed,
targetAnalyzerId,
sourceAnalyzerId);
Совет
Этот код основан на примере анализатора copy в репозитории SDK.
Копирование через ресурсы Foundry
Копирование анализатора в ресурсах Foundry — это многоэтапный процесс:
- Предоставьте авторизацию копирования в исходном ресурсе.
- Используйте авторизацию для вызова API копирования в целевом ресурсе.
Важно
Исходные и целевые ресурсы требуют предоставления роли пользователя Cognitive Services учетным данным, используемым для запуска кода. Эта роль необходима для операций копирования между ресурсами.
// 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}");
Совет
Этот код основан на примере grant copy auth из репозитория SDK.
Примечание
Анализаторы теперь поддерживают классификацию и сегментацию и анализ каждого из определенных классов и сегментов в одном запросе. При копировании анализатора, использующего эту функцию, необходимо также скопировать все ссылающиеся анализаторы.
Проверка копии
Убедитесь, что анализатор был скопирован, извлекая его из целевого ресурса.
var analyzerDetails = await
targetClient.GetAnalyzerAsync(targetAnalyzerId);
var result = analyzerDetails.Value;
Console.WriteLine(
$"Analyzer '{targetAnalyzerId}' found.");
if (result.Description != null)
{
Console.WriteLine(
$" Description: {result.Description}");
}
В этом руководстве показано, как использовать пакет SDK для распознавания содержимого Java для копирования пользовательских анализаторов в ресурсе и между ресурсами Foundry.
Необходимые условия
- Активная подписка Azure. Если у вас нет учетной записи Azure, создайте её бесплатно.
- Ресурс Microsoft Foundry, созданный в поддерживаемом регионе.
- Конечная точка ресурса и ключ API.
- Java комплект средств разработки (JDK) версии 8 или более поздней.
- Apache Maven.
- Существующий пользовательский анализатор в ресурсе. Если вам нужно создать пользовательский анализатор, см. статью "Создание пользовательского анализатора ".
Настройка
Добавьте зависимость Content Understanding в раздел файла
<dependencies>:<dependency> <groupId>com.azure</groupId> <artifactId>azure-ai-contentunderstanding</artifactId> <version>1.0.0</version> </dependency>При необходимости добавьте библиотеку удостоверений Azure для проверки подлинности Microsoft Entra:
<dependency> <groupId>com.azure</groupId> <artifactId>azure-identity</artifactId> <version>1.14.2</version> </dependency>
Настройка переменных среды
Чтобы выполнить проверку подлинности в службе "Распознавание содержимого", задайте переменные среды собственными значениями перед выполнением примера:
-
CONTENTUNDERSTANDING_ENDPOINT— конечная точка для вашего ресурса Content Understanding. -
CONTENTUNDERSTANDING_KEY— ключ API распознавания содержимого (необязательно, если используется 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"
Создание клиента
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();
}
Копирование в ресурс Foundry
Чтобы скопировать анализатор в одном ресурсе, вызовите beginCopyAnalyzer метод с идентификаторами целевого и исходного анализатора.
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!");
Совет
Этот код основан на примере анализатора copy в репозитории SDK.
Копирование через ресурсы Foundry
Копирование анализатора в ресурсах Foundry — это многоэтапный процесс:
- Предоставьте авторизацию копирования в исходном ресурсе.
- Используйте авторизацию для вызова API копирования в целевом ресурсе.
Важно
Исходные и целевые ресурсы требуют предоставления роли пользователя Cognitive Services учетным данным, используемым для запуска кода. Эта роль необходима для операций копирования между ресурсами.
Пример формата идентификатора ресурса: /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());
Совет
Этот код основан на примере grant copy auth из репозитория SDK.
Примечание
Анализаторы теперь поддерживают классификацию и сегментацию и анализ каждого из определенных классов и сегментов в одном запросе. При копировании анализатора, использующего эту функцию, необходимо также скопировать все ссылающиеся анализаторы.
Проверка копии
Убедитесь, что анализатор был скопирован, извлекая его из целевого ресурса.
ContentAnalyzer analyzer =
targetClient.getAnalyzer(targetAnalyzerId);
System.out.println(
"Analyzer '" + targetAnalyzerId + "' found.");
if (analyzer.getDescription() != null) {
System.out.println(
" Description: "
+ analyzer.getDescription());
}
В этом руководстве показано, как использовать JavaScript SDK для понимания содержимого для копирования пользовательских анализаторов внутри ресурсов и между ресурсами Foundry.
Необходимые условия
- Активная подписка Azure. Если у вас нет учетной записи Azure, создайте её бесплатно.
- Ресурс Microsoft Foundry, созданный в поддерживаемом регионе.
- Конечная точка ресурса и ключ API.
- Node.js Версия LTS.
- Существующий пользовательский анализатор в ресурсе. Если вам нужно создать пользовательский анализатор, см. статью "Создание пользовательского анализатора ".
Настройка
Создайте проект Node.js:
mkdir copy-analyzer-example cd copy-analyzer-example npm init -yУстановите клиентскую библиотеку анализа содержания:
npm install @azure/ai-content-understandingПри необходимости установите библиотеку удостоверений Azure для проверки подлинности Microsoft Entra:
npm install @azure/identity
Настройка переменных среды
Чтобы выполнить проверку подлинности в службе "Распознавание содержимого", задайте переменные среды собственными значениями перед выполнением примера:
-
CONTENTUNDERSTANDING_ENDPOINT— конечная точка для вашего ресурса Content Understanding. -
CONTENTUNDERSTANDING_KEY— ключ API распознавания содержимого (необязательно, если используется 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"
Создание клиента
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
);
Копирование в ресурс Foundry
Чтобы скопировать анализатор в одном ресурсе, вызовите copyAnalyzer метод с идентификаторами целевого и исходного анализатора.
const sourceAnalyzerId = "my-source-analyzer";
const targetAnalyzerId = "my-target-analyzer";
const copyPoller = client.copyAnalyzer(
targetAnalyzerId, sourceAnalyzerId
);
await copyPoller.pollUntilDone();
console.log("Analyzer copied successfully!");
Совет
Этот код основан на примере анализатора copy в репозитории SDK.
Копирование через ресурсы Foundry
Копирование анализатора в ресурсах Foundry — это многоэтапный процесс:
- Предоставьте авторизацию копирования в исходном ресурсе.
- Используйте авторизацию для вызова API копирования в целевом ресурсе.
Важно
Исходные и целевые ресурсы требуют предоставления роли пользователя Cognitive Services учетным данным, используемым для запуска кода. Эта роль необходима для операций копирования между ресурсами.
Для копирования между ресурсами задайте следующие дополнительные переменные среды:
-
CONTENTUNDERSTANDING_SOURCE_RESOURCE_ID— полный идентификатор ресурса в Azure Resource Manager для исходного ресурса. -
CONTENTUNDERSTANDING_SOURCE_REGION— Azure регион исходного ресурса. -
CONTENTUNDERSTANDING_TARGET_ENDPOINT— целевая конечная точка ресурса. -
CONTENTUNDERSTANDING_TARGET_RESOURCE_ID— полный идентификатор ресурса Azure Resource Manager целевого ресурса. -
CONTENTUNDERSTANDING_TARGET_REGION— регион Microsoft Azure целевого ресурса. -
CONTENTUNDERSTANDING_TARGET_KEY— целевой ключ API (необязательно, если используется DefaultAzureCredential).
Пример формата идентификатора ресурса: /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}`
);
Совет
Этот код основан на примере grant copy auth из репозитория SDK.
Примечание
Анализаторы теперь поддерживают классификацию и сегментацию и анализ каждого из определенных классов и сегментов в одном запросе. При копировании анализатора, использующего эту функцию, необходимо также скопировать все ссылающиеся анализаторы.
Проверка копии
Убедитесь, что анализатор был скопирован, извлекая его из целевого ресурса.
const analyzer = await client.getAnalyzer(
targetAnalyzerId
);
console.log(
`Analyzer '${targetAnalyzerId}' found.`
);
if (analyzer.description) {
console.log(
` Description: ${analyzer.description}`
);
}
В этом руководстве описывается, как использовать TypeScript SDK для Content Understanding для копирования пользовательских анализаторов внутри одного ресурса и между ресурсами Foundry.
Необходимые условия
- Активная подписка Azure. Если у вас нет учетной записи Azure, создайте её бесплатно.
- Ресурс Microsoft Foundry, созданный в поддерживаемом регионе.
- Конечная точка ресурса и ключ API.
- Node.js Версия LTS.
- Typescript 5.x или более поздней версии.
- Существующий пользовательский анализатор в ресурсе. Если вам нужно создать пользовательский анализатор, см. статью "Создание пользовательского анализатора ".
Настройка
Создайте проект Node.js:
mkdir copy-analyzer-example cd copy-analyzer-example npm init -yУстановите TypeScript и клиентскую библиотеку Content Understanding.
npm install typescript ts-node @azure/ai-content-understandingПри необходимости установите библиотеку удостоверений Azure для проверки подлинности Microsoft Entra:
npm install @azure/identity
Настройка переменных среды
Чтобы выполнить проверку подлинности в службе "Распознавание содержимого", задайте переменные среды собственными значениями перед выполнением примера:
-
CONTENTUNDERSTANDING_ENDPOINT— конечная точка для вашего ресурса Content Understanding. -
CONTENTUNDERSTANDING_KEY— ключ API распознавания содержимого (необязательно, если используется 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"
Создание клиента
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
);
Копирование в ресурс Foundry
Чтобы скопировать анализатор в одном ресурсе, вызовите copyAnalyzer метод с идентификаторами целевого и исходного анализатора.
const sourceAnalyzerId = "my-source-analyzer";
const targetAnalyzerId = "my-target-analyzer";
const copyPoller = client.copyAnalyzer(
targetAnalyzerId, sourceAnalyzerId
);
await copyPoller.pollUntilDone();
console.log("Analyzer copied successfully!");
Совет
Этот код основан на примере анализатора copy в репозитории SDK.
Копирование через ресурсы Foundry
Копирование анализатора в ресурсах Foundry — это многоэтапный процесс:
- Предоставьте авторизацию копирования в исходном ресурсе.
- Используйте авторизацию для вызова API копирования в целевом ресурсе.
Важно
Исходные и целевые ресурсы требуют предоставления роли пользователя Cognitive Services учетным данным, используемым для запуска кода. Эта роль необходима для операций копирования между ресурсами.
Для копирования между ресурсами задайте следующие дополнительные переменные среды:
-
CONTENTUNDERSTANDING_SOURCE_RESOURCE_ID— полный идентификатор ресурса в Azure Resource Manager для исходного ресурса. -
CONTENTUNDERSTANDING_SOURCE_REGION— Azure регион исходного ресурса. -
CONTENTUNDERSTANDING_TARGET_ENDPOINT— целевая конечная точка ресурса. -
CONTENTUNDERSTANDING_TARGET_RESOURCE_ID— полный идентификатор ресурса Azure Resource Manager целевого ресурса. -
CONTENTUNDERSTANDING_TARGET_REGION— регион Microsoft Azure целевого ресурса. -
CONTENTUNDERSTANDING_TARGET_KEY— целевой ключ API (необязательно, если используется DefaultAzureCredential).
Пример формата идентификатора ресурса: /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}`
);
Совет
Этот код основан на примере grant copy auth из репозитория SDK.
Примечание
Анализаторы теперь поддерживают классификацию и сегментацию и анализ каждого из определенных классов и сегментов в одном запросе. При копировании анализатора, использующего эту функцию, необходимо также скопировать все ссылающиеся анализаторы.
Проверка копии
Убедитесь, что анализатор был скопирован, извлекая его из целевого ресурса.
const analyzer = await client.getAnalyzer(
targetAnalyzerId
);
console.log(
`Analyzer '${targetAnalyzerId}' found.`
);
if (analyzer.description) {
console.log(
` Description: ${analyzer.description}`
);
}
Связанное содержимое
- Дополнительные примеры пакета SDK Python
- Изучите больше примеров пакета .NET SDK
- Изучите больше примеров Java SDK
- Дополнительные примеры пакета SDK JavaScript
- Дополнительные примеры пакета SDK TypeScript