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
| Document |
Skapa en Exempel:
|
| Document |
Skapa en Mer information om autentisering med Azure Active Directory finns i Exempel:
|
Metoder
| begin |
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 ExempelDen här metoden stöder strömmande begärandeorgan (FormRecognizerRequestBody) som Node.JS
|
| begin |
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 ExempelDen här metoden stöder strömmande begärandeorgan (FormRecognizerRequestBody) som Node.JS 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.
|
| begin |
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 ExempelDen 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.
|
| begin |
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 ExempelDen 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.
|
| begin |
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 ExempelDen här metoden stöder strömmande begärandeorgan (FormRecognizerRequestBody) som Node.JS
|
| begin |
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 ExempelDen 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.
|
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
valfria inställningar för analysåtgärden och poller
Returer
Promise<AnalysisPoller<AnalyzeResult<AnalyzedDocument>>>
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
valfria inställningar för analysåtgärden och poller
Returer
Promise<AnalysisPoller<AnalyzeResult<AnalyzedDocument>>>
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
Promise<AnalysisPoller<AnalyzeResult<AnalyzedDocument>>>
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
- options
- ClassifyDocumentOptions
Returer
Promise<AnalysisPoller<AnalyzeResult<AnalyzedDocument>>>