Erstellen eines Analysetools für Inhaltsverständnis
In den meisten Szenarien sollten Sie das Erstellen und Testen von Analyzern mithilfe der visuellen Schnittstelle im Microsoft Foundry-Portal in Betracht ziehen. In einigen Fällen können Sie jedoch einen Analyzer erstellen, indem Sie eine JSON-Definition des Schemas für die gewünschten Inhaltsfelder an die REST-API übermitteln.
Definieren eines Schemas für einen Analyzer
Analysatoren basieren auf Schemas, die die Felder definieren, die Sie aus einer Inhaltsdatei extrahieren oder generieren möchten. Am einfachsten ist ein Schema eine Reihe von Feldern, die in einem JSON-Dokument angegeben werden können, wie in diesem Beispiel einer Analysedefinition gezeigt:
{
"description": "Simple business card",
"baseAnalyzerId": "prebuilt-documentAnalyzer",
"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"
}
}
}
}
Dieses Beispiel eines benutzerdefinierten Analyseschemas basiert auf der vordefinierten Dokumentanalyse und beschreibt zwei Felder, die Sie auf einer Visitenkarte erwarten würden: ContactName und EmailAddress. Beide Felder sind als Zeichenfolgendatentypen definiert und werden voraussichtlich aus einem Dokument extrahiert (mit anderen Worten, die Zeichenfolgenwerte werden erwartet, dass sie im Dokument vorhanden sind, sodass sie "gelesen" werden können, anstatt Felder zu sein, die durch Ableiten von Informationen zum Dokument generiert werden können).
Hinweis
Dieses Beispiel ist absichtlich einfach, mit den minimalen Informationen, die zum Erstellen eines funktionierenden Analyzers erforderlich sind. In Wirklichkeit würde das Schema wahrscheinlich mehr Felder unterschiedlicher Typen enthalten, und die Analysedefinition würde weitere Konfigurationseinstellungen enthalten. Der JSON-Code kann sogar ein Beispieldokument enthalten. Weitere Details finden Sie in der Azure Content Understanding REST-API-Dokumentation .
Verwenden der REST-API zum Erstellen eines Analyzers
Mit ihrer Analysedefinition können Sie die REST-API verwenden, um sie an das zu erstellende Azure Content Understanding zu übermitteln. Die JSON-Daten werden als PUT Anforderung an den Endpunkt mit dem API-Schlüssel im Anforderungsheader übermittelt, um den Analyseerstellungsvorgang zu starten.
Die Antwort auf die PUT Anforderung enthält im Header einen Operation-Location, der eine Rückruf-URL bereitstellt, mit der Sie den Status der Anforderung überprüfen können, indem Sie eine GET Anforderung senden.
Sie können ein beliebiges HTTP-fähiges Clienttool oder eine beliebige Sprache verwenden, um die Anforderung zu übermitteln. Der folgende Python-Code sendet z. B. eine Anforderung zum Erstellen eines Analyzers basierend auf dem Inhalt einer Datei mit dem Namen card.json (die angenommen wird, dass sie die zuvor beschriebene JSON-Definition enthält)
import json
import requests
# Get the buisness 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-05-01-preview"
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!")