Freigeben über


DocumentAnalysisClient class

Ein Client für die Interaktion mit den Analysefunktionen des Formularerkennungsdiensts.

Beispiele:

Der Formularerkennungsdienst und Clients unterstützen zwei Authentifizierungswege:

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,
);

API-Schlüssel (Abonnementschlüssel)

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,
);

Konstruktoren

DocumentAnalysisClient(string, KeyCredential, DocumentAnalysisClientOptions)

Erstellen einer DocumentAnalysisClient Instanz von einem Ressourcenendpunkt und einem statischen API-Schlüssel (KeyCredential),

Beispiel:

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,
);
DocumentAnalysisClient(string, TokenCredential, DocumentAnalysisClientOptions)

Erstellen Sie eine DocumentAnalysisClient Instanz von einem Ressourcenendpunkt und einer Azure Identity TokenCredential.

Weitere Informationen zur Authentifizierung mit Azure Active Directory finden Sie im @azure/identity-Paket.

Beispiel:

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,
);

Methoden

beginAnalyzeDocument(string, FormRecognizerRequestBody, AnalyzeDocumentOptions<AnalyzeResult<AnalyzedDocument>>)

Extrahieren Sie Daten aus einer Eingabe mithilfe eines Modells, das durch die eindeutige ID angegeben wird.

Dieser Vorgang unterstützt benutzerdefinierte und vordefinierte Modelle. Um z. B. das vorgefertigte Rechnungsmodell zu verwenden, geben Sie die Modell-ID "prebuilt-invoice" an, oder geben Sie die Modell-ID "prebuilt-layout" an, oder geben Sie die Modell-ID "prebuilt-layout" an.

Die in der AnalyzeResult erzeugten Felder hängen vom Modell ab, das für die Analyse verwendet wird, und die Werte in den Feldern extrahierter Dokumente hängen von den Dokumenttypen im Modell (sofern vorhanden) und den entsprechenden Feldschemas ab.

Beispiele

Diese Methode unterstützt streambare Anforderungstexte (FormRecognizerRequestBody) wie Node.JS ReadableStream Objekte, Browser-Blobs und ArrayBuffers. Der Inhalt des Textkörpers wird zur Analyse in den Dienst hochgeladen.

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);
beginAnalyzeDocument<Result>(DocumentModel<Result>, FormRecognizerRequestBody, AnalyzeDocumentOptions<Result>)

Extrahieren von Daten aus einer Eingabe mithilfe eines Modells mit einem bekannten, stark typierten Dokumentschema (ein DocumentModel-).

Die in der AnalyzeResult erzeugten Felder hängen vom Modell ab, das für die Analyse verwendet wird. In TypeScript wird der Typ des Ergebnisses für diese Methodenüberladung vom Typ der Eingabe DocumentModelabgeleitet.

Beispiele

Diese Methode unterstützt streambare Anforderungstexte (FormRecognizerRequestBody) wie Node.JS ReadableStream Objekte, Browser-Blobs und ArrayBuffers. Der Inhalt des Textkörpers wird zur Analyse in den Dienst hochgeladen.

Wenn es sich bei der bereitgestellten Eingabe um eine Zeichenfolge handelt, wird sie als URL zum Speicherort eines zu analysierenden Dokuments behandelt. Weitere Informationen finden Sie in der beginAnalyzeDocumentFromUrl--Methode. Die Verwendung dieser Methode wird bevorzugt, wenn URLs verwendet werden, und die URL-Unterstützung wird nur in dieser Methode zur Abwärtskompatibilität bereitgestellt.

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);
beginAnalyzeDocumentFromUrl(string, string, AnalyzeDocumentOptions<AnalyzeResult<AnalyzedDocument>>)

Extrahieren Sie Daten aus einer Eingabe mithilfe eines Modells, das durch die eindeutige ID angegeben wird.

Dieser Vorgang unterstützt benutzerdefinierte und vordefinierte Modelle. Um z. B. das vorgefertigte Rechnungsmodell zu verwenden, geben Sie die Modell-ID "prebuilt-invoice" an, oder geben Sie die Modell-ID "prebuilt-layout" an, oder geben Sie die Modell-ID "prebuilt-layout" an.

Die in der AnalyzeResult erzeugten Felder hängen vom Modell ab, das für die Analyse verwendet wird, und die Werte in den Feldern extrahierter Dokumente hängen von den Dokumenttypen im Modell (sofern vorhanden) und den entsprechenden Feldschemas ab.

Beispiele

Diese Methode unterstützt das Extrahieren von Daten aus einer Datei unter einer bestimmten URL. Der Formularerkennungsdienst versucht, eine Datei mithilfe der übermittelten URL herunterzuladen, sodass die URL über das öffentliche Internet zugänglich sein muss. Beispielsweise kann ein SAS-Token verwendet werden, um Lesezugriff auf ein Blob in Azure Storage zu gewähren, und der Dienst verwendet die SAS-codierte URL, um die Datei anzufordern.

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.");
}
beginAnalyzeDocumentFromUrl<Result>(DocumentModel<Result>, string, AnalyzeDocumentOptions<Result>)

Extrahieren von Daten aus einer Eingabe mithilfe eines Modells mit einem bekannten, stark typierten Dokumentschema (ein DocumentModel-).

Die in der AnalyzeResult erzeugten Felder hängen vom Modell ab, das für die Analyse verwendet wird. In TypeScript wird der Typ des Ergebnisses für diese Methodenüberladung vom Typ der Eingabe DocumentModelabgeleitet.

Beispiele

Diese Methode unterstützt das Extrahieren von Daten aus einer Datei unter einer bestimmten URL. Der Formularerkennungsdienst versucht, eine Datei mithilfe der übermittelten URL herunterzuladen, sodass die URL über das öffentliche Internet zugänglich sein muss. Beispielsweise kann ein SAS-Token verwendet werden, um Lesezugriff auf ein Blob in Azure Storage zu gewähren, und der Dienst verwendet die SAS-codierte URL, um die Datei anzufordern.

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.");
}
beginClassifyDocument(string, FormRecognizerRequestBody, ClassifyDocumentOptions)

Klassifizieren eines Dokuments mithilfe eines benutzerdefinierten Klassifizierers, der anhand seiner ID angegeben wird.

Diese Methode erzeugt einen lang dauernden Vorgang (Poller), der letztendlich eine AnalyzeResulterzeugt. Dies ist derselbe Typ wie beginAnalyzeDocument und beginAnalyzeDocumentFromUrl, aber das Ergebnis enthält nur eine kleine Teilmenge seiner Felder. Nur das feld documents und pages feld werden aufgefüllt, und nur minimale Seiteninformationen werden zurückgegeben. Das Feld documents enthält Informationen zu allen identifizierten Dokumenten und den docType, als sie klassifiziert wurden.

Beispiel

Diese Methode unterstützt streambare Anforderungstexte (FormRecognizerRequestBody) wie Node.JS ReadableStream Objekte, Browser-Blobs und ArrayBuffers. Der Inhalt des Textkörpers wird zur Analyse in den Dienst hochgeladen.

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})`,
  );
}
beginClassifyDocumentFromUrl(string, string, ClassifyDocumentOptions)

Klassifizieren eines Dokuments aus einer URL mithilfe eines benutzerdefinierten Klassifizierers, der anhand seiner ID angegeben wird.

Diese Methode erzeugt einen lang dauernden Vorgang (Poller), der letztendlich eine AnalyzeResulterzeugt. Dies ist derselbe Typ wie beginAnalyzeDocument und beginAnalyzeDocumentFromUrl, aber das Ergebnis enthält nur eine kleine Teilmenge seiner Felder. Nur das feld documents und pages feld werden aufgefüllt, und nur minimale Seiteninformationen werden zurückgegeben. Das Feld documents enthält Informationen zu allen identifizierten Dokumenten und den docType, als sie klassifiziert wurden.

Beispiel

Diese Methode unterstützt das Extrahieren von Daten aus einer Datei unter einer bestimmten URL. Der Formularerkennungsdienst versucht, eine Datei mithilfe der übermittelten URL herunterzuladen, sodass die URL über das öffentliche Internet zugänglich sein muss. Beispielsweise kann ein SAS-Token verwendet werden, um Lesezugriff auf ein Blob in Azure Storage zu gewähren, und der Dienst verwendet die SAS-codierte URL, um die Datei anzufordern.

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})`,
  );
}

Details zum Konstruktor

DocumentAnalysisClient(string, KeyCredential, DocumentAnalysisClientOptions)

Erstellen einer DocumentAnalysisClient Instanz von einem Ressourcenendpunkt und einem statischen API-Schlüssel (KeyCredential),

Beispiel:

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)

Parameter

endpoint

string

die Endpunkt-URL einer Azure Cognitive Services-Instanz

credential
KeyCredential

ein KeyCredential-Element, das den Abonnementschlüssel der Cognitive Services-Instanz enthält

options
DocumentAnalysisClientOptions

optionale Einstellungen zum Konfigurieren aller Methoden im Client

DocumentAnalysisClient(string, TokenCredential, DocumentAnalysisClientOptions)

Erstellen Sie eine DocumentAnalysisClient Instanz von einem Ressourcenendpunkt und einer Azure Identity TokenCredential.

Weitere Informationen zur Authentifizierung mit Azure Active Directory finden Sie im @azure/identity-Paket.

Beispiel:

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)

Parameter

endpoint

string

die Endpunkt-URL einer Azure Cognitive Services-Instanz

credential
TokenCredential

eine TokenCredential-Instanz aus dem @azure/identity-Paket

options
DocumentAnalysisClientOptions

optionale Einstellungen zum Konfigurieren aller Methoden im Client

Details zur Methode

beginAnalyzeDocument(string, FormRecognizerRequestBody, AnalyzeDocumentOptions<AnalyzeResult<AnalyzedDocument>>)

Extrahieren Sie Daten aus einer Eingabe mithilfe eines Modells, das durch die eindeutige ID angegeben wird.

Dieser Vorgang unterstützt benutzerdefinierte und vordefinierte Modelle. Um z. B. das vorgefertigte Rechnungsmodell zu verwenden, geben Sie die Modell-ID "prebuilt-invoice" an, oder geben Sie die Modell-ID "prebuilt-layout" an, oder geben Sie die Modell-ID "prebuilt-layout" an.

Die in der AnalyzeResult erzeugten Felder hängen vom Modell ab, das für die Analyse verwendet wird, und die Werte in den Feldern extrahierter Dokumente hängen von den Dokumenttypen im Modell (sofern vorhanden) und den entsprechenden Feldschemas ab.

Beispiele

Diese Methode unterstützt streambare Anforderungstexte (FormRecognizerRequestBody) wie Node.JS ReadableStream Objekte, Browser-Blobs und ArrayBuffers. Der Inhalt des Textkörpers wird zur Analyse in den Dienst hochgeladen.

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>>>

Parameter

modelId

string

die eindeutige ID (Name) des Modells innerhalb der Ressource dieses Clients

document
FormRecognizerRequestBody

ein FormRecognizerRequestBody, das mit der Anforderung hochgeladen wird

options

AnalyzeDocumentOptions<AnalyzeResult<AnalyzedDocument>>

optionale Einstellungen für den Analysevorgang und den Abrufer

Gibt zurück

ein lang ausgeführter Vorgang (Poller), der letztendlich eine AnalyzeResult

beginAnalyzeDocument<Result>(DocumentModel<Result>, FormRecognizerRequestBody, AnalyzeDocumentOptions<Result>)

Extrahieren von Daten aus einer Eingabe mithilfe eines Modells mit einem bekannten, stark typierten Dokumentschema (ein DocumentModel-).

Die in der AnalyzeResult erzeugten Felder hängen vom Modell ab, das für die Analyse verwendet wird. In TypeScript wird der Typ des Ergebnisses für diese Methodenüberladung vom Typ der Eingabe DocumentModelabgeleitet.

Beispiele

Diese Methode unterstützt streambare Anforderungstexte (FormRecognizerRequestBody) wie Node.JS ReadableStream Objekte, Browser-Blobs und ArrayBuffers. Der Inhalt des Textkörpers wird zur Analyse in den Dienst hochgeladen.

Wenn es sich bei der bereitgestellten Eingabe um eine Zeichenfolge handelt, wird sie als URL zum Speicherort eines zu analysierenden Dokuments behandelt. Weitere Informationen finden Sie in der beginAnalyzeDocumentFromUrl--Methode. Die Verwendung dieser Methode wird bevorzugt, wenn URLs verwendet werden, und die URL-Unterstützung wird nur in dieser Methode zur Abwärtskompatibilität bereitgestellt.

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>>

Parameter

model

DocumentModel<Result>

ein DocumentModel-, das für die Analyse und den erwarteten Ausgabetyp verwendet werden soll

document
FormRecognizerRequestBody

ein FormRecognizerRequestBody, das mit der Anforderung hochgeladen wird

options

AnalyzeDocumentOptions<Result>

optionale Einstellungen für den Analysevorgang und den Abrufer

Gibt zurück

Promise<AnalysisPoller<Result>>

ein lang ausgeführter Vorgang (Poller), der letztendlich eine AnalyzeResult mit Dokumenten mit dem Ergebnistyp erzeugt, der dem Eingabemodell zugeordnet ist

beginAnalyzeDocumentFromUrl(string, string, AnalyzeDocumentOptions<AnalyzeResult<AnalyzedDocument>>)

Extrahieren Sie Daten aus einer Eingabe mithilfe eines Modells, das durch die eindeutige ID angegeben wird.

Dieser Vorgang unterstützt benutzerdefinierte und vordefinierte Modelle. Um z. B. das vorgefertigte Rechnungsmodell zu verwenden, geben Sie die Modell-ID "prebuilt-invoice" an, oder geben Sie die Modell-ID "prebuilt-layout" an, oder geben Sie die Modell-ID "prebuilt-layout" an.

Die in der AnalyzeResult erzeugten Felder hängen vom Modell ab, das für die Analyse verwendet wird, und die Werte in den Feldern extrahierter Dokumente hängen von den Dokumenttypen im Modell (sofern vorhanden) und den entsprechenden Feldschemas ab.

Beispiele

Diese Methode unterstützt das Extrahieren von Daten aus einer Datei unter einer bestimmten URL. Der Formularerkennungsdienst versucht, eine Datei mithilfe der übermittelten URL herunterzuladen, sodass die URL über das öffentliche Internet zugänglich sein muss. Beispielsweise kann ein SAS-Token verwendet werden, um Lesezugriff auf ein Blob in Azure Storage zu gewähren, und der Dienst verwendet die SAS-codierte URL, um die Datei anzufordern.

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>>>

Parameter

modelId

string

die eindeutige ID (Name) des Modells innerhalb der Ressource dieses Clients

documentUrl

string

eine URL (Zeichenfolge) zu einem Eingabedokument, auf das über das öffentliche Internet zugegriffen werden kann

options

AnalyzeDocumentOptions<AnalyzeResult<AnalyzedDocument>>

optionale Einstellungen für den Analysevorgang und den Abrufer

Gibt zurück

ein lang ausgeführter Vorgang (Poller), der letztendlich eine AnalyzeResult

beginAnalyzeDocumentFromUrl<Result>(DocumentModel<Result>, string, AnalyzeDocumentOptions<Result>)

Extrahieren von Daten aus einer Eingabe mithilfe eines Modells mit einem bekannten, stark typierten Dokumentschema (ein DocumentModel-).

Die in der AnalyzeResult erzeugten Felder hängen vom Modell ab, das für die Analyse verwendet wird. In TypeScript wird der Typ des Ergebnisses für diese Methodenüberladung vom Typ der Eingabe DocumentModelabgeleitet.

Beispiele

Diese Methode unterstützt das Extrahieren von Daten aus einer Datei unter einer bestimmten URL. Der Formularerkennungsdienst versucht, eine Datei mithilfe der übermittelten URL herunterzuladen, sodass die URL über das öffentliche Internet zugänglich sein muss. Beispielsweise kann ein SAS-Token verwendet werden, um Lesezugriff auf ein Blob in Azure Storage zu gewähren, und der Dienst verwendet die SAS-codierte URL, um die Datei anzufordern.

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>>

Parameter

model

DocumentModel<Result>

ein DocumentModel-, das für die Analyse und den erwarteten Ausgabetyp verwendet werden soll

documentUrl

string

eine URL (Zeichenfolge) zu einem Eingabedokument, auf das über das öffentliche Internet zugegriffen werden kann

options

AnalyzeDocumentOptions<Result>

optionale Einstellungen für den Analysevorgang und den Abrufer

Gibt zurück

Promise<AnalysisPoller<Result>>

ein lang ausgeführter Vorgang (Poller), der letztendlich eine AnalyzeResult

beginClassifyDocument(string, FormRecognizerRequestBody, ClassifyDocumentOptions)

Klassifizieren eines Dokuments mithilfe eines benutzerdefinierten Klassifizierers, der anhand seiner ID angegeben wird.

Diese Methode erzeugt einen lang dauernden Vorgang (Poller), der letztendlich eine AnalyzeResulterzeugt. Dies ist derselbe Typ wie beginAnalyzeDocument und beginAnalyzeDocumentFromUrl, aber das Ergebnis enthält nur eine kleine Teilmenge seiner Felder. Nur das feld documents und pages feld werden aufgefüllt, und nur minimale Seiteninformationen werden zurückgegeben. Das Feld documents enthält Informationen zu allen identifizierten Dokumenten und den docType, als sie klassifiziert wurden.

Beispiel

Diese Methode unterstützt streambare Anforderungstexte (FormRecognizerRequestBody) wie Node.JS ReadableStream Objekte, Browser-Blobs und ArrayBuffers. Der Inhalt des Textkörpers wird zur Analyse in den Dienst hochgeladen.

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>>>

Parameter

classifierId

string

die ID des benutzerdefinierten Klassifizierers, der für die Analyse verwendet werden soll

document
FormRecognizerRequestBody

das zu klassifizierende Dokument

options
ClassifyDocumentOptions

Optionen für den Klassifizierungsvorgang

Gibt zurück

ein lang ausgeführter Vorgang (Poller), der letztendlich eine AnalyzeResult

beginClassifyDocumentFromUrl(string, string, ClassifyDocumentOptions)

Klassifizieren eines Dokuments aus einer URL mithilfe eines benutzerdefinierten Klassifizierers, der anhand seiner ID angegeben wird.

Diese Methode erzeugt einen lang dauernden Vorgang (Poller), der letztendlich eine AnalyzeResulterzeugt. Dies ist derselbe Typ wie beginAnalyzeDocument und beginAnalyzeDocumentFromUrl, aber das Ergebnis enthält nur eine kleine Teilmenge seiner Felder. Nur das feld documents und pages feld werden aufgefüllt, und nur minimale Seiteninformationen werden zurückgegeben. Das Feld documents enthält Informationen zu allen identifizierten Dokumenten und den docType, als sie klassifiziert wurden.

Beispiel

Diese Methode unterstützt das Extrahieren von Daten aus einer Datei unter einer bestimmten URL. Der Formularerkennungsdienst versucht, eine Datei mithilfe der übermittelten URL herunterzuladen, sodass die URL über das öffentliche Internet zugänglich sein muss. Beispielsweise kann ein SAS-Token verwendet werden, um Lesezugriff auf ein Blob in Azure Storage zu gewähren, und der Dienst verwendet die SAS-codierte URL, um die Datei anzufordern.

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>>>

Parameter

classifierId

string

die ID des benutzerdefinierten Klassifizierers, der für die Analyse verwendet werden soll

documentUrl

string

die URL des zu klassifizierenden Dokuments

Gibt zurück