Sdílet prostřednictvím


DocumentAnalysisClient class

Klient pro interakci s analytickými funkcemi služby Rozpoznávání formulářů.

Příklady:

Služba Rozpoznávání formulářů a klienti podporují dva způsoby ověřování:

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

Klíč rozhraní API (klíč předplatného)

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

Konstruktory

DocumentAnalysisClient(string, KeyCredential, DocumentAnalysisClientOptions)

Vytvoření instance DocumentAnalysisClient z koncového bodu prostředku a klíče statického rozhraní API (KeyCredential),

Příklad:

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)

Vytvořte instanci DocumentAnalysisClient z koncového bodu prostředku a TokenCredentialidentity Azure .

Další informace o ověřování pomocí Azure Active Directory najdete v balíčku @azure/identity.

Příklad:

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

Metody

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

Extrahujte data ze vstupu pomocí modelu poskytnutého jeho jedinečným ID.

Tato operace podporuje vlastní i předem připravené modely. Pokud například chcete použít předem připravený model faktury, zadejte ID modelu "předem připravená faktura" nebo pokud chcete použít jednodušší předem připravený model rozložení, zadejte ID modelu "předem připravené rozložení".

Pole vytvořená v AnalyzeResult závisí na modelu, který se používá k analýze, a hodnoty v polích extrahovaných dokumentů závisejí na typech dokumentů v modelu (pokud existuje) a jejich odpovídajících schématech polí.

Příklady

Tato metoda podporuje streamovatelné těla požadavků (FormRecognizerRequestBody), jako jsou Node.JS ReadableStream objekty, prohlížeče Blobs a ArrayBuffers. Obsah těla se nahraje do služby pro účely analýzy.

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

Extrahujte data ze vstupu pomocí modelu se známým schématem dokumentu se silnými typy (DocumentModel).

Pole vytvořená v AnalyzeResult závisí na modelu, který se používá k analýze. V TypeScriptu je typ výsledku pro toto přetížení metody odvozen z typu vstupního DocumentModel.

Příklady

Tato metoda podporuje streamovatelné těla požadavků (FormRecognizerRequestBody), jako jsou Node.JS ReadableStream objekty, prohlížeče Blobs a ArrayBuffers. Obsah těla se nahraje do služby pro účely analýzy.

Pokud je zadaným vstupem řetězec, bude považován za adresu URL umístění dokumentu, který se má analyzovat. Další informace najdete v beginAnalyzeDocumentFromUrl metoda. Použití této metody je upřednostňované při použití adres URL a podpora adres URL je k dispozici pouze v této metodě kvůli zpětné kompatibilitě.

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

Extrahujte data ze vstupu pomocí modelu poskytnutého jeho jedinečným ID.

Tato operace podporuje vlastní i předem připravené modely. Pokud například chcete použít předem připravený model faktury, zadejte ID modelu "předem připravená faktura" nebo pokud chcete použít jednodušší předem připravený model rozložení, zadejte ID modelu "předem připravené rozložení".

Pole vytvořená v AnalyzeResult závisí na modelu, který se používá k analýze, a hodnoty v polích extrahovaných dokumentů závisejí na typech dokumentů v modelu (pokud existuje) a jejich odpovídajících schématech polí.

Příklady

Tato metoda podporuje extrakci dat ze souboru na dané adrese URL. Služba Rozpoznávání formulářů se pokusí stáhnout soubor pomocí odeslané adresy URL, takže adresa URL musí být přístupná z veřejného internetu. Token SAS se dá například použít k udělení přístupu pro čtení k objektu blob ve službě Azure Storage a služba použije k vyžádání souboru zakódovanou adresu URL s kódováním SAS.

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

Extrahujte data ze vstupu pomocí modelu se známým schématem dokumentu se silnými typy (DocumentModel).

Pole vytvořená v AnalyzeResult závisí na modelu, který se používá k analýze. V TypeScriptu je typ výsledku pro toto přetížení metody odvozen z typu vstupního DocumentModel.

Příklady

Tato metoda podporuje extrakci dat ze souboru na dané adrese URL. Služba Rozpoznávání formulářů se pokusí stáhnout soubor pomocí odeslané adresy URL, takže adresa URL musí být přístupná z veřejného internetu. Token SAS se dá například použít k udělení přístupu pro čtení k objektu blob ve službě Azure Storage a služba použije k vyžádání souboru zakódovanou adresu URL s kódováním SAS.

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)

Klasifikovat dokument pomocí vlastního klasifikátoru zadaného jeho ID

Tato metoda vytvoří dlouhotrvající operaci (poller), která nakonec vytvoří AnalyzeResult. Jedná se o stejný typ jako beginAnalyzeDocument a beginAnalyzeDocumentFromUrl, ale výsledek bude obsahovat pouze malou podmnožinu polí. Naplní se pouze pole documents a pole pages a vrátí se pouze minimální informace o stránce. Pole documents bude obsahovat informace o všech identifikovaných dokumentech a docType, které byly klasifikovány jako.

Příklad

Tato metoda podporuje streamovatelné těla požadavků (FormRecognizerRequestBody), jako jsou Node.JS ReadableStream objekty, prohlížeče Blobs a ArrayBuffers. Obsah těla se nahraje do služby pro účely analýzy.

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)

Klasifikovat dokument z adresy URL pomocí vlastního klasifikátoru poskytnutého jeho ID.

Tato metoda vytvoří dlouhotrvající operaci (poller), která nakonec vytvoří AnalyzeResult. Jedná se o stejný typ jako beginAnalyzeDocument a beginAnalyzeDocumentFromUrl, ale výsledek bude obsahovat pouze malou podmnožinu polí. Naplní se pouze pole documents a pole pages a vrátí se pouze minimální informace o stránce. Pole documents bude obsahovat informace o všech identifikovaných dokumentech a docType, které byly klasifikovány jako.

Příklad

Tato metoda podporuje extrakci dat ze souboru na dané adrese URL. Služba Rozpoznávání formulářů se pokusí stáhnout soubor pomocí odeslané adresy URL, takže adresa URL musí být přístupná z veřejného internetu. Token SAS se dá například použít k udělení přístupu pro čtení k objektu blob ve službě Azure Storage a služba použije k vyžádání souboru zakódovanou adresu URL s kódováním SAS.

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

Podrobnosti konstruktoru

DocumentAnalysisClient(string, KeyCredential, DocumentAnalysisClientOptions)

Vytvoření instance DocumentAnalysisClient z koncového bodu prostředku a klíče statického rozhraní API (KeyCredential),

Příklad:

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)

Parametry

endpoint

string

adresa URL koncového bodu instance služby Azure Cognitive Services

credential
KeyCredential

Klíč KeyCredential obsahující klíč předplatného instance služeb Cognitive Services

options
DocumentAnalysisClientOptions

volitelná nastavení pro konfiguraci všech metod v klientovi

DocumentAnalysisClient(string, TokenCredential, DocumentAnalysisClientOptions)

Vytvořte instanci DocumentAnalysisClient z koncového bodu prostředku a TokenCredentialidentity Azure .

Další informace o ověřování pomocí Azure Active Directory najdete v balíčku @azure/identity.

Příklad:

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)

Parametry

endpoint

string

adresa URL koncového bodu instance služby Azure Cognitive Services

credential
TokenCredential

Instance TokenCredential z balíčku @azure/identity

options
DocumentAnalysisClientOptions

volitelná nastavení pro konfiguraci všech metod v klientovi

Podrobnosti metody

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

Extrahujte data ze vstupu pomocí modelu poskytnutého jeho jedinečným ID.

Tato operace podporuje vlastní i předem připravené modely. Pokud například chcete použít předem připravený model faktury, zadejte ID modelu "předem připravená faktura" nebo pokud chcete použít jednodušší předem připravený model rozložení, zadejte ID modelu "předem připravené rozložení".

Pole vytvořená v AnalyzeResult závisí na modelu, který se používá k analýze, a hodnoty v polích extrahovaných dokumentů závisejí na typech dokumentů v modelu (pokud existuje) a jejich odpovídajících schématech polí.

Příklady

Tato metoda podporuje streamovatelné těla požadavků (FormRecognizerRequestBody), jako jsou Node.JS ReadableStream objekty, prohlížeče Blobs a ArrayBuffers. Obsah těla se nahraje do služby pro účely analýzy.

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

Parametry

modelId

string

jedinečné ID (název) modelu v rámci prostředku tohoto klienta

document
FormRecognizerRequestBody

FormRecognizerRequestBody, který se nahraje s žádostí

options

AnalyzeDocumentOptions<AnalyzeResult<AnalyzedDocument>>

volitelná nastavení pro operaci analýzy a poller

Návraty

dlouhotrvající operace (poller), která nakonec vytvoří AnalyzeResult

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

Extrahujte data ze vstupu pomocí modelu se známým schématem dokumentu se silnými typy (DocumentModel).

Pole vytvořená v AnalyzeResult závisí na modelu, který se používá k analýze. V TypeScriptu je typ výsledku pro toto přetížení metody odvozen z typu vstupního DocumentModel.

Příklady

Tato metoda podporuje streamovatelné těla požadavků (FormRecognizerRequestBody), jako jsou Node.JS ReadableStream objekty, prohlížeče Blobs a ArrayBuffers. Obsah těla se nahraje do služby pro účely analýzy.

Pokud je zadaným vstupem řetězec, bude považován za adresu URL umístění dokumentu, který se má analyzovat. Další informace najdete v beginAnalyzeDocumentFromUrl metoda. Použití této metody je upřednostňované při použití adres URL a podpora adres URL je k dispozici pouze v této metodě kvůli zpětné kompatibilitě.

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

Parametry

model

DocumentModel<Result>

DocumentModel představující model, který se má použít k analýze, a očekávaný typ výstupu

document
FormRecognizerRequestBody

FormRecognizerRequestBody, který se nahraje s žádostí

options

AnalyzeDocumentOptions<Result>

volitelná nastavení pro operaci analýzy a poller

Návraty

Promise<AnalysisPoller<Result>>

Dlouhotrvající operace (poller), která nakonec vytvoří AnalyzeResult s dokumenty, které mají typ výsledku přidružený ke vstupnímu modelu.

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

Extrahujte data ze vstupu pomocí modelu poskytnutého jeho jedinečným ID.

Tato operace podporuje vlastní i předem připravené modely. Pokud například chcete použít předem připravený model faktury, zadejte ID modelu "předem připravená faktura" nebo pokud chcete použít jednodušší předem připravený model rozložení, zadejte ID modelu "předem připravené rozložení".

Pole vytvořená v AnalyzeResult závisí na modelu, který se používá k analýze, a hodnoty v polích extrahovaných dokumentů závisejí na typech dokumentů v modelu (pokud existuje) a jejich odpovídajících schématech polí.

Příklady

Tato metoda podporuje extrakci dat ze souboru na dané adrese URL. Služba Rozpoznávání formulářů se pokusí stáhnout soubor pomocí odeslané adresy URL, takže adresa URL musí být přístupná z veřejného internetu. Token SAS se dá například použít k udělení přístupu pro čtení k objektu blob ve službě Azure Storage a služba použije k vyžádání souboru zakódovanou adresu URL s kódováním SAS.

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

Parametry

modelId

string

jedinečné ID (název) modelu v rámci prostředku tohoto klienta

documentUrl

string

adresa URL (řetězec) vstupního dokumentu přístupného z veřejného internetu

options

AnalyzeDocumentOptions<AnalyzeResult<AnalyzedDocument>>

volitelná nastavení pro operaci analýzy a poller

Návraty

dlouhotrvající operace (poller), která nakonec vytvoří AnalyzeResult

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

Extrahujte data ze vstupu pomocí modelu se známým schématem dokumentu se silnými typy (DocumentModel).

Pole vytvořená v AnalyzeResult závisí na modelu, který se používá k analýze. V TypeScriptu je typ výsledku pro toto přetížení metody odvozen z typu vstupního DocumentModel.

Příklady

Tato metoda podporuje extrakci dat ze souboru na dané adrese URL. Služba Rozpoznávání formulářů se pokusí stáhnout soubor pomocí odeslané adresy URL, takže adresa URL musí být přístupná z veřejného internetu. Token SAS se dá například použít k udělení přístupu pro čtení k objektu blob ve službě Azure Storage a služba použije k vyžádání souboru zakódovanou adresu URL s kódováním SAS.

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

Parametry

model

DocumentModel<Result>

DocumentModel představující model, který se má použít k analýze, a očekávaný typ výstupu

documentUrl

string

adresa URL (řetězec) vstupního dokumentu přístupného z veřejného internetu

options

AnalyzeDocumentOptions<Result>

volitelná nastavení pro operaci analýzy a poller

Návraty

Promise<AnalysisPoller<Result>>

dlouhotrvající operace (poller), která nakonec vytvoří AnalyzeResult

beginClassifyDocument(string, FormRecognizerRequestBody, ClassifyDocumentOptions)

Klasifikovat dokument pomocí vlastního klasifikátoru zadaného jeho ID

Tato metoda vytvoří dlouhotrvající operaci (poller), která nakonec vytvoří AnalyzeResult. Jedná se o stejný typ jako beginAnalyzeDocument a beginAnalyzeDocumentFromUrl, ale výsledek bude obsahovat pouze malou podmnožinu polí. Naplní se pouze pole documents a pole pages a vrátí se pouze minimální informace o stránce. Pole documents bude obsahovat informace o všech identifikovaných dokumentech a docType, které byly klasifikovány jako.

Příklad

Tato metoda podporuje streamovatelné těla požadavků (FormRecognizerRequestBody), jako jsou Node.JS ReadableStream objekty, prohlížeče Blobs a ArrayBuffers. Obsah těla se nahraje do služby pro účely analýzy.

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

Parametry

classifierId

string

ID vlastního klasifikátoru, který se má použít k analýze

document
FormRecognizerRequestBody

dokument ke klasifikaci

options
ClassifyDocumentOptions

možnosti operace klasifikace

Návraty

dlouhotrvající operace (poller), která nakonec vytvoří AnalyzeResult

beginClassifyDocumentFromUrl(string, string, ClassifyDocumentOptions)

Klasifikovat dokument z adresy URL pomocí vlastního klasifikátoru poskytnutého jeho ID.

Tato metoda vytvoří dlouhotrvající operaci (poller), která nakonec vytvoří AnalyzeResult. Jedná se o stejný typ jako beginAnalyzeDocument a beginAnalyzeDocumentFromUrl, ale výsledek bude obsahovat pouze malou podmnožinu polí. Naplní se pouze pole documents a pole pages a vrátí se pouze minimální informace o stránce. Pole documents bude obsahovat informace o všech identifikovaných dokumentech a docType, které byly klasifikovány jako.

Příklad

Tato metoda podporuje extrakci dat ze souboru na dané adrese URL. Služba Rozpoznávání formulářů se pokusí stáhnout soubor pomocí odeslané adresy URL, takže adresa URL musí být přístupná z veřejného internetu. Token SAS se dá například použít k udělení přístupu pro čtení k objektu blob ve službě Azure Storage a služba použije k vyžádání souboru zakódovanou adresu URL s kódováním SAS.

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

Parametry

classifierId

string

ID vlastního klasifikátoru, který se má použít k analýze

documentUrl

string

adresa URL dokumentu ke klasifikaci

Návraty