Content Understanding çözümleyicisi oluşturma

Tamamlandı

Tip

Daha fazla ayrıntı için Metin ve resimler sekmesine bakın!

Çoğu senaryoda, Content Understanding Studio'daki görsel arabirimi kullanarak çözümleyiciler oluşturmayı ve test etmeyi düşünmelisiniz. Ancak bazı durumlarda, istediğiniz içerik alanları için şemanın JSON tanımını API'ye göndererek bir çözümleyici oluşturmak isteyebilirsiniz.

Çözümleyici için şema tanımlama

Çözümleyiciler, bir içerik dosyasından ayıklamak veya oluşturmak istediğiniz alanları tanımlayan şemaları temel alır. Şema en basiti, çözümleyici tanımının bu örneğinde gösterildiği gibi bir JSON belgesinde belirtilebilen bir alan kümesidir:

{
    "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"
    }
}

Bu özel çözümleyici şeması örneği, önceden oluşturulmuş belge çözümleyicisini temel alır ve kartvizitte bulmayı beklediğiniz iki alanı açıklar: ContactName ve EmailAddress. Her iki alan da dize veri türleri olarak tanımlanır ve bir belgeden ayıklanması beklenir (başka bir deyişle, dize değerlerinin belgeyle ilgili bilgiler çıkarılarak oluşturulabilecek alanlar değil, "okunabilmesi" için belgede bulunması beklenir). nesnesi, models çözümleyicinin işlemek için kullandığı oluşturucu modelleri belirtir.

Uyarı

Bu örnek, çalışan bir çözümleyici oluşturmak için gereken minimum bilgiyle özellikle basittir. Gerçekte, şema büyük olasılıkla farklı türlerde daha fazla alan içerebilir ve çözümleyici tanımı daha fazla yapılandırma ayarı içerebilir. JSON örnek bir belge bile içerebilir. Daha fazla ayrıntı için Azure Content Understanding API belgelerine bakın.

Çözümleyici oluşturmak için Python SDK'sını kullanma

Çözümleyici tanımınız uygunken, çözümleyiciyi oluşturmak için Python SDK'sını kullanabilirsiniz. Bu sınıf, ContentUnderstandingClient sizin için zaman uyumsuz oluşturma işlemini işleyen bir begin_create_analyzer yöntem sağlar.

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}")

Çözümleyici oluşturmak için REST API kullanma

Alternatif olarak REST API'yi doğrudan kullanabilirsiniz. JSON verileri, çözümleyici oluşturma işlemini başlatmak için istek üst bilgisinde API anahtarıyla uç noktaya istek PUT olarak gönderilir.

İstekten gelen PUT yanıt, üst bilgide bir Operation-Location içerir, bu da isteğin durumunu bir isteği göndererek kontrol edebileceğiniz bir GET URL'si sağlar.

Aşağıdaki Python kodu, card.json (daha önce açıklanan JSON tanımını içerdiği varsayılır) adlı dosyanın içeriğine göre bir çözümleyici oluşturma isteği gönderir:

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!")