DocumentAnalysisClient class

En klient för att interagera med tjänsten Formigenkännings analysfunktioner.

Exempel:

Tjänsten Formigenkänning och klienter stöder två autentiseringsmetoder:

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-nyckel (prenumerationsnyckel)

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

Konstruktorer

DocumentAnalysisClient(string, KeyCredential, DocumentAnalysisClientOptions)

Skapa en DocumentAnalysisClient-instans från en resursslutpunkt och en statisk API-nyckel (KeyCredential),

Exempel:

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)

Skapa en DocumentAnalysisClient instans från en resursslutpunkt och en Azure Identity-TokenCredential.

Mer information om autentisering med Azure Active Directory finns i @azure/identity-paketet.

Exempel:

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

Metoder

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

Extrahera data från indata med hjälp av en modell som anges av dess unika ID.

Den här åtgärden stöder både anpassade och fördefinierade modeller. Om du till exempel vill använda den fördefinierade fakturamodellen anger du modell-ID:t "prebuilt-invoice" eller använder den enklare fördefinierade layoutmodellen genom att ange modell-ID:t "prebuilt-layout".

Fälten som skapas i AnalyzeResult beror på vilken modell som används för analys, och värdena i eventuella extraherade dokumentfält beror på dokumenttyperna i modellen (om några) och deras motsvarande fältscheman.

Exempel

Den här metoden stöder strömmande begärandeorgan (FormRecognizerRequestBody) som Node.JS ReadableStream objekt, webbläsare Blobs och ArrayBuffers. Innehållet i brödtexten laddas upp till tjänsten för analys.

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

Extrahera data från indata med hjälp av en modell som har ett känt, starkt skrivet dokumentschema (ett DocumentModel-).

De fält som skapas i AnalyzeResult beror på vilken modell som används för analys. I TypeScript härleds typen av resultat för den här metodens överlagring från typen av indata DocumentModel.

Exempel

Den här metoden stöder strömmande begärandeorgan (FormRecognizerRequestBody) som Node.JS ReadableStream objekt, webbläsare Blobs och ArrayBuffers. Innehållet i brödtexten laddas upp till tjänsten för analys.

Om indata är en sträng behandlas den som en URL till platsen för ett dokument som ska analyseras. Mer information finns i metoden beginAnalyzeDocumentFromUrl. Du bör använda den metoden när du använder URL:er, och URL-stöd tillhandahålls endast i den här metoden för bakåtkompatibilitet.

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

Extrahera data från indata med hjälp av en modell som anges av dess unika ID.

Den här åtgärden stöder både anpassade och fördefinierade modeller. Om du till exempel vill använda den fördefinierade fakturamodellen anger du modell-ID:t "prebuilt-invoice" eller använder den enklare fördefinierade layoutmodellen genom att ange modell-ID:t "prebuilt-layout".

Fälten som skapas i AnalyzeResult beror på vilken modell som används för analys, och värdena i eventuella extraherade dokumentfält beror på dokumenttyperna i modellen (om några) och deras motsvarande fältscheman.

Exempel

Den här metoden stöder extrahering av data från en fil vid en viss URL. Tjänsten Formigenkänning försöker ladda ned en fil med hjälp av den skickade URL:en, så URL:en måste vara tillgänglig från det offentliga Internet. Till exempel kan en SAS-token användas för att bevilja läsbehörighet till en blob i Azure Storage, och tjänsten använder DEN SAS-kodade URL:en för att begära filen.

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

Extrahera data från indata med hjälp av en modell som har ett känt, starkt skrivet dokumentschema (ett DocumentModel-).

De fält som skapas i AnalyzeResult beror på vilken modell som används för analys. I TypeScript härleds typen av resultat för den här metodens överlagring från typen av indata DocumentModel.

Exempel

Den här metoden stöder extrahering av data från en fil vid en viss URL. Tjänsten Formigenkänning försöker ladda ned en fil med hjälp av den skickade URL:en, så URL:en måste vara tillgänglig från det offentliga Internet. Till exempel kan en SAS-token användas för att bevilja läsbehörighet till en blob i Azure Storage, och tjänsten använder DEN SAS-kodade URL:en för att begära filen.

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)

Klassificera ett dokument med hjälp av en anpassad klassificerare som anges av dess ID.

Den här metoden genererar en tidskrävande åtgärd (poller) som så småningom skapar en AnalyzeResult. Det här är samma typ som beginAnalyzeDocument och beginAnalyzeDocumentFromUrl, men resultatet innehåller bara en liten delmängd av fälten. Endast fältet documents och pages fylls i och endast minimal sidinformation returneras. Fältet documents innehåller information om alla identifierade dokument och de docType som de klassificerades som.

Exempel

Den här metoden stöder strömmande begärandeorgan (FormRecognizerRequestBody) som Node.JS ReadableStream objekt, webbläsare Blobs och ArrayBuffers. Innehållet i brödtexten laddas upp till tjänsten för analys.

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)

Klassificera ett dokument från en URL med hjälp av en anpassad klassificerare som anges av dess ID.

Den här metoden genererar en tidskrävande åtgärd (poller) som så småningom skapar en AnalyzeResult. Det här är samma typ som beginAnalyzeDocument och beginAnalyzeDocumentFromUrl, men resultatet innehåller bara en liten delmängd av fälten. Endast fältet documents och pages fylls i och endast minimal sidinformation returneras. Fältet documents innehåller information om alla identifierade dokument och de docType som de klassificerades som.

Exempel

Den här metoden stöder extrahering av data från en fil vid en viss URL. Tjänsten Formigenkänning försöker ladda ned en fil med hjälp av den skickade URL:en, så URL:en måste vara tillgänglig från det offentliga Internet. Till exempel kan en SAS-token användas för att bevilja läsbehörighet till en blob i Azure Storage, och tjänsten använder DEN SAS-kodade URL:en för att begära filen.

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

Konstruktorinformation

DocumentAnalysisClient(string, KeyCredential, DocumentAnalysisClientOptions)

Skapa en DocumentAnalysisClient-instans från en resursslutpunkt och en statisk API-nyckel (KeyCredential),

Exempel:

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)

Parametrar

endpoint

string

slutpunkts-URL:en för en Azure Cognitive Services-instans

credential
KeyCredential

en KeyCredential som innehåller prenumerationsnyckeln för Cognitive Services-instansen

options
DocumentAnalysisClientOptions

valfria inställningar för att konfigurera alla metoder i klienten

DocumentAnalysisClient(string, TokenCredential, DocumentAnalysisClientOptions)

Skapa en DocumentAnalysisClient instans från en resursslutpunkt och en Azure Identity-TokenCredential.

Mer information om autentisering med Azure Active Directory finns i @azure/identity-paketet.

Exempel:

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)

Parametrar

endpoint

string

slutpunkts-URL:en för en Azure Cognitive Services-instans

credential
TokenCredential

en TokenCredential-instans från @azure/identity-paketet

options
DocumentAnalysisClientOptions

valfria inställningar för att konfigurera alla metoder i klienten

Metodinformation

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

Extrahera data från indata med hjälp av en modell som anges av dess unika ID.

Den här åtgärden stöder både anpassade och fördefinierade modeller. Om du till exempel vill använda den fördefinierade fakturamodellen anger du modell-ID:t "prebuilt-invoice" eller använder den enklare fördefinierade layoutmodellen genom att ange modell-ID:t "prebuilt-layout".

Fälten som skapas i AnalyzeResult beror på vilken modell som används för analys, och värdena i eventuella extraherade dokumentfält beror på dokumenttyperna i modellen (om några) och deras motsvarande fältscheman.

Exempel

Den här metoden stöder strömmande begärandeorgan (FormRecognizerRequestBody) som Node.JS ReadableStream objekt, webbläsare Blobs och ArrayBuffers. Innehållet i brödtexten laddas upp till tjänsten för analys.

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

Parametrar

modelId

string

modellens unika ID (namn) i klientens resurs

document
FormRecognizerRequestBody

en FormRecognizerRequestBody- som laddas upp med begäran

options

AnalyzeDocumentOptions<AnalyzeResult<AnalyzedDocument>>

valfria inställningar för analysåtgärden och poller

Returer

en tidskrävande åtgärd (poller) som så småningom skapar en AnalyzeResult

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

Extrahera data från indata med hjälp av en modell som har ett känt, starkt skrivet dokumentschema (ett DocumentModel-).

De fält som skapas i AnalyzeResult beror på vilken modell som används för analys. I TypeScript härleds typen av resultat för den här metodens överlagring från typen av indata DocumentModel.

Exempel

Den här metoden stöder strömmande begärandeorgan (FormRecognizerRequestBody) som Node.JS ReadableStream objekt, webbläsare Blobs och ArrayBuffers. Innehållet i brödtexten laddas upp till tjänsten för analys.

Om indata är en sträng behandlas den som en URL till platsen för ett dokument som ska analyseras. Mer information finns i metoden beginAnalyzeDocumentFromUrl. Du bör använda den metoden när du använder URL:er, och URL-stöd tillhandahålls endast i den här metoden för bakåtkompatibilitet.

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

Parametrar

model

DocumentModel<Result>

en DocumentModel- som representerar modellen som ska användas för analys och förväntad utdatatyp

document
FormRecognizerRequestBody

en FormRecognizerRequestBody- som laddas upp med begäran

options

AnalyzeDocumentOptions<Result>

valfria inställningar för analysåtgärden och poller

Returer

Promise<AnalysisPoller<Result>>

en tidskrävande åtgärd (poller) som så småningom skapar en AnalyzeResult med dokument som har resultattypen associerad med indatamodellen

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

Extrahera data från indata med hjälp av en modell som anges av dess unika ID.

Den här åtgärden stöder både anpassade och fördefinierade modeller. Om du till exempel vill använda den fördefinierade fakturamodellen anger du modell-ID:t "prebuilt-invoice" eller använder den enklare fördefinierade layoutmodellen genom att ange modell-ID:t "prebuilt-layout".

Fälten som skapas i AnalyzeResult beror på vilken modell som används för analys, och värdena i eventuella extraherade dokumentfält beror på dokumenttyperna i modellen (om några) och deras motsvarande fältscheman.

Exempel

Den här metoden stöder extrahering av data från en fil vid en viss URL. Tjänsten Formigenkänning försöker ladda ned en fil med hjälp av den skickade URL:en, så URL:en måste vara tillgänglig från det offentliga Internet. Till exempel kan en SAS-token användas för att bevilja läsbehörighet till en blob i Azure Storage, och tjänsten använder DEN SAS-kodade URL:en för att begära filen.

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

Parametrar

modelId

string

modellens unika ID (namn) i klientens resurs

documentUrl

string

en URL (sträng) till ett indatadokument som är tillgängligt från det offentliga Internet

options

AnalyzeDocumentOptions<AnalyzeResult<AnalyzedDocument>>

valfria inställningar för analysåtgärden och poller

Returer

en tidskrävande åtgärd (poller) som så småningom skapar en AnalyzeResult

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

Extrahera data från indata med hjälp av en modell som har ett känt, starkt skrivet dokumentschema (ett DocumentModel-).

De fält som skapas i AnalyzeResult beror på vilken modell som används för analys. I TypeScript härleds typen av resultat för den här metodens överlagring från typen av indata DocumentModel.

Exempel

Den här metoden stöder extrahering av data från en fil vid en viss URL. Tjänsten Formigenkänning försöker ladda ned en fil med hjälp av den skickade URL:en, så URL:en måste vara tillgänglig från det offentliga Internet. Till exempel kan en SAS-token användas för att bevilja läsbehörighet till en blob i Azure Storage, och tjänsten använder DEN SAS-kodade URL:en för att begära filen.

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

Parametrar

model

DocumentModel<Result>

en DocumentModel- som representerar modellen som ska användas för analys och förväntad utdatatyp

documentUrl

string

en URL (sträng) till ett indatadokument som är tillgängligt från det offentliga Internet

options

AnalyzeDocumentOptions<Result>

valfria inställningar för analysåtgärden och poller

Returer

Promise<AnalysisPoller<Result>>

en tidskrävande åtgärd (poller) som så småningom skapar en AnalyzeResult

beginClassifyDocument(string, FormRecognizerRequestBody, ClassifyDocumentOptions)

Klassificera ett dokument med hjälp av en anpassad klassificerare som anges av dess ID.

Den här metoden genererar en tidskrävande åtgärd (poller) som så småningom skapar en AnalyzeResult. Det här är samma typ som beginAnalyzeDocument och beginAnalyzeDocumentFromUrl, men resultatet innehåller bara en liten delmängd av fälten. Endast fältet documents och pages fylls i och endast minimal sidinformation returneras. Fältet documents innehåller information om alla identifierade dokument och de docType som de klassificerades som.

Exempel

Den här metoden stöder strömmande begärandeorgan (FormRecognizerRequestBody) som Node.JS ReadableStream objekt, webbläsare Blobs och ArrayBuffers. Innehållet i brödtexten laddas upp till tjänsten för analys.

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

Parametrar

classifierId

string

ID för den anpassade klassificerare som ska användas för analys

document
FormRecognizerRequestBody

dokumentet som ska klassificeras

options
ClassifyDocumentOptions

alternativ för klassificeringsåtgärden

Returer

en tidskrävande åtgärd (poller) som så småningom skapar en AnalyzeResult

beginClassifyDocumentFromUrl(string, string, ClassifyDocumentOptions)

Klassificera ett dokument från en URL med hjälp av en anpassad klassificerare som anges av dess ID.

Den här metoden genererar en tidskrävande åtgärd (poller) som så småningom skapar en AnalyzeResult. Det här är samma typ som beginAnalyzeDocument och beginAnalyzeDocumentFromUrl, men resultatet innehåller bara en liten delmängd av fälten. Endast fältet documents och pages fylls i och endast minimal sidinformation returneras. Fältet documents innehåller information om alla identifierade dokument och de docType som de klassificerades som.

Exempel

Den här metoden stöder extrahering av data från en fil vid en viss URL. Tjänsten Formigenkänning försöker ladda ned en fil med hjälp av den skickade URL:en, så URL:en måste vara tillgänglig från det offentliga Internet. Till exempel kan en SAS-token användas för att bevilja läsbehörighet till en blob i Azure Storage, och tjänsten använder DEN SAS-kodade URL:en för att begära filen.

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

Parametrar

classifierId

string

ID för den anpassade klassificerare som ska användas för analys

documentUrl

string

URL:en för dokumentet som ska klassificeras

Returer