DocumentAnalysisClient class
Un cliente para interactuar con las características de análisis del servicio Form Recognizer.
Ejemplos:
El servicio Form Recognizer y los clientes admiten dos medios de autenticació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,
);
Clave de API (clave de suscripción)
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,
);
Constructores
Document |
Creación de una instancia de Ejemplo:
|
Document |
Cree una instancia de Consulte el paquete de Ejemplo:
|
Métodos
begin |
Extraiga datos de una entrada mediante un modelo proporcionado por su identificador único. Esta operación admite modelos personalizados y precompilados. Por ejemplo, para usar el modelo de factura precompilado, proporcione el identificador de modelo "factura precompilada" o para usar el modelo de diseño precompilado más sencillo, proporcione el identificador de modelo "diseño precompilado". Los campos generados en el EjemplosEste método admite cuerpos de solicitud que se pueden transmitir (FormRecognizerRequestBody), como objetos Node.JS
|
begin |
Extraiga datos de una entrada mediante un modelo que tenga un esquema de documento conocido y fuertemente tipado (un DocumentModel). Los campos generados en el EjemplosEste método admite cuerpos de solicitud que se pueden transmitir (FormRecognizerRequestBody), como objetos Node.JS Si la entrada proporcionada es una cadena, se tratará como una dirección URL a la ubicación de un documento que se va a analizar. Consulte el método beginAnalyzeDocumentFromUrl para obtener más información. El uso de ese método es preferible cuando se usan direcciones URL y la compatibilidad con direcciones URL solo se proporciona en este método para la compatibilidad con versiones anteriores.
|
begin |
Extraiga datos de una entrada mediante un modelo proporcionado por su identificador único. Esta operación admite modelos personalizados y precompilados. Por ejemplo, para usar el modelo de factura precompilado, proporcione el identificador de modelo "factura precompilada" o para usar el modelo de diseño precompilado más sencillo, proporcione el identificador de modelo "diseño precompilado". Los campos generados en el EjemplosEste método admite la extracción de datos de un archivo en una dirección URL determinada. El servicio Form Recognizer intentará descargar un archivo mediante la dirección URL enviada, por lo que la dirección URL debe ser accesible desde la red pública de Internet. Por ejemplo, se puede usar un token de SAS para conceder acceso de lectura a un blob en Azure Storage y el servicio usará la dirección URL codificada por SAS para solicitar el archivo.
|
begin |
Extraiga datos de una entrada mediante un modelo que tenga un esquema de documento conocido y fuertemente tipado (un DocumentModel). Los campos generados en el EjemplosEste método admite la extracción de datos de un archivo en una dirección URL determinada. El servicio Form Recognizer intentará descargar un archivo mediante la dirección URL enviada, por lo que la dirección URL debe ser accesible desde la red pública de Internet. Por ejemplo, se puede usar un token de SAS para conceder acceso de lectura a un blob en Azure Storage y el servicio usará la dirección URL codificada por SAS para solicitar el archivo.
|
begin |
Clasifique un documento mediante un clasificador personalizado proporcionado por su identificador. Este método genera una operación de larga duración (sondeo) que finalmente generará un EjemploEste método admite cuerpos de solicitud que se pueden transmitir (FormRecognizerRequestBody), como objetos Node.JS
|
begin |
Clasifique un documento de una dirección URL mediante un clasificador personalizado proporcionado por su identificador. Este método genera una operación de larga duración (sondeo) que finalmente generará un EjemploEste método admite la extracción de datos de un archivo en una dirección URL determinada. El servicio Form Recognizer intentará descargar un archivo mediante la dirección URL enviada, por lo que la dirección URL debe ser accesible desde la red pública de Internet. Por ejemplo, se puede usar un token de SAS para conceder acceso de lectura a un blob en Azure Storage y el servicio usará la dirección URL codificada por SAS para solicitar el archivo.
|
Detalles del constructor
DocumentAnalysisClient(string, KeyCredential, DocumentAnalysisClientOptions)
Creación de una instancia de DocumentAnalysisClient
a partir de un punto de conexión de recurso y una clave de API estática (KeyCredential
),
Ejemplo:
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)
Parámetros
- endpoint
-
string
la dirección URL del punto de conexión de una instancia de Azure Cognitive Services
- credential
- KeyCredential
KeyCredential que contiene la clave de suscripción de la instancia de Cognitive Services
- options
- DocumentAnalysisClientOptions
opciones opcionales para configurar todos los métodos en el cliente
DocumentAnalysisClient(string, TokenCredential, DocumentAnalysisClientOptions)
Cree una instancia de DocumentAnalysisClient
a partir de un punto de conexión de recursos y una instancia de Azure Identity TokenCredential
.
Consulte el paquete de @azure/identity
para obtener más información sobre la autenticación con Azure Active Directory.
Ejemplo:
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)
Parámetros
- endpoint
-
string
la dirección URL del punto de conexión de una instancia de Azure Cognitive Services
- credential
- TokenCredential
una instancia de TokenCredential del paquete de @azure/identity
- options
- DocumentAnalysisClientOptions
opciones opcionales para configurar todos los métodos en el cliente
Detalles del método
beginAnalyzeDocument(string, FormRecognizerRequestBody, AnalyzeDocumentOptions<AnalyzeResult<AnalyzedDocument>>)
Extraiga datos de una entrada mediante un modelo proporcionado por su identificador único.
Esta operación admite modelos personalizados y precompilados. Por ejemplo, para usar el modelo de factura precompilado, proporcione el identificador de modelo "factura precompilada" o para usar el modelo de diseño precompilado más sencillo, proporcione el identificador de modelo "diseño precompilado".
Los campos generados en el AnalyzeResult
dependen del modelo que se usa para el análisis y los valores de los campos de los documentos extraídos dependen de los tipos de documento del modelo (si los hay) y sus esquemas de campo correspondientes.
Ejemplos
Este método admite cuerpos de solicitud que se pueden transmitir (FormRecognizerRequestBody), como objetos Node.JS ReadableStream
, Blob
s del explorador y ArrayBuffer
s. El contenido del cuerpo se cargará en el servicio para su análisis.
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>>>
Parámetros
- modelId
-
string
el identificador único (nombre) del modelo dentro del recurso de este cliente
- document
- FormRecognizerRequestBody
un FormRecognizerRequestBody que se cargará con la solicitud
configuración opcional para la operación de análisis y el sondeo
Devoluciones
Promise<AnalysisPoller<AnalyzeResult<AnalyzedDocument>>>
una operación de larga duración (sondeo) que finalmente generará un AnalyzeResult
beginAnalyzeDocument<Result>(DocumentModel<Result>, FormRecognizerRequestBody, AnalyzeDocumentOptions<Result>)
Extraiga datos de una entrada mediante un modelo que tenga un esquema de documento conocido y fuertemente tipado (un DocumentModel).
Los campos generados en el AnalyzeResult
dependen del modelo que se usa para el análisis. En TypeScript, el tipo del resultado de esta sobrecarga de método se deduce del tipo de la entrada DocumentModel
.
Ejemplos
Este método admite cuerpos de solicitud que se pueden transmitir (FormRecognizerRequestBody), como objetos Node.JS ReadableStream
, Blob
s del explorador y ArrayBuffer
s. El contenido del cuerpo se cargará en el servicio para su análisis.
Si la entrada proporcionada es una cadena, se tratará como una dirección URL a la ubicación de un documento que se va a analizar. Consulte el método beginAnalyzeDocumentFromUrl para obtener más información. El uso de ese método es preferible cuando se usan direcciones URL y la compatibilidad con direcciones URL solo se proporciona en este método para la compatibilidad con versiones anteriores.
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>>
Parámetros
- model
-
DocumentModel<Result>
un DocumentModel que representa el modelo que se va a usar para el análisis y el tipo de salida esperado
- document
- FormRecognizerRequestBody
un FormRecognizerRequestBody que se cargará con la solicitud
- options
-
AnalyzeDocumentOptions<Result>
configuración opcional para la operación de análisis y el sondeo
Devoluciones
Promise<AnalysisPoller<Result>>
una operación de larga duración (sondeo) que finalmente generará un AnalyzeResult
con documentos que tengan el tipo de resultado asociado al modelo de entrada.
beginAnalyzeDocumentFromUrl(string, string, AnalyzeDocumentOptions<AnalyzeResult<AnalyzedDocument>>)
Extraiga datos de una entrada mediante un modelo proporcionado por su identificador único.
Esta operación admite modelos personalizados y precompilados. Por ejemplo, para usar el modelo de factura precompilado, proporcione el identificador de modelo "factura precompilada" o para usar el modelo de diseño precompilado más sencillo, proporcione el identificador de modelo "diseño precompilado".
Los campos generados en el AnalyzeResult
dependen del modelo que se usa para el análisis y los valores de los campos de los documentos extraídos dependen de los tipos de documento del modelo (si los hay) y sus esquemas de campo correspondientes.
Ejemplos
Este método admite la extracción de datos de un archivo en una dirección URL determinada. El servicio Form Recognizer intentará descargar un archivo mediante la dirección URL enviada, por lo que la dirección URL debe ser accesible desde la red pública de Internet. Por ejemplo, se puede usar un token de SAS para conceder acceso de lectura a un blob en Azure Storage y el servicio usará la dirección URL codificada por SAS para solicitar el archivo.
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>>>
Parámetros
- modelId
-
string
el identificador único (nombre) del modelo dentro del recurso de este cliente
- documentUrl
-
string
una dirección URL (cadena) a un documento de entrada accesible desde la red pública de Internet
configuración opcional para la operación de análisis y el sondeo
Devoluciones
Promise<AnalysisPoller<AnalyzeResult<AnalyzedDocument>>>
una operación de larga duración (sondeo) que finalmente generará un AnalyzeResult
beginAnalyzeDocumentFromUrl<Result>(DocumentModel<Result>, string, AnalyzeDocumentOptions<Result>)
Extraiga datos de una entrada mediante un modelo que tenga un esquema de documento conocido y fuertemente tipado (un DocumentModel).
Los campos generados en el AnalyzeResult
dependen del modelo que se usa para el análisis. En TypeScript, el tipo del resultado de esta sobrecarga de método se deduce del tipo de la entrada DocumentModel
.
Ejemplos
Este método admite la extracción de datos de un archivo en una dirección URL determinada. El servicio Form Recognizer intentará descargar un archivo mediante la dirección URL enviada, por lo que la dirección URL debe ser accesible desde la red pública de Internet. Por ejemplo, se puede usar un token de SAS para conceder acceso de lectura a un blob en Azure Storage y el servicio usará la dirección URL codificada por SAS para solicitar el archivo.
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>>
Parámetros
- model
-
DocumentModel<Result>
un DocumentModel que representa el modelo que se va a usar para el análisis y el tipo de salida esperado
- documentUrl
-
string
una dirección URL (cadena) a un documento de entrada accesible desde la red pública de Internet
- options
-
AnalyzeDocumentOptions<Result>
configuración opcional para la operación de análisis y el sondeo
Devoluciones
Promise<AnalysisPoller<Result>>
una operación de larga duración (sondeo) que finalmente generará un AnalyzeResult
beginClassifyDocument(string, FormRecognizerRequestBody, ClassifyDocumentOptions)
Clasifique un documento mediante un clasificador personalizado proporcionado por su identificador.
Este método genera una operación de larga duración (sondeo) que finalmente generará un AnalyzeResult
. Este es el mismo tipo que beginAnalyzeDocument
y beginAnalyzeDocumentFromUrl
, pero el resultado solo contendrá un pequeño subconjunto de sus campos. Solo se rellenará el campo documents
y pages
, y solo se devolverá información mínima de página. El campo documents
contendrá información sobre todos los documentos identificados y el docType
que se clasificaron como.
Ejemplo
Este método admite cuerpos de solicitud que se pueden transmitir (FormRecognizerRequestBody), como objetos Node.JS ReadableStream
, Blob
s del explorador y ArrayBuffer
s. El contenido del cuerpo se cargará en el servicio para su análisis.
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>>>
Parámetros
- classifierId
-
string
el identificador del clasificador personalizado que se va a usar para el análisis.
- document
- FormRecognizerRequestBody
el documento que se va a clasificar
- options
- ClassifyDocumentOptions
opciones para la operación de clasificación
Devoluciones
Promise<AnalysisPoller<AnalyzeResult<AnalyzedDocument>>>
una operación de larga duración (sondeo) que finalmente generará un AnalyzeResult
beginClassifyDocumentFromUrl(string, string, ClassifyDocumentOptions)
Clasifique un documento de una dirección URL mediante un clasificador personalizado proporcionado por su identificador.
Este método genera una operación de larga duración (sondeo) que finalmente generará un AnalyzeResult
. Este es el mismo tipo que beginAnalyzeDocument
y beginAnalyzeDocumentFromUrl
, pero el resultado solo contendrá un pequeño subconjunto de sus campos. Solo se rellenará el campo documents
y pages
, y solo se devolverá información mínima de página. El campo documents
contendrá información sobre todos los documentos identificados y el docType
que se clasificaron como.
Ejemplo
Este método admite la extracción de datos de un archivo en una dirección URL determinada. El servicio Form Recognizer intentará descargar un archivo mediante la dirección URL enviada, por lo que la dirección URL debe ser accesible desde la red pública de Internet. Por ejemplo, se puede usar un token de SAS para conceder acceso de lectura a un blob en Azure Storage y el servicio usará la dirección URL codificada por SAS para solicitar el archivo.
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>>>
Parámetros
- classifierId
-
string
el identificador del clasificador personalizado que se va a usar para el análisis.
- documentUrl
-
string
la dirección URL del documento que se va a clasificar
- options
- ClassifyDocumentOptions
Devoluciones
Promise<AnalysisPoller<AnalyzeResult<AnalyzedDocument>>>