DocumentAnalysisClient class
Um cliente para interagir com os recursos de análise do serviço Form Recognizer.
Exemplos:
O serviço Form Recognizer e os clientes suportam dois meios de autenticação:
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,
);
Chave de API (Chave de Subscrição)
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 |
Crie uma instância Exemplo:
|
| Document |
Crie uma instância Consulte o pacote Exemplo:
|
Métodos
| begin |
Extraia dados de uma entrada usando um modelo fornecido por seu ID exclusivo. Esta operação suporta modelos personalizados e pré-construídos. Por exemplo, para usar o modelo de fatura pré-construído, forneça o ID do modelo "fatura pré-construída", ou para usar o modelo de layout pré-construído mais simples, forneça o ID do modelo "layout pré-construído". Os campos produzidos no ExemplosEsse método oferece suporte a corpos de solicitação streamable (FormRecognizerRequestBody), como objetos Node.JS
|
| begin |
Extraia dados de uma entrada usando um modelo que tenha um esquema de documento conhecido e fortemente tipado (um DocumentModel). Os campos produzidos no ExemplosEsse método oferece suporte a corpos de solicitação streamable (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 beginAnalyzeAnalyzeDocumentFromUrl para obter mais informações. O uso desse método é preferido ao usar URLs, e o suporte a URL só é fornecido nesse método para compatibilidade com versões anteriores.
|
| begin |
Extraia dados de uma entrada usando um modelo fornecido por seu ID exclusivo. Esta operação suporta modelos personalizados e pré-construídos. Por exemplo, para usar o modelo de fatura pré-construído, forneça o ID do modelo "fatura pré-construída", ou para usar o modelo de layout pré-construído mais simples, forneça o ID do modelo "layout pré-construído". Os campos produzidos no ExemplosEste método suporta a extração de dados de um arquivo em uma determinada URL. O serviço Form Recognizer tentará transferir um ficheiro utilizando o URL enviado, pelo que o URL tem de estar acessível a partir da 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 tenha um esquema de documento conhecido e fortemente tipado (um DocumentModel). Os campos produzidos no ExemplosEste método suporta a extração de dados de um arquivo em uma determinada URL. O serviço Form Recognizer tentará transferir um ficheiro utilizando o URL enviado, pelo que o URL tem de estar acessível a partir da 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 fornecido por seu ID. Este método produz uma operação de longa duração (poller) que acabará por produzir uma ExemploEsse método oferece suporte a corpos de solicitação streamable (FormRecognizerRequestBody), como objetos Node.JS
|
| begin |
Classifique um documento a partir de uma URL usando um classificador personalizado fornecido por sua ID. Este método produz uma operação de longa duração (poller) que acabará por produzir uma ExemploEste método suporta a extração de dados de um arquivo em uma determinada URL. O serviço Form Recognizer tentará transferir um ficheiro utilizando o URL enviado, pelo que o URL tem de estar acessível a partir da 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)
Crie uma instância DocumentAnalysisClient a partir 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
uma KeyCredential contendo 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 DocumentAnalysisClient a partir de um ponto de extremidade de recurso e um TokenCredentialde Identidade do Azure.
Consulte o pacote @azure/identity para obter mais informações sobre a autenticação com o Azure Ative 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 de Método
beginAnalyzeDocument(string, FormRecognizerRequestBody, AnalyzeDocumentOptions<AnalyzeResult<AnalyzedDocument>>)
Extraia dados de uma entrada usando um modelo fornecido por seu ID exclusivo.
Esta operação suporta modelos personalizados e pré-construídos. Por exemplo, para usar o modelo de fatura pré-construído, forneça o ID do modelo "fatura pré-construída", ou para usar o modelo de layout pré-construído mais simples, forneça o ID do modelo "layout pré-construído".
Os campos produzidos no AnalyzeResult dependem do modelo usado para análise, e os valores nos campos de quaisquer documentos extraídos dependem dos tipos de documentos no modelo (se houver) e seus esquemas de campo correspondentes.
Exemplos
Esse método oferece suporte a corpos de solicitação streamable (FormRecognizerRequestBody), como objetos Node.JS ReadableStream, Blobs do navegador e ArrayBuffers. O conteúdo do corpo será enviado para o 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
o ID exclusivo (nome) do modelo dentro do recurso deste cliente
- document
- FormRecognizerRequestBody
um FormRecognizerRequestBody que será carregado com a solicitação
configurações opcionais para a operação de análise e poller
Devoluções
Promise<AnalysisPoller<AnalyzeResult<AnalyzedDocument>>>
uma operação de longa duração (poller) que acabará por produzir um AnalyzeResult
beginAnalyzeDocument<Result>(DocumentModel<Result>, FormRecognizerRequestBody, AnalyzeDocumentOptions<Result>)
Extraia dados de uma entrada usando um modelo que tenha um esquema de documento conhecido e fortemente tipado (um DocumentModel).
Os campos produzidos no AnalyzeResult dependem do modelo utilizado para análise. Em TypeScript, o tipo do resultado para essa sobrecarga de método é inferido a partir do tipo da entrada DocumentModel.
Exemplos
Esse método oferece suporte a corpos de solicitação streamable (FormRecognizerRequestBody), como objetos Node.JS ReadableStream, Blobs do navegador e ArrayBuffers. O conteúdo do corpo será enviado para o 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 beginAnalyzeAnalyzeDocumentFromUrl para obter mais informações. O uso desse método é preferido ao usar URLs, e o suporte a URL só é fornecido nesse 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 poller
Devoluções
Promise<AnalysisPoller<Result>>
Uma operação de longa duração (poller) que eventualmente produzirá um 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 fornecido por seu ID exclusivo.
Esta operação suporta modelos personalizados e pré-construídos. Por exemplo, para usar o modelo de fatura pré-construído, forneça o ID do modelo "fatura pré-construída", ou para usar o modelo de layout pré-construído mais simples, forneça o ID do modelo "layout pré-construído".
Os campos produzidos no AnalyzeResult dependem do modelo usado para análise, e os valores nos campos de quaisquer documentos extraídos dependem dos tipos de documentos no modelo (se houver) e seus esquemas de campo correspondentes.
Exemplos
Este método suporta a extração de dados de um arquivo em uma determinada URL. O serviço Form Recognizer tentará transferir um ficheiro utilizando o URL enviado, pelo que o URL tem de estar acessível a partir da 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
o ID exclusivo (nome) do modelo dentro do recurso deste cliente
- documentUrl
-
string
um URL (string) para um documento de entrada acessível a partir da Internet pública
configurações opcionais para a operação de análise e poller
Devoluções
Promise<AnalysisPoller<AnalyzeResult<AnalyzedDocument>>>
uma operação de longa duração (poller) que acabará por produzir um AnalyzeResult
beginAnalyzeDocumentFromUrl<Result>(DocumentModel<Result>, string, AnalyzeDocumentOptions<Result>)
Extraia dados de uma entrada usando um modelo que tenha um esquema de documento conhecido e fortemente tipado (um DocumentModel).
Os campos produzidos no AnalyzeResult dependem do modelo utilizado para análise. Em TypeScript, o tipo do resultado para essa sobrecarga de método é inferido a partir do tipo da entrada DocumentModel.
Exemplos
Este método suporta a extração de dados de um arquivo em uma determinada URL. O serviço Form Recognizer tentará transferir um ficheiro utilizando o URL enviado, pelo que o URL tem de estar acessível a partir da 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
um URL (string) para um documento de entrada acessível a partir da Internet pública
- options
-
AnalyzeDocumentOptions<Result>
configurações opcionais para a operação de análise e poller
Devoluções
Promise<AnalysisPoller<Result>>
uma operação de longa duração (poller) que acabará por produzir um AnalyzeResult
beginClassifyDocument(string, FormRecognizerRequestBody, ClassifyDocumentOptions)
Classifique um documento usando um classificador personalizado fornecido por seu ID.
Este método produz uma operação de longa duração (poller) que acabará por produzir uma AnalyzeResult. Este é o mesmo tipo que beginAnalyzeDocument e beginAnalyzeDocumentFromUrl, mas o resultado conterá apenas um pequeno subconjunto de seus campos. Somente o campo documents e o campo pages serão preenchidos e apenas informações mínimas da página serão retornadas. O campo documents conterá informações sobre todos os documentos identificados e os docType em que foram classificados.
Exemplo
Esse método oferece suporte a corpos de solicitação streamable (FormRecognizerRequestBody), como objetos Node.JS ReadableStream, Blobs do navegador e ArrayBuffers. O conteúdo do corpo será enviado para o 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 classificar
- options
- ClassifyDocumentOptions
Opções para a operação de classificação
Devoluções
Promise<AnalysisPoller<AnalyzeResult<AnalyzedDocument>>>
uma operação de longa duração (poller) que acabará por produzir um AnalyzeResult
beginClassifyDocumentFromUrl(string, string, ClassifyDocumentOptions)
Classifique um documento a partir de uma URL usando um classificador personalizado fornecido por sua ID.
Este método produz uma operação de longa duração (poller) que acabará por produzir uma AnalyzeResult. Este é o mesmo tipo que beginAnalyzeDocument e beginAnalyzeDocumentFromUrl, mas o resultado conterá apenas um pequeno subconjunto de seus campos. Somente o campo documents e o campo pages serão preenchidos e apenas informações mínimas da página serão retornadas. O campo documents conterá informações sobre todos os documentos identificados e os docType em que foram classificados.
Exemplo
Este método suporta a extração de dados de um arquivo em uma determinada URL. O serviço Form Recognizer tentará transferir um ficheiro utilizando o URL enviado, pelo que o URL tem de estar acessível a partir da 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
o URL do documento a classificar
- options
- ClassifyDocumentOptions
Devoluções
Promise<AnalysisPoller<AnalyzeResult<AnalyzedDocument>>>