Создайте анализатор понимания содержимого

Завершено

Tip

Дополнительные сведения см. на вкладке "Текст и изображения ".

В большинстве сценариев следует рассмотреть возможность создания и тестирования анализаторов с помощью визуального интерфейса в Content Understanding Studio. Однако в некоторых случаях может потребоваться создать анализатор, отправив определение JSON схемы для нужных полей содержимого в API.

Определение схемы для анализатора

Анализаторы основаны на схемах, определяющих поля, которые необходимо извлечь или создать из файла содержимого. На самом простом этапе схема представляет собой набор полей, которые можно указать в документе JSON, как показано в этом примере определения анализатора:

{
    "description": "Simple business card",
    "baseAnalyzerId": "prebuilt-document",
    "config": {
        "returnDetails": true
    },
    "fieldSchema": {
        "fields": {
            "ContactName": {
                "type": "string",
                "method": "extract",
                "description": "Name on business card"
            },
            "EmailAddress": {
                "type": "string",
                "method": "extract",
                "description": "Email address on business card"
            }
        }
    },
    "models": {
        "completion": "gpt-4.1",
        "embedding": "text-embedding-3-large"
    }
}

Этот пример пользовательской схемы анализатора основан на предварительно созданном анализаторе документов и описывает два поля, которые вы хотите найти на визитной карточке: ContactName и EmailAddress. Оба поля определяются как строковые типы данных, и, как ожидается , извлекаются из документа (другими словами, строковые значения должны существовать в документе, чтобы они могли быть "прочитаны", а не быть полями, которые могут быть созданы путем вывода сведений о документе). Объект models задает генерирующие модели, которые анализатор использует для обработки.

Замечание

Этот пример намеренно прост, с минимальными сведениями, необходимыми для создания рабочего анализатора. В действительности схема, скорее всего, будет включать больше полей различных типов, и определение анализатора будет включать дополнительные параметры конфигурации. Json может даже включать пример документа. Дополнительные сведения см. в документации по API распознавания содержимого Azure .

Создание анализатора с помощью пакета SDK для Python

С помощью определения анализатора можно использовать пакет SDK для Python для создания анализатора. Класс ContentUnderstandingClient предоставляет метод begin_create_analyzer, который для вас обрабатывает асинхронный процесс создания.

from azure.ai.contentunderstanding import ContentUnderstandingClient
from azure.core.credentials import AzureKeyCredential

# Authenticate the client
endpoint = "<YOUR_ENDPOINT>"
credential = AzureKeyCredential("<YOUR_API_KEY>")
client = ContentUnderstandingClient(endpoint=endpoint, credential=credential)

# Define the analyzer
analyzer_name = "business_card_analyser"
analyzer_definition = {
    "description": "Simple business card",
    "baseAnalyzerId": "prebuilt-document",
    "config": {"returnDetails": True},
    "fieldSchema": {
        "fields": {
            "ContactName": {
                "type": "string",
                "method": "extract",
                "description": "Name on business card"
            },
            "EmailAddress": {
                "type": "string",
                "method": "extract",
                "description": "Email address on business card"
            }
        }
    },
    "models": {
        "completion": "gpt-4.1",
        "embedding": "text-embedding-3-large"
    }
}

# Create the analyzer and wait for completion
poller = client.begin_create_analyzer(analyzer_name, body=analyzer_definition)
result = poller.result()
print(f"Analyzer created: {result.analyzer_id}")

Создание анализатора с помощью REST API

Кроме того, можно использовать REST API напрямую. Данные JSON передаются в качестве запроса к конечной точке с ключом PUT API в заголовке запроса, чтобы запустить операцию создания анализатора.

Ответ на запрос PUT включает местоположение операции в заголовке, которое предоставляет URL-адрес обратного вызова, который можно использовать для того, чтобы проверить состояние запроса путем отправки GET запроса.

Следующий код Python отправляет запрос на создание анализатора на основе содержимого файла с именемcard.json (который, как предполагается, содержит определение JSON, описанное ранее):

import json
import requests

# Get the business card schema
with open("card.json", "r") as file:
    schema_json = json.load(file)

# Use a PUT request to submit the schema for a new analyzer
analyzer_name = "business_card_analyser"

headers = {
    "Ocp-Apim-Subscription-Key": "<YOUR_API_KEY>",
    "Content-Type": "application/json"}

url = f"{<YOUR_ENDPOINT>}/contentunderstanding/analyzers/{analyzer_name}?api-version=2025-11-01"

response = requests.put(url, headers=headers, data=json.dumps(schema_json))

# Get the response and extract the ID assigned to the operation
callback_url = response.headers["Operation-Location"]

# Use a GET request to check the status of the operation
result_response = requests.get(callback_url, headers=headers)

# Keep polling until the operation is complete
status = result_response.json().get("status")
while status == "Running":
    result_response = requests.get(callback_url, headers=headers)
    status = result_response.json().get("status")

print("Done!")