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
| Document |
Vytvoření instance Příklad:
|
| Document |
Vytvořte instanci Další informace o ověřování pomocí Azure Active Directory najdete v balíčku Příklad:
|
Metody
| begin |
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 PříkladyTato metoda podporuje streamovatelné těla požadavků (FormRecognizerRequestBody), jako jsou Node.JS
|
| begin |
Extrahujte data ze vstupu pomocí modelu se známým schématem dokumentu se silnými typy (DocumentModel). Pole vytvořená v PříkladyTato metoda podporuje streamovatelné těla požadavků (FormRecognizerRequestBody), jako jsou Node.JS 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ě.
|
| begin |
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 PříkladyTato 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.
|
| begin |
Extrahujte data ze vstupu pomocí modelu se známým schématem dokumentu se silnými typy (DocumentModel). Pole vytvořená v PříkladyTato 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.
|
| begin |
Klasifikovat dokument pomocí vlastního klasifikátoru zadaného jeho ID Tato metoda vytvoří dlouhotrvající operaci (poller), která nakonec vytvoří PříkladTato metoda podporuje streamovatelné těla požadavků (FormRecognizerRequestBody), jako jsou Node.JS
|
| begin |
Klasifikovat dokument z adresy URL pomocí vlastního klasifikátoru poskytnutého jeho ID. Tato metoda vytvoří dlouhotrvající operaci (poller), která nakonec vytvoří PříkladTato 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.
|
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í
volitelná nastavení pro operaci analýzy a poller
Návraty
Promise<AnalysisPoller<AnalyzeResult<AnalyzedDocument>>>
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
volitelná nastavení pro operaci analýzy a poller
Návraty
Promise<AnalysisPoller<AnalyzeResult<AnalyzedDocument>>>
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
Promise<AnalysisPoller<AnalyzeResult<AnalyzedDocument>>>
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
- options
- ClassifyDocumentOptions
Návraty
Promise<AnalysisPoller<AnalyzeResult<AnalyzedDocument>>>