DocumentAnalysisClient class
Un client pour interagir avec les fonctionnalités d’analyse du service Form Recognizer.
Exemples:
Le service Form Recognizer et les clients prennent en charge deux moyens d’authentification :
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,
);
Clé API (clé d’abonnement)
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,
);
Constructeurs
| Document |
Créer une instance Exemple:
|
| Document |
Créez une instance Pour plus d’informations sur l’authentification auprès d’Azure Active Directory, consultez le package Exemple:
|
Méthodes
| begin |
Extrayez des données d’une entrée à l’aide d’un modèle donné par son ID unique. Cette opération prend en charge les modèles personnalisés et prédéfinis. Par exemple, pour utiliser le modèle de facture prédéfini, fournissez l’ID de modèle « prédéfini-invoice » ou pour utiliser le modèle de disposition prédéfini plus simple, fournissez l’ID de modèle « prédéfini-layout ». Les champs produits dans la ExemplesCette méthode prend en charge les corps de requête streamables (FormRecognizerRequestBody) tels que les objets Node.JS
|
| begin |
Extrayez des données d’une entrée à l’aide d’un modèle qui a un schéma de document connu et fortement typé (un DocumentModel). Les champs produits dans la ExemplesCette méthode prend en charge les corps de requête streamables (FormRecognizerRequestBody) tels que les objets Node.JS Si l’entrée fournie est une chaîne, elle sera traitée comme une URL vers l’emplacement d’un document à analyser. Pour plus d’informations, consultez la méthode beginAnalyzeDocumentFromUrl. L’utilisation de cette méthode est recommandée lors de l’utilisation d’URL, et la prise en charge des URL est fournie uniquement dans cette méthode pour la compatibilité descendante.
|
| begin |
Extrayez des données d’une entrée à l’aide d’un modèle donné par son ID unique. Cette opération prend en charge les modèles personnalisés et prédéfinis. Par exemple, pour utiliser le modèle de facture prédéfini, fournissez l’ID de modèle « prédéfini-invoice » ou pour utiliser le modèle de disposition prédéfini plus simple, fournissez l’ID de modèle « prédéfini-layout ». Les champs produits dans la ExemplesCette méthode prend en charge l’extraction de données à partir d’un fichier à une URL donnée. Le service Form Recognizer tente de télécharger un fichier à l’aide de l’URL envoyée. L’URL doit donc être accessible à partir de l’Internet public. Par exemple, un jeton SAP peut être utilisé pour accorder l’accès en lecture à un objet blob dans stockage Azure, et le service utilise l’URL codée par SAP pour demander le fichier.
|
| begin |
Extrayez des données d’une entrée à l’aide d’un modèle qui a un schéma de document connu et fortement typé (un DocumentModel). Les champs produits dans la ExemplesCette méthode prend en charge l’extraction de données à partir d’un fichier à une URL donnée. Le service Form Recognizer tente de télécharger un fichier à l’aide de l’URL envoyée. L’URL doit donc être accessible à partir de l’Internet public. Par exemple, un jeton SAP peut être utilisé pour accorder l’accès en lecture à un objet blob dans stockage Azure, et le service utilise l’URL codée par SAP pour demander le fichier.
|
| begin |
Classifiez un document à l’aide d’un classifieur personnalisé donné par son ID. Cette méthode produit une opération longue (polleur) qui produira finalement une ExempleCette méthode prend en charge les corps de requête streamables (FormRecognizerRequestBody) tels que les objets Node.JS
|
| begin |
Classifiez un document à partir d’une URL à l’aide d’un classifieur personnalisé donné par son ID. Cette méthode produit une opération longue (polleur) qui produira finalement une ExempleCette méthode prend en charge l’extraction de données à partir d’un fichier à une URL donnée. Le service Form Recognizer tente de télécharger un fichier à l’aide de l’URL envoyée. L’URL doit donc être accessible à partir de l’Internet public. Par exemple, un jeton SAP peut être utilisé pour accorder l’accès en lecture à un objet blob dans stockage Azure, et le service utilise l’URL codée par SAP pour demander le fichier.
|
Détails du constructeur
DocumentAnalysisClient(string, KeyCredential, DocumentAnalysisClientOptions)
Créer une instance DocumentAnalysisClient à partir d’un point de terminaison de ressource et d’une clé API statique (KeyCredential),
Exemple:
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)
Paramètres
- endpoint
-
string
URL du point de terminaison d’une instance Azure Cognitive Services
- credential
- KeyCredential
KeyCredential contenant la clé d’abonnement de l’instance Cognitive Services
- options
- DocumentAnalysisClientOptions
paramètres facultatifs pour la configuration de toutes les méthodes dans le client
DocumentAnalysisClient(string, TokenCredential, DocumentAnalysisClientOptions)
Créez une instance DocumentAnalysisClient à partir d’un point de terminaison de ressource et d’une TokenCredentiald’identité Azure.
Pour plus d’informations sur l’authentification auprès d’Azure Active Directory, consultez le package @azure/identity.
Exemple:
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)
Paramètres
- endpoint
-
string
URL du point de terminaison d’une instance Azure Cognitive Services
- credential
- TokenCredential
une instance TokenCredential à partir du package @azure/identity
- options
- DocumentAnalysisClientOptions
paramètres facultatifs pour la configuration de toutes les méthodes dans le client
Détails de la méthode
beginAnalyzeDocument(string, FormRecognizerRequestBody, AnalyzeDocumentOptions<AnalyzeResult<AnalyzedDocument>>)
Extrayez des données d’une entrée à l’aide d’un modèle donné par son ID unique.
Cette opération prend en charge les modèles personnalisés et prédéfinis. Par exemple, pour utiliser le modèle de facture prédéfini, fournissez l’ID de modèle « prédéfini-invoice » ou pour utiliser le modèle de disposition prédéfini plus simple, fournissez l’ID de modèle « prédéfini-layout ».
Les champs produits dans la AnalyzeResult dépendent du modèle utilisé pour l’analyse, et les valeurs des champs des documents extraits dépendent des types de documents dans le modèle (le cas échéant) et de leurs schémas de champs correspondants.
Exemples
Cette méthode prend en charge les corps de requête streamables (FormRecognizerRequestBody) tels que les objets Node.JS ReadableStream, les Blobde navigateur et les ArrayBuffer. Le contenu du corps sera chargé dans le service pour analyse.
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>>>
Paramètres
- modelId
-
string
l’ID unique (nom) du modèle dans la ressource de ce client
- document
- FormRecognizerRequestBody
un FormRecognizerRequestBody qui sera chargé avec la requête
paramètres facultatifs pour l’opération d’analyse et l’polleur
Retours
Promise<AnalysisPoller<AnalyzeResult<AnalyzedDocument>>>
une opération de longue durée (polleur) qui produira finalement un AnalyzeResult
beginAnalyzeDocument<Result>(DocumentModel<Result>, FormRecognizerRequestBody, AnalyzeDocumentOptions<Result>)
Extrayez des données d’une entrée à l’aide d’un modèle qui a un schéma de document connu et fortement typé (un DocumentModel).
Les champs produits dans la AnalyzeResult dépendent du modèle utilisé pour l’analyse. Dans TypeScript, le type du résultat de cette surcharge de méthode est déduit du type du DocumentModeld’entrée.
Exemples
Cette méthode prend en charge les corps de requête streamables (FormRecognizerRequestBody) tels que les objets Node.JS ReadableStream, les Blobde navigateur et les ArrayBuffer. Le contenu du corps sera chargé dans le service pour analyse.
Si l’entrée fournie est une chaîne, elle sera traitée comme une URL vers l’emplacement d’un document à analyser. Pour plus d’informations, consultez la méthode beginAnalyzeDocumentFromUrl. L’utilisation de cette méthode est recommandée lors de l’utilisation d’URL, et la prise en charge des URL est fournie uniquement dans cette méthode pour la compatibilité descendante.
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>>
Paramètres
- model
-
DocumentModel<Result>
un DocumentModel représentant le modèle à utiliser pour l’analyse et le type de sortie attendu
- document
- FormRecognizerRequestBody
un FormRecognizerRequestBody qui sera chargé avec la requête
- options
-
AnalyzeDocumentOptions<Result>
paramètres facultatifs pour l’opération d’analyse et l’polleur
Retours
Promise<AnalysisPoller<Result>>
une opération de longue durée (polleur) qui produira finalement un AnalyzeResult avec des documents dont le type de résultat est associé au modèle d’entrée
beginAnalyzeDocumentFromUrl(string, string, AnalyzeDocumentOptions<AnalyzeResult<AnalyzedDocument>>)
Extrayez des données d’une entrée à l’aide d’un modèle donné par son ID unique.
Cette opération prend en charge les modèles personnalisés et prédéfinis. Par exemple, pour utiliser le modèle de facture prédéfini, fournissez l’ID de modèle « prédéfini-invoice » ou pour utiliser le modèle de disposition prédéfini plus simple, fournissez l’ID de modèle « prédéfini-layout ».
Les champs produits dans la AnalyzeResult dépendent du modèle utilisé pour l’analyse, et les valeurs des champs des documents extraits dépendent des types de documents dans le modèle (le cas échéant) et de leurs schémas de champs correspondants.
Exemples
Cette méthode prend en charge l’extraction de données à partir d’un fichier à une URL donnée. Le service Form Recognizer tente de télécharger un fichier à l’aide de l’URL envoyée. L’URL doit donc être accessible à partir de l’Internet public. Par exemple, un jeton SAP peut être utilisé pour accorder l’accès en lecture à un objet blob dans stockage Azure, et le service utilise l’URL codée par SAP pour demander le fichier.
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>>>
Paramètres
- modelId
-
string
l’ID unique (nom) du modèle dans la ressource de ce client
- documentUrl
-
string
UNE URL (chaîne) vers un document d’entrée accessible à partir de l’Internet public
paramètres facultatifs pour l’opération d’analyse et l’polleur
Retours
Promise<AnalysisPoller<AnalyzeResult<AnalyzedDocument>>>
une opération de longue durée (polleur) qui produira finalement un AnalyzeResult
beginAnalyzeDocumentFromUrl<Result>(DocumentModel<Result>, string, AnalyzeDocumentOptions<Result>)
Extrayez des données d’une entrée à l’aide d’un modèle qui a un schéma de document connu et fortement typé (un DocumentModel).
Les champs produits dans la AnalyzeResult dépendent du modèle utilisé pour l’analyse. Dans TypeScript, le type du résultat de cette surcharge de méthode est déduit du type du DocumentModeld’entrée.
Exemples
Cette méthode prend en charge l’extraction de données à partir d’un fichier à une URL donnée. Le service Form Recognizer tente de télécharger un fichier à l’aide de l’URL envoyée. L’URL doit donc être accessible à partir de l’Internet public. Par exemple, un jeton SAP peut être utilisé pour accorder l’accès en lecture à un objet blob dans stockage Azure, et le service utilise l’URL codée par SAP pour demander le fichier.
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>>
Paramètres
- model
-
DocumentModel<Result>
un DocumentModel représentant le modèle à utiliser pour l’analyse et le type de sortie attendu
- documentUrl
-
string
UNE URL (chaîne) vers un document d’entrée accessible à partir de l’Internet public
- options
-
AnalyzeDocumentOptions<Result>
paramètres facultatifs pour l’opération d’analyse et l’polleur
Retours
Promise<AnalysisPoller<Result>>
une opération de longue durée (polleur) qui produira finalement un AnalyzeResult
beginClassifyDocument(string, FormRecognizerRequestBody, ClassifyDocumentOptions)
Classifiez un document à l’aide d’un classifieur personnalisé donné par son ID.
Cette méthode produit une opération longue (polleur) qui produira finalement une AnalyzeResult. Il s’agit du même type que beginAnalyzeDocument et beginAnalyzeDocumentFromUrl, mais le résultat ne contiendra qu’un petit sous-ensemble de ses champs. Seul le champ documents et le champ pages sont renseignés, et seules les informations de page minimales sont retournées. Le champ documents contient des informations sur tous les documents identifiés et les docType qu’ils ont été classés comme.
Exemple
Cette méthode prend en charge les corps de requête streamables (FormRecognizerRequestBody) tels que les objets Node.JS ReadableStream, les Blobde navigateur et les ArrayBuffer. Le contenu du corps sera chargé dans le service pour analyse.
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>>>
Paramètres
- classifierId
-
string
ID du classifieur personnalisé à utiliser pour l’analyse
- document
- FormRecognizerRequestBody
document à classer
- options
- ClassifyDocumentOptions
options pour l’opération de classification
Retours
Promise<AnalysisPoller<AnalyzeResult<AnalyzedDocument>>>
une opération de longue durée (polleur) qui produira finalement un AnalyzeResult
beginClassifyDocumentFromUrl(string, string, ClassifyDocumentOptions)
Classifiez un document à partir d’une URL à l’aide d’un classifieur personnalisé donné par son ID.
Cette méthode produit une opération longue (polleur) qui produira finalement une AnalyzeResult. Il s’agit du même type que beginAnalyzeDocument et beginAnalyzeDocumentFromUrl, mais le résultat ne contiendra qu’un petit sous-ensemble de ses champs. Seul le champ documents et le champ pages sont renseignés, et seules les informations de page minimales sont retournées. Le champ documents contient des informations sur tous les documents identifiés et les docType qu’ils ont été classés comme.
Exemple
Cette méthode prend en charge l’extraction de données à partir d’un fichier à une URL donnée. Le service Form Recognizer tente de télécharger un fichier à l’aide de l’URL envoyée. L’URL doit donc être accessible à partir de l’Internet public. Par exemple, un jeton SAP peut être utilisé pour accorder l’accès en lecture à un objet blob dans stockage Azure, et le service utilise l’URL codée par SAP pour demander le fichier.
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>>>
Paramètres
- classifierId
-
string
ID du classifieur personnalisé à utiliser pour l’analyse
- documentUrl
-
string
URL du document à classer
- options
- ClassifyDocumentOptions
Retours
Promise<AnalysisPoller<AnalyzeResult<AnalyzedDocument>>>