Tworzenie analizatora usługi Content Understanding
W większości scenariuszy należy rozważyć tworzenie i testowanie analizatorów przy użyciu interfejsu wizualnego w portalu Microsoft Foundry. Jednak w niektórych przypadkach możesz utworzyć analizator, przesyłając definicję JSON schematu dla żądanych pól zawartości do interfejsu API REST.
Definiowanie schematu dla analizatora
Analizatory są oparte na schematach definiujących pola, które mają zostać wyodrębnione lub wygenerowane z pliku zawartości. Najprostszym schematem jest zestaw pól, które można określić w dokumencie JSON, jak pokazano w tym przykładzie definicji analizatora:
{
"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"
}
}
}
}
Ten przykład niestandardowego schematu analizatora jest oparty na wstępnie utworzonym analizatorze dokumentów i opisuje dwa pola, które można znaleźć na wizytówce: ContactName i EmailAddress. Oba pola są definiowane jako typy danych ciągów i powinny zostać wyodrębnione z dokumentu (innymi słowy, wartości ciągów powinny istnieć w dokumencie, aby mogły być "odczytywane", zamiast być polami, które mogą być generowane przez wnioskowanie informacji o dokumencie).
Uwaga / Notatka
Ten przykład jest celowo prosty, przy minimalnych informacjach potrzebnych do utworzenia działającego analizatora. W rzeczywistości schemat prawdopodobnie będzie zawierać więcej pól różnych typów, a definicja analizatora będzie zawierać więcej ustawień konfiguracji. Kod JSON może nawet zawierać przykładowy dokument. Aby uzyskać więcej informacji, zobacz dokumentację interfejsu API REST usługi Azure Content Understanding .
Tworzenie analizatora przy użyciu interfejsu API REST
Korzystając z definicji analizatora, możesz użyć interfejsu API REST, aby przesłać go do usługi Azure Content Understanding do utworzenia. Dane JSON są przesyłane jako PUT żądanie do punktu końcowego z kluczem interfejsu API w nagłówku żądania, aby rozpocząć operację tworzenia analizatora.
Odpowiedź na żądanie PUT zawiera w nagłówku element Operation-Location, który dostarcza adres URL do wywołania zwrotnego, z którego można skorzystać, aby sprawdzić stan żądania, przesyłając żądanie GET.
Aby przesłać żądanie, możesz użyć dowolnego narzędzia klienta lub języka obsługującego protokół HTTP. Na przykład poniższy kod w języku Python przesyła żądanie utworzenia analizatora na podstawie zawartości pliku o nazwie card.json (który zakłada się, że zawiera wcześniej opisaną definicję JSON)
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!")