DocumentAnalysisClient class
Un client per interagire con le funzionalità di analisi del servizio Riconoscimento modulo.
Esempi:
Il servizio Riconoscimento modulo e i client supportano due mezzi di autenticazione:
Azure Active Directory
import { DefaultAzureCredential } from "@azure/identity";
import { DocumentAnalysisClient } from "@azure/ai-form-recognizer";
const credential = new DefaultAzureCredential();
const client = new DocumentAnalysisClient(
"https://<resource name>.cognitiveservices.azure.com",
credential,
);
Chiave API (chiave di sottoscrizione)
import { AzureKeyCredential, DocumentAnalysisClient } from "@azure/ai-form-recognizer";
const credential = new AzureKeyCredential("<API key>");
const client = new DocumentAnalysisClient(
"https://<resource name>.cognitiveservices.azure.com",
credential,
);
Costruttori
| Document |
Creare un'istanza di Esempio:
|
| Document |
Creare un'istanza di Per altre informazioni sull'autenticazione con Azure Active Directory, vedere il pacchetto Esempio:
|
Metodi
| begin |
Estrarre dati da un input usando un modello specificato dall'ID univoco. Questa operazione supporta modelli personalizzati e predefiniti. Ad esempio, per usare il modello di fattura predefinito, specificare l'ID modello "precompilt-invoice" o per usare il modello di layout predefinito più semplice, specificare l'ID modello "precompilt-layout". I campi prodotti nella EsempiQuesto metodo supporta corpi di richiesta trasmessi (FormRecognizerRequestBody) come oggetti Node.JS
|
| begin |
Estrarre dati da un input usando un modello con uno schema di documento noto fortemente tipizzato (un DocumentModel). I campi prodotti nella EsempiQuesto metodo supporta corpi di richiesta trasmessi (FormRecognizerRequestBody) come oggetti Node.JS Se l'input fornito è una stringa, verrà considerato come URL per la posizione di un documento da analizzare. Per altre informazioni, vedere il metodo beginAnalyzeDocumentFromUrl. L'uso di questo metodo è preferibile quando si usano gli URL e il supporto url viene fornito solo in questo metodo per garantire la compatibilità con le versioni precedenti.
|
| begin |
Estrarre dati da un input usando un modello specificato dall'ID univoco. Questa operazione supporta modelli personalizzati e predefiniti. Ad esempio, per usare il modello di fattura predefinito, specificare l'ID modello "precompilt-invoice" o per usare il modello di layout predefinito più semplice, specificare l'ID modello "precompilt-layout". I campi prodotti nella EsempiQuesto metodo supporta l'estrazione di dati da un file in un determinato URL. Il servizio Riconoscimento modulo tenterà di scaricare un file usando l'URL inviato, quindi l'URL deve essere accessibile dalla rete Internet pubblica. Ad esempio, è possibile usare un token di firma di accesso condiviso per concedere l'accesso in lettura a un BLOB in Archiviazione di Azure e il servizio userà l'URL con codifica SAS per richiedere il file.
|
| begin |
Estrarre dati da un input usando un modello con uno schema di documento noto fortemente tipizzato (un DocumentModel). I campi prodotti nella EsempiQuesto metodo supporta l'estrazione di dati da un file in un determinato URL. Il servizio Riconoscimento modulo tenterà di scaricare un file usando l'URL inviato, quindi l'URL deve essere accessibile dalla rete Internet pubblica. Ad esempio, è possibile usare un token di firma di accesso condiviso per concedere l'accesso in lettura a un BLOB in Archiviazione di Azure e il servizio userà l'URL con codifica SAS per richiedere il file.
|
| begin |
Classificare un documento usando un classificatore personalizzato specificato dal relativo ID. Questo metodo produce un'operazione a esecuzione prolungata (poller) che alla fine produrrà un EsempioQuesto metodo supporta corpi di richiesta trasmessi (FormRecognizerRequestBody) come oggetti Node.JS
|
| begin |
Classificare un documento da un URL usando un classificatore personalizzato specificato dal relativo ID. Questo metodo produce un'operazione a esecuzione prolungata (poller) che alla fine produrrà un EsempioQuesto metodo supporta l'estrazione di dati da un file in un determinato URL. Il servizio Riconoscimento modulo tenterà di scaricare un file usando l'URL inviato, quindi l'URL deve essere accessibile dalla rete Internet pubblica. Ad esempio, è possibile usare un token di firma di accesso condiviso per concedere l'accesso in lettura a un BLOB in Archiviazione di Azure e il servizio userà l'URL con codifica SAS per richiedere il file.
|
Dettagli costruttore
DocumentAnalysisClient(string, KeyCredential, DocumentAnalysisClientOptions)
Creare un'istanza di DocumentAnalysisClient da un endpoint della risorsa e una chiave API statica (KeyCredential),
Esempio:
import { AzureKeyCredential, DocumentAnalysisClient } from "@azure/ai-form-recognizer";
const credential = new AzureKeyCredential("<API key>");
const client = new DocumentAnalysisClient(
"https://<resource name>.cognitiveservices.azure.com",
credential,
);
new DocumentAnalysisClient(endpoint: string, credential: KeyCredential, options?: DocumentAnalysisClientOptions)
Parametri
- endpoint
-
string
URL dell'endpoint di un'istanza di Servizi cognitivi di Azure
- credential
- KeyCredential
KeyCredential contenente la chiave di sottoscrizione dell'istanza di Servizi cognitivi
- options
- DocumentAnalysisClientOptions
impostazioni facoltative per la configurazione di tutti i metodi nel client
DocumentAnalysisClient(string, TokenCredential, DocumentAnalysisClientOptions)
Creare un'istanza di DocumentAnalysisClient da un endpoint della risorsa e un'identità di Azure TokenCredential.
Per altre informazioni sull'autenticazione con Azure Active Directory, vedere il pacchetto @azure/identity.
Esempio:
import { DefaultAzureCredential } from "@azure/identity";
import { DocumentAnalysisClient } from "@azure/ai-form-recognizer";
const credential = new DefaultAzureCredential();
const client = new DocumentAnalysisClient(
"https://<resource name>.cognitiveservices.azure.com",
credential,
);
new DocumentAnalysisClient(endpoint: string, credential: TokenCredential, options?: DocumentAnalysisClientOptions)
Parametri
- endpoint
-
string
URL dell'endpoint di un'istanza di Servizi cognitivi di Azure
- credential
- TokenCredential
un'istanza tokenCredential dal pacchetto di @azure/identity
- options
- DocumentAnalysisClientOptions
impostazioni facoltative per la configurazione di tutti i metodi nel client
Dettagli metodo
beginAnalyzeDocument(string, FormRecognizerRequestBody, AnalyzeDocumentOptions<AnalyzeResult<AnalyzedDocument>>)
Estrarre dati da un input usando un modello specificato dall'ID univoco.
Questa operazione supporta modelli personalizzati e predefiniti. Ad esempio, per usare il modello di fattura predefinito, specificare l'ID modello "precompilt-invoice" o per usare il modello di layout predefinito più semplice, specificare l'ID modello "precompilt-layout".
I campi prodotti nella AnalyzeResult dipendono dal modello utilizzato per l'analisi e i valori nei campi dei documenti estratti dipendono dai tipi di documento del modello (se presenti) e dai relativi schemi di campo.
Esempi
Questo metodo supporta corpi di richiesta trasmessi (FormRecognizerRequestBody) come oggetti Node.JS ReadableStream, browser Blobs e ArrayBuffers. Il contenuto del corpo verrà caricato nel servizio per l'analisi.
import { DefaultAzureCredential } from "@azure/identity";
import { DocumentAnalysisClient } from "@azure/ai-form-recognizer";
import { createReadStream } from "node:fs";
import { PrebuiltReceiptModel } from "../samples-dev/prebuilt/prebuilt-receipt.js";
const credential = new DefaultAzureCredential();
const client = new DocumentAnalysisClient(
"https://<resource name>.cognitiveservices.azure.com",
credential,
);
const path = "<path to a document>";
const readStream = createReadStream(path);
// The PrebuiltReceiptModel `DocumentModel` instance encodes both the model ID and a stronger return type for the operation
const poller = await client.beginAnalyzeDocument(PrebuiltReceiptModel, readStream, {
onProgress: ({ status }) => {
console.log(`status: ${status}`);
},
});
const {
documents: [receiptDocument],
} = await poller.pollUntilDone();
// The fields of the document constitute the extracted receipt data.
const receipt = receiptDocument.fields;
if (receipt === undefined) {
throw new Error("Expected at least one receipt in analysis result.");
}
console.log(`Receipt data (${receiptDocument.docType})`);
console.log(" Merchant Name:", receipt.merchantName?.value);
// The items of the receipt are an example of a `DocumentArrayValue`
if (receipt.items !== undefined) {
console.log("Items:");
for (const { properties: item } of receipt.items.values) {
console.log("- Description:", item.description?.value);
console.log(" Total Price:", item.totalPrice?.value);
}
}
console.log(" Total:", receipt.total?.value);
function beginAnalyzeDocument(modelId: string, document: FormRecognizerRequestBody, options?: AnalyzeDocumentOptions<AnalyzeResult<AnalyzedDocument>>): Promise<AnalysisPoller<AnalyzeResult<AnalyzedDocument>>>
Parametri
- modelId
-
string
ID univoco (nome) del modello all'interno della risorsa del client
- document
- FormRecognizerRequestBody
FormRecognizerRequestBody che verrà caricato con la richiesta
impostazioni facoltative per l'operazione di analisi e il poller
Restituisce
Promise<AnalysisPoller<AnalyzeResult<AnalyzedDocument>>>
operazione a esecuzione prolungata (poller) che alla fine produrrà un AnalyzeResult
beginAnalyzeDocument<Result>(DocumentModel<Result>, FormRecognizerRequestBody, AnalyzeDocumentOptions<Result>)
Estrarre dati da un input usando un modello con uno schema di documento noto fortemente tipizzato (un DocumentModel).
I campi prodotti nella AnalyzeResult dipendono dal modello usato per l'analisi. In TypeScript il tipo del risultato per questo overload del metodo viene dedotto dal tipo dell'input DocumentModel.
Esempi
Questo metodo supporta corpi di richiesta trasmessi (FormRecognizerRequestBody) come oggetti Node.JS ReadableStream, browser Blobs e ArrayBuffers. Il contenuto del corpo verrà caricato nel servizio per l'analisi.
Se l'input fornito è una stringa, verrà considerato come URL per la posizione di un documento da analizzare. Per altre informazioni, vedere il metodo beginAnalyzeDocumentFromUrl. L'uso di questo metodo è preferibile quando si usano gli URL e il supporto url viene fornito solo in questo metodo per garantire la compatibilità con le versioni precedenti.
import { DefaultAzureCredential } from "@azure/identity";
import { DocumentAnalysisClient } from "@azure/ai-form-recognizer";
import { createReadStream } from "node:fs";
import { PrebuiltReceiptModel } from "../samples-dev/prebuilt/prebuilt-receipt.js";
const credential = new DefaultAzureCredential();
const client = new DocumentAnalysisClient(
"https://<resource name>.cognitiveservices.azure.com",
credential,
);
const path = "<path to a document>";
const readStream = createReadStream(path);
// The PrebuiltReceiptModel `DocumentModel` instance encodes both the model ID and a stronger return type for the operation
const poller = await client.beginAnalyzeDocument(PrebuiltReceiptModel, readStream, {
onProgress: ({ status }) => {
console.log(`status: ${status}`);
},
});
const {
documents: [receiptDocument],
} = await poller.pollUntilDone();
// The fields of the document constitute the extracted receipt data.
const receipt = receiptDocument.fields;
if (receipt === undefined) {
throw new Error("Expected at least one receipt in analysis result.");
}
console.log(`Receipt data (${receiptDocument.docType})`);
console.log(" Merchant Name:", receipt.merchantName?.value);
// The items of the receipt are an example of a `DocumentArrayValue`
if (receipt.items !== undefined) {
console.log("Items:");
for (const { properties: item } of receipt.items.values) {
console.log("- Description:", item.description?.value);
console.log(" Total Price:", item.totalPrice?.value);
}
}
console.log(" Total:", receipt.total?.value);
function beginAnalyzeDocument<Result>(model: DocumentModel<Result>, document: FormRecognizerRequestBody, options?: AnalyzeDocumentOptions<Result>): Promise<AnalysisPoller<Result>>
Parametri
- model
-
DocumentModel<Result>
un DocumentModel che rappresenta il modello da utilizzare per l'analisi e il tipo di output previsto
- document
- FormRecognizerRequestBody
FormRecognizerRequestBody che verrà caricato con la richiesta
- options
-
AnalyzeDocumentOptions<Result>
impostazioni facoltative per l'operazione di analisi e il poller
Restituisce
Promise<AnalysisPoller<Result>>
operazione a esecuzione prolungata (poller) che alla fine produrrà un AnalyzeResult con documenti con il tipo di risultato associato al modello di input
beginAnalyzeDocumentFromUrl(string, string, AnalyzeDocumentOptions<AnalyzeResult<AnalyzedDocument>>)
Estrarre dati da un input usando un modello specificato dall'ID univoco.
Questa operazione supporta modelli personalizzati e predefiniti. Ad esempio, per usare il modello di fattura predefinito, specificare l'ID modello "precompilt-invoice" o per usare il modello di layout predefinito più semplice, specificare l'ID modello "precompilt-layout".
I campi prodotti nella AnalyzeResult dipendono dal modello utilizzato per l'analisi e i valori nei campi dei documenti estratti dipendono dai tipi di documento del modello (se presenti) e dai relativi schemi di campo.
Esempi
Questo metodo supporta l'estrazione di dati da un file in un determinato URL. Il servizio Riconoscimento modulo tenterà di scaricare un file usando l'URL inviato, quindi l'URL deve essere accessibile dalla rete Internet pubblica. Ad esempio, è possibile usare un token di firma di accesso condiviso per concedere l'accesso in lettura a un BLOB in Archiviazione di Azure e il servizio userà l'URL con codifica SAS per richiedere il file.
import { DefaultAzureCredential } from "@azure/identity";
import {
DocumentAnalysisClient,
DocumentStringField,
DocumentArrayField,
DocumentObjectField,
} from "@azure/ai-form-recognizer";
const credential = new DefaultAzureCredential();
const client = new DocumentAnalysisClient(
"https://<resource name>.cognitiveservices.azure.com",
credential,
);
const poller = await client.beginAnalyzeDocumentFromUrl(
"prebuilt-receipt",
// The Document Intelligence service will access the following URL to a receipt image and extract data from it
"https://raw.githubusercontent.com/Azure/azure-sdk-for-js/main/sdk/formrecognizer/ai-form-recognizer/assets/receipt/contoso-receipt.png",
);
poller.onProgress((state) => console.log("Operation:", state.modelId, state.status));
const { documents } = await poller.pollUntilDone();
const result = documents && documents[0];
if (result) {
const receipt = result.fields;
console.log("=== Receipt Information ===");
console.log("Type:", result.docType);
console.log("Merchant:", (receipt["MerchantName"] as DocumentStringField).value);
console.log("Items:");
for (const { properties: item } of ((receipt["Items"] as DocumentArrayField).values ||
[]) as DocumentObjectField[]) {
console.log("- Description:", (item["Description"] as DocumentStringField).value);
console.log(" Total Price:", (item["TotalPrice"] as DocumentStringField).value);
}
} else {
throw new Error("Expected at least one receipt in the result.");
}
function beginAnalyzeDocumentFromUrl(modelId: string, documentUrl: string, options?: AnalyzeDocumentOptions<AnalyzeResult<AnalyzedDocument>>): Promise<AnalysisPoller<AnalyzeResult<AnalyzedDocument>>>
Parametri
- modelId
-
string
ID univoco (nome) del modello all'interno della risorsa del client
- documentUrl
-
string
un URL (stringa) a un documento di input accessibile dalla rete Internet pubblica
impostazioni facoltative per l'operazione di analisi e il poller
Restituisce
Promise<AnalysisPoller<AnalyzeResult<AnalyzedDocument>>>
operazione a esecuzione prolungata (poller) che alla fine produrrà un AnalyzeResult
beginAnalyzeDocumentFromUrl<Result>(DocumentModel<Result>, string, AnalyzeDocumentOptions<Result>)
Estrarre dati da un input usando un modello con uno schema di documento noto fortemente tipizzato (un DocumentModel).
I campi prodotti nella AnalyzeResult dipendono dal modello usato per l'analisi. In TypeScript il tipo del risultato per questo overload del metodo viene dedotto dal tipo dell'input DocumentModel.
Esempi
Questo metodo supporta l'estrazione di dati da un file in un determinato URL. Il servizio Riconoscimento modulo tenterà di scaricare un file usando l'URL inviato, quindi l'URL deve essere accessibile dalla rete Internet pubblica. Ad esempio, è possibile usare un token di firma di accesso condiviso per concedere l'accesso in lettura a un BLOB in Archiviazione di Azure e il servizio userà l'URL con codifica SAS per richiedere il file.
import { DefaultAzureCredential } from "@azure/identity";
import { DocumentAnalysisClient } from "@azure/ai-form-recognizer";
import { PrebuiltReceiptModel } from "../samples-dev/prebuilt/prebuilt-receipt.js";
const credential = new DefaultAzureCredential();
const client = new DocumentAnalysisClient(
"https://<resource name>.cognitiveservices.azure.com",
credential,
);
const poller = await client.beginAnalyzeDocumentFromUrl(
PrebuiltReceiptModel,
// The Document Intelligence service will access the following URL to a receipt image and extract data from it
"https://raw.githubusercontent.com/Azure/azure-sdk-for-js/main/sdk/formrecognizer/ai-form-recognizer/assets/receipt/contoso-receipt.png",
);
const {
documents: [document],
} = await poller.pollUntilDone();
// Use of PrebuiltModels.Receipt above (rather than the raw model ID), as it adds strong typing of the model's output
if (document) {
const { merchantName, items, total } = document.fields;
console.log("=== Receipt Information ===");
console.log("Type:", document.docType);
console.log("Merchant:", merchantName && merchantName.value);
console.log("Items:");
for (const item of (items && items.values) || []) {
const { description, totalPrice } = item.properties;
console.log("- Description:", description && description.value);
console.log(" Total Price:", totalPrice && totalPrice.value);
}
console.log("Total:", total && total.value);
} else {
throw new Error("Expected at least one receipt in the result.");
}
function beginAnalyzeDocumentFromUrl<Result>(model: DocumentModel<Result>, documentUrl: string, options?: AnalyzeDocumentOptions<Result>): Promise<AnalysisPoller<Result>>
Parametri
- model
-
DocumentModel<Result>
un DocumentModel che rappresenta il modello da utilizzare per l'analisi e il tipo di output previsto
- documentUrl
-
string
un URL (stringa) a un documento di input accessibile dalla rete Internet pubblica
- options
-
AnalyzeDocumentOptions<Result>
impostazioni facoltative per l'operazione di analisi e il poller
Restituisce
Promise<AnalysisPoller<Result>>
operazione a esecuzione prolungata (poller) che alla fine produrrà un AnalyzeResult
beginClassifyDocument(string, FormRecognizerRequestBody, ClassifyDocumentOptions)
Classificare un documento usando un classificatore personalizzato specificato dal relativo ID.
Questo metodo produce un'operazione a esecuzione prolungata (poller) che alla fine produrrà un AnalyzeResult. Questo è lo stesso tipo di beginAnalyzeDocument e beginAnalyzeDocumentFromUrl, ma il risultato conterrà solo un piccolo subset dei relativi campi. Verranno popolati solo il campo documents e pages e verranno restituite solo informazioni minime sulla pagina. Il campo documents conterrà informazioni su tutti i documenti identificati e sui docType classificati come.
Esempio
Questo metodo supporta corpi di richiesta trasmessi (FormRecognizerRequestBody) come oggetti Node.JS ReadableStream, browser Blobs e ArrayBuffers. Il contenuto del corpo verrà caricato nel servizio per l'analisi.
import { DefaultAzureCredential } from "@azure/identity";
import { DocumentAnalysisClient } from "@azure/ai-form-recognizer";
import { createReadStream } from "node:fs";
const credential = new DefaultAzureCredential();
const client = new DocumentAnalysisClient(
"https://<resource name>.cognitiveservices.azure.com",
credential,
);
const path = "<path to a document>";
const readStream = createReadStream(path);
const poller = await client.beginClassifyDocument("<classifier id>", readStream);
const result = await poller.pollUntilDone();
if (result?.documents?.length === 0) {
throw new Error("Failed to extract any documents.");
}
for (const document of result.documents) {
console.log(
`Extracted a document with type '${document.docType}' on page ${document.boundingRegions?.[0].pageNumber} (confidence: ${document.confidence})`,
);
}
function beginClassifyDocument(classifierId: string, document: FormRecognizerRequestBody, options?: ClassifyDocumentOptions): Promise<AnalysisPoller<AnalyzeResult<AnalyzedDocument>>>
Parametri
- classifierId
-
string
ID del classificatore personalizzato da usare per l'analisi
- document
- FormRecognizerRequestBody
documento da classificare
- options
- ClassifyDocumentOptions
opzioni per l'operazione di classificazione
Restituisce
Promise<AnalysisPoller<AnalyzeResult<AnalyzedDocument>>>
operazione a esecuzione prolungata (poller) che alla fine produrrà un AnalyzeResult
beginClassifyDocumentFromUrl(string, string, ClassifyDocumentOptions)
Classificare un documento da un URL usando un classificatore personalizzato specificato dal relativo ID.
Questo metodo produce un'operazione a esecuzione prolungata (poller) che alla fine produrrà un AnalyzeResult. Questo è lo stesso tipo di beginAnalyzeDocument e beginAnalyzeDocumentFromUrl, ma il risultato conterrà solo un piccolo subset dei relativi campi. Verranno popolati solo il campo documents e pages e verranno restituite solo informazioni minime sulla pagina. Il campo documents conterrà informazioni su tutti i documenti identificati e sui docType classificati come.
Esempio
Questo metodo supporta l'estrazione di dati da un file in un determinato URL. Il servizio Riconoscimento modulo tenterà di scaricare un file usando l'URL inviato, quindi l'URL deve essere accessibile dalla rete Internet pubblica. Ad esempio, è possibile usare un token di firma di accesso condiviso per concedere l'accesso in lettura a un BLOB in Archiviazione di Azure e il servizio userà l'URL con codifica SAS per richiedere il file.
import { DefaultAzureCredential } from "@azure/identity";
import { DocumentAnalysisClient } from "@azure/ai-form-recognizer";
const credential = new DefaultAzureCredential();
const client = new DocumentAnalysisClient(
"https://<resource name>.cognitiveservices.azure.com",
credential,
);
const documentUrl =
"https://raw.githubusercontent.com/Azure/azure-sdk-for-js/main/sdk/formrecognizer/ai-form-recognizer/assets/invoice/Invoice_1.pdf";
const poller = await client.beginClassifyDocumentFromUrl("<classifier id>", documentUrl);
const result = await poller.pollUntilDone();
if (result?.documents?.length === 0) {
throw new Error("Failed to extract any documents.");
}
for (const document of result.documents) {
console.log(
`Extracted a document with type '${document.docType}' on page ${document.boundingRegions?.[0].pageNumber} (confidence: ${document.confidence})`,
);
}
function beginClassifyDocumentFromUrl(classifierId: string, documentUrl: string, options?: ClassifyDocumentOptions): Promise<AnalysisPoller<AnalyzeResult<AnalyzedDocument>>>
Parametri
- classifierId
-
string
ID del classificatore personalizzato da usare per l'analisi
- documentUrl
-
string
URL del documento da classificare
- options
- ClassifyDocumentOptions
Restituisce
Promise<AnalysisPoller<AnalyzeResult<AnalyzedDocument>>>