Crearea unui analizor de înțelegere a conținutului
Sfat
Consultați fila Text și imagini pentru mai multe detalii!
În majoritatea situațiilor, ar trebui să iei în considerare crearea și testarea analizatoarelor folosind interfața vizuală din Content Understanding Studio. Totuși, în unele cazuri ai putea dori să creezi un analizor trimițând o definiție JSON a schemei pentru câmpurile de conținut dorite către API.
Definirea unei scheme pentru un analizor
Analizoarele se bazează pe scheme care definesc câmpurile pe care doriți să le extrageți sau să le generați dintr-un fișier de conținut. La cel mai simplu, o schemă este un set de câmpuri, care poate fi specificat într-un document JSON, așa cum se arată în acest exemplu de definiție a analizorului:
{
"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"
}
}
Acest exemplu de schemă analizor particularizat se bazează pe analizorul de documente predefinit și descrie două câmpuri pe care vă așteptați să le găsiți pe o carte de vizită: ContactName și EmailAddress. Ambele câmpuri sunt definite ca tipuri de date șir și se așteaptă să fie extrase dintr-un document (cu alte cuvinte, valorile șirului sunt așteptate să existe în document, astfel încât să poată fi "citite"; în loc să fie câmpuri care pot fi generate prin deducerea informațiilor despre document). Obiectul models specifică modelele generative pe care analizatorul le folosește pentru procesare.
Notă
Acest exemplu este simplu în mod intenționat, cu informațiile minime necesare pentru a crea un analizor de lucru. În realitate, schema ar include probabil mai multe câmpuri de tipuri diferite, iar definiția analizorului ar include mai multe setări de configurare. JSON poate include chiar un document eșantion. Consultați documentația Azure Content Understanding API pentru mai multe detalii.
Utilizarea SDK-ului Python pentru a crea un analizor
Cu definiția analizorului la punct, poți folosi SDK-ul Python pentru a crea analizatorul. Clasa ContentUnderstandingClient oferă o begin_create_analyzer metodă care gestionează procesul de creare asincronă pentru tine.
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}")
Utilizarea API-ului REST pentru a crea un analizor
Alternativ, poți folosi direct API-ul REST. Datele JSON sunt transmise ca PUT solicitare la punctul final cu cheia API din antetul solicitării pentru a porni operațiunea de creare a analizorului.
Răspunsul de la PUT solicitare include o Locație-operațiune în antet, care furnizează un URL de apel invers pe care îl puteți utiliza pentru a verifica starea solicitării, prin trimiterea unei GET solicitări.
Următorul cod Python trimite o cerere de a crea un analizor bazat pe conținutul unui fișier numitcard.json (care se presupune că conține definiția JSON descrisă anterior):
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!")