DocumentAnalysisClient class
Um cliente para interagir com os recursos de análise do serviço Reconhecimento de Formulários.
Exemplos:
O serviço reconhecimento de formulários e clientes dão suporte a dois meios de autenticação:
Active Directory do Azure
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,
);
Chave de API (Chave de Assinatura)
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,
);
Construtores
| Document |
Criar uma instância Exemplo:
|
| Document |
Crie uma instância de Consulte o pacote Exemplo:
|
Métodos
| begin |
Extraia dados de uma entrada usando um modelo dado por sua ID exclusiva. Essa operação dá suporte a modelos personalizados e predefinidos. Por exemplo, para usar o modelo de fatura predefinido, fornecer a ID do modelo "fatura predefinida" ou usar o modelo de layout predefinido mais simples, forneça a ID do modelo "predefinido-layout". Os campos produzidos no ExemplosEsse método dá suporte a corpos de solicitação que podem ser transmitidos (FormRecognizerRequestBody), como objetos Node.JS
|
| begin |
Extraia dados de uma entrada usando um modelo que tem um esquema de documento conhecido e fortemente tipado (um DocumentModel). Os campos produzidos no ExemplosEsse método dá suporte a corpos de solicitação que podem ser transmitidos (FormRecognizerRequestBody), como objetos Node.JS Se a entrada fornecida for uma cadeia de caracteres, ela será tratada como uma URL para o local de um documento a ser analisado. Consulte o método beginAnalyzeDocumentFromUrl para obter mais informações. O uso desse método é preferencial ao usar URLs e o suporte à URL só é fornecido neste método para compatibilidade com versões anteriores.
|
| begin |
Extraia dados de uma entrada usando um modelo dado por sua ID exclusiva. Essa operação dá suporte a modelos personalizados e predefinidos. Por exemplo, para usar o modelo de fatura predefinido, fornecer a ID do modelo "fatura predefinida" ou usar o modelo de layout predefinido mais simples, forneça a ID do modelo "predefinido-layout". Os campos produzidos no ExemplosEsse método dá suporte à extração de dados de um arquivo em uma determinada URL. O serviço Reconhecimento de Formulários tentará baixar um arquivo usando a URL enviada, portanto, a URL deve estar acessível na Internet pública. Por exemplo, um token SAS pode ser usado para conceder acesso de leitura a um blob no Armazenamento do Azure e o serviço usará a URL codificada em SAS para solicitar o arquivo.
|
| begin |
Extraia dados de uma entrada usando um modelo que tem um esquema de documento conhecido e fortemente tipado (um DocumentModel). Os campos produzidos no ExemplosEsse método dá suporte à extração de dados de um arquivo em uma determinada URL. O serviço Reconhecimento de Formulários tentará baixar um arquivo usando a URL enviada, portanto, a URL deve estar acessível na Internet pública. Por exemplo, um token SAS pode ser usado para conceder acesso de leitura a um blob no Armazenamento do Azure e o serviço usará a URL codificada em SAS para solicitar o arquivo.
|
| begin |
Classifique um documento usando um classificador personalizado dado por sua ID. Esse método produz uma operação de longa execução (poller) que eventualmente produzirá um ExemploEsse método dá suporte a corpos de solicitação que podem ser transmitidos (FormRecognizerRequestBody), como objetos Node.JS
|
| begin |
Classifique um documento de uma URL usando um classificador personalizado dado por sua ID. Esse método produz uma operação de longa execução (poller) que eventualmente produzirá um ExemploEsse método dá suporte à extração de dados de um arquivo em uma determinada URL. O serviço Reconhecimento de Formulários tentará baixar um arquivo usando a URL enviada, portanto, a URL deve estar acessível na Internet pública. Por exemplo, um token SAS pode ser usado para conceder acesso de leitura a um blob no Armazenamento do Azure e o serviço usará a URL codificada em SAS para solicitar o arquivo.
|
Detalhes do construtor
DocumentAnalysisClient(string, KeyCredential, DocumentAnalysisClientOptions)
Criar uma instância DocumentAnalysisClient de um ponto de extremidade de recurso e uma chave de API estática (KeyCredential),
Exemplo:
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
a URL do ponto de extremidade de uma instância dos Serviços Cognitivos do Azure
- credential
- KeyCredential
um KeyCredential que contém a chave de assinatura da instância dos Serviços Cognitivos
- options
- DocumentAnalysisClientOptions
configurações opcionais para configurar todos os métodos no cliente
DocumentAnalysisClient(string, TokenCredential, DocumentAnalysisClientOptions)
Crie uma instância de DocumentAnalysisClient de um ponto de extremidade de recurso e um TokenCredentialde Identidade do Azure.
Consulte o pacote @azure/identity para obter mais informações sobre como autenticar com o Azure Active Directory.
Exemplo:
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
a URL do ponto de extremidade de uma instância dos Serviços Cognitivos do Azure
- credential
- TokenCredential
uma instância tokenCredential do pacote @azure/identity
- options
- DocumentAnalysisClientOptions
configurações opcionais para configurar todos os métodos no cliente
Detalhes do método
beginAnalyzeDocument(string, FormRecognizerRequestBody, AnalyzeDocumentOptions<AnalyzeResult<AnalyzedDocument>>)
Extraia dados de uma entrada usando um modelo dado por sua ID exclusiva.
Essa operação dá suporte a modelos personalizados e predefinidos. Por exemplo, para usar o modelo de fatura predefinido, fornecer a ID do modelo "fatura predefinida" ou usar o modelo de layout predefinido mais simples, forneça a ID do modelo "predefinido-layout".
Os campos produzidos no AnalyzeResult dependem do modelo usado para análise e os valores nos campos de documentos extraídos dependem dos tipos de documento no modelo (se houver) e de seus esquemas de campo correspondentes.
Exemplos
Esse método dá suporte a corpos de solicitação que podem ser transmitidos (FormRecognizerRequestBody), como objetos Node.JS ReadableStream, Blobdo navegador e ArrayBuffers. O conteúdo do corpo será carregado no serviço para análise.
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
a ID exclusiva (nome) do modelo dentro do recurso desse cliente
- document
- FormRecognizerRequestBody
um FormRecognizerRequestBody que será carregado com a solicitação
configurações opcionais para a operação de análise e o sondador
Retornos
Promise<AnalysisPoller<AnalyzeResult<AnalyzedDocument>>>
uma operação de longa execução (poller) que eventualmente produzirá uma AnalyzeResult
beginAnalyzeDocument<Result>(DocumentModel<Result>, FormRecognizerRequestBody, AnalyzeDocumentOptions<Result>)
Extraia dados de uma entrada usando um modelo que tem um esquema de documento conhecido e fortemente tipado (um DocumentModel).
Os campos produzidos no AnalyzeResult dependem do modelo usado para análise. No TypeScript, o tipo do resultado para essa sobrecarga de método é inferido do tipo do DocumentModelde entrada.
Exemplos
Esse método dá suporte a corpos de solicitação que podem ser transmitidos (FormRecognizerRequestBody), como objetos Node.JS ReadableStream, Blobdo navegador e ArrayBuffers. O conteúdo do corpo será carregado no serviço para análise.
Se a entrada fornecida for uma cadeia de caracteres, ela será tratada como uma URL para o local de um documento a ser analisado. Consulte o método beginAnalyzeDocumentFromUrl para obter mais informações. O uso desse método é preferencial ao usar URLs e o suporte à URL só é fornecido neste método para compatibilidade com versões 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>
um DocumentModel que representa o modelo a ser usado para análise e o tipo de saída esperado
- document
- FormRecognizerRequestBody
um FormRecognizerRequestBody que será carregado com a solicitação
- options
-
AnalyzeDocumentOptions<Result>
configurações opcionais para a operação de análise e o sondador
Retornos
Promise<AnalysisPoller<Result>>
uma operação de longa execução (poller) que eventualmente produzirá uma AnalyzeResult com documentos que têm o tipo de resultado associado ao modelo de entrada
beginAnalyzeDocumentFromUrl(string, string, AnalyzeDocumentOptions<AnalyzeResult<AnalyzedDocument>>)
Extraia dados de uma entrada usando um modelo dado por sua ID exclusiva.
Essa operação dá suporte a modelos personalizados e predefinidos. Por exemplo, para usar o modelo de fatura predefinido, fornecer a ID do modelo "fatura predefinida" ou usar o modelo de layout predefinido mais simples, forneça a ID do modelo "predefinido-layout".
Os campos produzidos no AnalyzeResult dependem do modelo usado para análise e os valores nos campos de documentos extraídos dependem dos tipos de documento no modelo (se houver) e de seus esquemas de campo correspondentes.
Exemplos
Esse método dá suporte à extração de dados de um arquivo em uma determinada URL. O serviço Reconhecimento de Formulários tentará baixar um arquivo usando a URL enviada, portanto, a URL deve estar acessível na Internet pública. Por exemplo, um token SAS pode ser usado para conceder acesso de leitura a um blob no Armazenamento do Azure e o serviço usará a URL codificada em SAS para solicitar o arquivo.
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
a ID exclusiva (nome) do modelo dentro do recurso desse cliente
- documentUrl
-
string
uma URL (cadeia de caracteres) para um documento de entrada acessível da Internet pública
configurações opcionais para a operação de análise e o sondador
Retornos
Promise<AnalysisPoller<AnalyzeResult<AnalyzedDocument>>>
uma operação de longa execução (poller) que eventualmente produzirá uma AnalyzeResult
beginAnalyzeDocumentFromUrl<Result>(DocumentModel<Result>, string, AnalyzeDocumentOptions<Result>)
Extraia dados de uma entrada usando um modelo que tem um esquema de documento conhecido e fortemente tipado (um DocumentModel).
Os campos produzidos no AnalyzeResult dependem do modelo usado para análise. No TypeScript, o tipo do resultado para essa sobrecarga de método é inferido do tipo do DocumentModelde entrada.
Exemplos
Esse método dá suporte à extração de dados de um arquivo em uma determinada URL. O serviço Reconhecimento de Formulários tentará baixar um arquivo usando a URL enviada, portanto, a URL deve estar acessível na Internet pública. Por exemplo, um token SAS pode ser usado para conceder acesso de leitura a um blob no Armazenamento do Azure e o serviço usará a URL codificada em SAS para solicitar o arquivo.
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>
um DocumentModel que representa o modelo a ser usado para análise e o tipo de saída esperado
- documentUrl
-
string
uma URL (cadeia de caracteres) para um documento de entrada acessível da Internet pública
- options
-
AnalyzeDocumentOptions<Result>
configurações opcionais para a operação de análise e o sondador
Retornos
Promise<AnalysisPoller<Result>>
uma operação de longa execução (poller) que eventualmente produzirá uma AnalyzeResult
beginClassifyDocument(string, FormRecognizerRequestBody, ClassifyDocumentOptions)
Classifique um documento usando um classificador personalizado dado por sua ID.
Esse método produz uma operação de longa execução (poller) que eventualmente produzirá um AnalyzeResult. Esse é o mesmo tipo que beginAnalyzeDocument e beginAnalyzeDocumentFromUrl, mas o resultado conterá apenas um pequeno subconjunto de seus campos. Somente o campo documents e pages campo serão preenchidos e apenas informações mínimas de página serão retornadas. O campo documents conterá informações sobre todos os documentos identificados e os docType como os quais foram classificados.
Exemplo
Esse método dá suporte a corpos de solicitação que podem ser transmitidos (FormRecognizerRequestBody), como objetos Node.JS ReadableStream, Blobdo navegador e ArrayBuffers. O conteúdo do corpo será carregado no serviço para análise.
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
a ID do classificador personalizado a ser usado para análise
- document
- FormRecognizerRequestBody
o documento a ser classificado
- options
- ClassifyDocumentOptions
opções para a operação de classificação
Retornos
Promise<AnalysisPoller<AnalyzeResult<AnalyzedDocument>>>
uma operação de longa execução (poller) que eventualmente produzirá uma AnalyzeResult
beginClassifyDocumentFromUrl(string, string, ClassifyDocumentOptions)
Classifique um documento de uma URL usando um classificador personalizado dado por sua ID.
Esse método produz uma operação de longa execução (poller) que eventualmente produzirá um AnalyzeResult. Esse é o mesmo tipo que beginAnalyzeDocument e beginAnalyzeDocumentFromUrl, mas o resultado conterá apenas um pequeno subconjunto de seus campos. Somente o campo documents e pages campo serão preenchidos e apenas informações mínimas de página serão retornadas. O campo documents conterá informações sobre todos os documentos identificados e os docType como os quais foram classificados.
Exemplo
Esse método dá suporte à extração de dados de um arquivo em uma determinada URL. O serviço Reconhecimento de Formulários tentará baixar um arquivo usando a URL enviada, portanto, a URL deve estar acessível na Internet pública. Por exemplo, um token SAS pode ser usado para conceder acesso de leitura a um blob no Armazenamento do Azure e o serviço usará a URL codificada em SAS para solicitar o arquivo.
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
a ID do classificador personalizado a ser usado para análise
- documentUrl
-
string
a URL do documento a ser classificado
- options
- ClassifyDocumentOptions
Retornos
Promise<AnalysisPoller<AnalyzeResult<AnalyzedDocument>>>