Skapa en Content Understanding-analys
Tip
Mer information finns på fliken Text och bilder !
I de flesta scenarier bör du överväga att skapa och testa analysverktyg med hjälp av det visuella gränssnittet i Content Understanding Studio. I vissa fall kanske du vill skapa en analysator genom att skicka en JSON-definition av schemat för önskade innehållsfält till API:et.
Definiera ett schema för en analysator
Analysverktyg baseras på scheman som definierar de fält som du vill extrahera eller generera från en innehållsfil. När det är som enklast är ett schema en uppsättning fält som kan anges i ett JSON-dokument, vilket visas i det här exemplet på en analysdefinition:
{
"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"
}
}
Det här exemplet på ett anpassat analysschema baseras på den färdiga dokumentanalysatorn och beskriver två fält som du kan förvänta dig att hitta på ett visitkort: ContactName och EmailAddress. Båda fälten definieras som strängdatatyper och förväntas extraheras från ett dokument (med andra ord förväntas strängvärdena finnas i dokumentet så att de kan "läsas" i stället för att vara fält som kan genereras genom att härleda information om dokumentet). Objektet models anger de generativa modeller som analyseraren använder för bearbetning.
Anmärkning
Det här exemplet är avsiktligt enkelt, med den minimala information som behövs för att skapa en fungerande analysator. I verkligheten skulle schemat förmodligen innehålla fler fält av olika typer, och analysatordefinitionen skulle innehålla fler konfigurationsinställningar. JSON kan till och med innehålla ett exempeldokument. Mer information finns i dokumentationen för Azure Content Understanding API .
Använda Python SDK för att skapa en analys
Med analysdefinitionen på plats kan du använda Python SDK för att skapa analysatorn. Klassen ContentUnderstandingClient innehåller en begin_create_analyzer metod som hanterar den asynkrona skapandeprocessen åt dig.
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}")
Använda REST-API:et för att skapa en analys
Du kan också använda REST-API:et direkt. JSON-data skickas som en PUT begäran till slutpunkten med API-nyckeln i begärandehuvudet för att starta åtgärden för att skapa analysatorn.
Svaret från PUT begäran innehåller en Operation-Location i headern, som tillhandahåller en callback-URL som du kan använda för att kontrollera statusen för begäran genom att skicka en GET begäran.
Följande Python-kod skickar en begäran om att skapa ett analysverktyg baserat på innehållet i en fil med namnet card.json (som antas innehålla JSON-definitionen som beskrevs tidigare):
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!")