Partager via


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

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

Méthodes

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

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

options

AnalyzeDocumentOptions<AnalyzeResult<AnalyzedDocument>>

paramètres facultatifs pour l’opération d’analyse et l’polleur

Retours

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

options

AnalyzeDocumentOptions<AnalyzeResult<AnalyzedDocument>>

paramètres facultatifs pour l’opération d’analyse et l’polleur

Retours

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

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

Retours