Condividi tramite


DocumentAnalysisClient class

Un client per interagire con le funzionalità di analisi del servizio Riconoscimento modulo.

Esempi:

Il servizio Riconoscimento modulo e i client supportano due mezzi di autenticazione:

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

Chiave API (chiave di sottoscrizione)

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

Costruttori

DocumentAnalysisClient(string, KeyCredential, DocumentAnalysisClientOptions)

Creare un'istanza di DocumentAnalysisClient da un endpoint della risorsa e una chiave API statica (KeyCredential),

Esempio:

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)

Creare un'istanza di DocumentAnalysisClient da un endpoint della risorsa e un'identità di Azure TokenCredential.

Per altre informazioni sull'autenticazione con Azure Active Directory, vedere il pacchetto @azure/identity.

Esempio:

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

Metodi

beginAnalyzeDocument(string, FormRecognizerRequestBody, AnalyzeDocumentOptions<AnalyzeResult<AnalyzedDocument>>)

Estrarre dati da un input usando un modello specificato dall'ID univoco.

Questa operazione supporta modelli personalizzati e predefiniti. Ad esempio, per usare il modello di fattura predefinito, specificare l'ID modello "precompilt-invoice" o per usare il modello di layout predefinito più semplice, specificare l'ID modello "precompilt-layout".

I campi prodotti nella AnalyzeResult dipendono dal modello utilizzato per l'analisi e i valori nei campi dei documenti estratti dipendono dai tipi di documento del modello (se presenti) e dai relativi schemi di campo.

Esempi

Questo metodo supporta corpi di richiesta trasmessi (FormRecognizerRequestBody) come oggetti Node.JS ReadableStream, browser Blobs e ArrayBuffers. Il contenuto del corpo verrà caricato nel servizio per l'analisi.

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

Estrarre dati da un input usando un modello con uno schema di documento noto fortemente tipizzato (un DocumentModel).

I campi prodotti nella AnalyzeResult dipendono dal modello usato per l'analisi. In TypeScript il tipo del risultato per questo overload del metodo viene dedotto dal tipo dell'input DocumentModel.

Esempi

Questo metodo supporta corpi di richiesta trasmessi (FormRecognizerRequestBody) come oggetti Node.JS ReadableStream, browser Blobs e ArrayBuffers. Il contenuto del corpo verrà caricato nel servizio per l'analisi.

Se l'input fornito è una stringa, verrà considerato come URL per la posizione di un documento da analizzare. Per altre informazioni, vedere il metodo beginAnalyzeDocumentFromUrl. L'uso di questo metodo è preferibile quando si usano gli URL e il supporto url viene fornito solo in questo metodo per garantire la compatibilità con le versioni precedenti.

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

Estrarre dati da un input usando un modello specificato dall'ID univoco.

Questa operazione supporta modelli personalizzati e predefiniti. Ad esempio, per usare il modello di fattura predefinito, specificare l'ID modello "precompilt-invoice" o per usare il modello di layout predefinito più semplice, specificare l'ID modello "precompilt-layout".

I campi prodotti nella AnalyzeResult dipendono dal modello utilizzato per l'analisi e i valori nei campi dei documenti estratti dipendono dai tipi di documento del modello (se presenti) e dai relativi schemi di campo.

Esempi

Questo metodo supporta l'estrazione di dati da un file in un determinato URL. Il servizio Riconoscimento modulo tenterà di scaricare un file usando l'URL inviato, quindi l'URL deve essere accessibile dalla rete Internet pubblica. Ad esempio, è possibile usare un token di firma di accesso condiviso per concedere l'accesso in lettura a un BLOB in Archiviazione di Azure e il servizio userà l'URL con codifica SAS per richiedere il file.

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

Estrarre dati da un input usando un modello con uno schema di documento noto fortemente tipizzato (un DocumentModel).

I campi prodotti nella AnalyzeResult dipendono dal modello usato per l'analisi. In TypeScript il tipo del risultato per questo overload del metodo viene dedotto dal tipo dell'input DocumentModel.

Esempi

Questo metodo supporta l'estrazione di dati da un file in un determinato URL. Il servizio Riconoscimento modulo tenterà di scaricare un file usando l'URL inviato, quindi l'URL deve essere accessibile dalla rete Internet pubblica. Ad esempio, è possibile usare un token di firma di accesso condiviso per concedere l'accesso in lettura a un BLOB in Archiviazione di Azure e il servizio userà l'URL con codifica SAS per richiedere il file.

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)

Classificare un documento usando un classificatore personalizzato specificato dal relativo ID.

Questo metodo produce un'operazione a esecuzione prolungata (poller) che alla fine produrrà un AnalyzeResult. Questo è lo stesso tipo di beginAnalyzeDocument e beginAnalyzeDocumentFromUrl, ma il risultato conterrà solo un piccolo subset dei relativi campi. Verranno popolati solo il campo documents e pages e verranno restituite solo informazioni minime sulla pagina. Il campo documents conterrà informazioni su tutti i documenti identificati e sui docType classificati come.

Esempio

Questo metodo supporta corpi di richiesta trasmessi (FormRecognizerRequestBody) come oggetti Node.JS ReadableStream, browser Blobs e ArrayBuffers. Il contenuto del corpo verrà caricato nel servizio per l'analisi.

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)

Classificare un documento da un URL usando un classificatore personalizzato specificato dal relativo ID.

Questo metodo produce un'operazione a esecuzione prolungata (poller) che alla fine produrrà un AnalyzeResult. Questo è lo stesso tipo di beginAnalyzeDocument e beginAnalyzeDocumentFromUrl, ma il risultato conterrà solo un piccolo subset dei relativi campi. Verranno popolati solo il campo documents e pages e verranno restituite solo informazioni minime sulla pagina. Il campo documents conterrà informazioni su tutti i documenti identificati e sui docType classificati come.

Esempio

Questo metodo supporta l'estrazione di dati da un file in un determinato URL. Il servizio Riconoscimento modulo tenterà di scaricare un file usando l'URL inviato, quindi l'URL deve essere accessibile dalla rete Internet pubblica. Ad esempio, è possibile usare un token di firma di accesso condiviso per concedere l'accesso in lettura a un BLOB in Archiviazione di Azure e il servizio userà l'URL con codifica SAS per richiedere il file.

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

Dettagli costruttore

DocumentAnalysisClient(string, KeyCredential, DocumentAnalysisClientOptions)

Creare un'istanza di DocumentAnalysisClient da un endpoint della risorsa e una chiave API statica (KeyCredential),

Esempio:

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)

Parametri

endpoint

string

URL dell'endpoint di un'istanza di Servizi cognitivi di Azure

credential
KeyCredential

KeyCredential contenente la chiave di sottoscrizione dell'istanza di Servizi cognitivi

options
DocumentAnalysisClientOptions

impostazioni facoltative per la configurazione di tutti i metodi nel client

DocumentAnalysisClient(string, TokenCredential, DocumentAnalysisClientOptions)

Creare un'istanza di DocumentAnalysisClient da un endpoint della risorsa e un'identità di Azure TokenCredential.

Per altre informazioni sull'autenticazione con Azure Active Directory, vedere il pacchetto @azure/identity.

Esempio:

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)

Parametri

endpoint

string

URL dell'endpoint di un'istanza di Servizi cognitivi di Azure

credential
TokenCredential

un'istanza tokenCredential dal pacchetto di @azure/identity

options
DocumentAnalysisClientOptions

impostazioni facoltative per la configurazione di tutti i metodi nel client

Dettagli metodo

beginAnalyzeDocument(string, FormRecognizerRequestBody, AnalyzeDocumentOptions<AnalyzeResult<AnalyzedDocument>>)

Estrarre dati da un input usando un modello specificato dall'ID univoco.

Questa operazione supporta modelli personalizzati e predefiniti. Ad esempio, per usare il modello di fattura predefinito, specificare l'ID modello "precompilt-invoice" o per usare il modello di layout predefinito più semplice, specificare l'ID modello "precompilt-layout".

I campi prodotti nella AnalyzeResult dipendono dal modello utilizzato per l'analisi e i valori nei campi dei documenti estratti dipendono dai tipi di documento del modello (se presenti) e dai relativi schemi di campo.

Esempi

Questo metodo supporta corpi di richiesta trasmessi (FormRecognizerRequestBody) come oggetti Node.JS ReadableStream, browser Blobs e ArrayBuffers. Il contenuto del corpo verrà caricato nel servizio per l'analisi.

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>>>

Parametri

modelId

string

ID univoco (nome) del modello all'interno della risorsa del client

document
FormRecognizerRequestBody

FormRecognizerRequestBody che verrà caricato con la richiesta

options

AnalyzeDocumentOptions<AnalyzeResult<AnalyzedDocument>>

impostazioni facoltative per l'operazione di analisi e il poller

Restituisce

operazione a esecuzione prolungata (poller) che alla fine produrrà un AnalyzeResult

beginAnalyzeDocument<Result>(DocumentModel<Result>, FormRecognizerRequestBody, AnalyzeDocumentOptions<Result>)

Estrarre dati da un input usando un modello con uno schema di documento noto fortemente tipizzato (un DocumentModel).

I campi prodotti nella AnalyzeResult dipendono dal modello usato per l'analisi. In TypeScript il tipo del risultato per questo overload del metodo viene dedotto dal tipo dell'input DocumentModel.

Esempi

Questo metodo supporta corpi di richiesta trasmessi (FormRecognizerRequestBody) come oggetti Node.JS ReadableStream, browser Blobs e ArrayBuffers. Il contenuto del corpo verrà caricato nel servizio per l'analisi.

Se l'input fornito è una stringa, verrà considerato come URL per la posizione di un documento da analizzare. Per altre informazioni, vedere il metodo beginAnalyzeDocumentFromUrl. L'uso di questo metodo è preferibile quando si usano gli URL e il supporto url viene fornito solo in questo metodo per garantire la compatibilità con le versioni precedenti.

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>>

Parametri

model

DocumentModel<Result>

un DocumentModel che rappresenta il modello da utilizzare per l'analisi e il tipo di output previsto

document
FormRecognizerRequestBody

FormRecognizerRequestBody che verrà caricato con la richiesta

options

AnalyzeDocumentOptions<Result>

impostazioni facoltative per l'operazione di analisi e il poller

Restituisce

Promise<AnalysisPoller<Result>>

operazione a esecuzione prolungata (poller) che alla fine produrrà un AnalyzeResult con documenti con il tipo di risultato associato al modello di input

beginAnalyzeDocumentFromUrl(string, string, AnalyzeDocumentOptions<AnalyzeResult<AnalyzedDocument>>)

Estrarre dati da un input usando un modello specificato dall'ID univoco.

Questa operazione supporta modelli personalizzati e predefiniti. Ad esempio, per usare il modello di fattura predefinito, specificare l'ID modello "precompilt-invoice" o per usare il modello di layout predefinito più semplice, specificare l'ID modello "precompilt-layout".

I campi prodotti nella AnalyzeResult dipendono dal modello utilizzato per l'analisi e i valori nei campi dei documenti estratti dipendono dai tipi di documento del modello (se presenti) e dai relativi schemi di campo.

Esempi

Questo metodo supporta l'estrazione di dati da un file in un determinato URL. Il servizio Riconoscimento modulo tenterà di scaricare un file usando l'URL inviato, quindi l'URL deve essere accessibile dalla rete Internet pubblica. Ad esempio, è possibile usare un token di firma di accesso condiviso per concedere l'accesso in lettura a un BLOB in Archiviazione di Azure e il servizio userà l'URL con codifica SAS per richiedere il file.

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>>>

Parametri

modelId

string

ID univoco (nome) del modello all'interno della risorsa del client

documentUrl

string

un URL (stringa) a un documento di input accessibile dalla rete Internet pubblica

options

AnalyzeDocumentOptions<AnalyzeResult<AnalyzedDocument>>

impostazioni facoltative per l'operazione di analisi e il poller

Restituisce

operazione a esecuzione prolungata (poller) che alla fine produrrà un AnalyzeResult

beginAnalyzeDocumentFromUrl<Result>(DocumentModel<Result>, string, AnalyzeDocumentOptions<Result>)

Estrarre dati da un input usando un modello con uno schema di documento noto fortemente tipizzato (un DocumentModel).

I campi prodotti nella AnalyzeResult dipendono dal modello usato per l'analisi. In TypeScript il tipo del risultato per questo overload del metodo viene dedotto dal tipo dell'input DocumentModel.

Esempi

Questo metodo supporta l'estrazione di dati da un file in un determinato URL. Il servizio Riconoscimento modulo tenterà di scaricare un file usando l'URL inviato, quindi l'URL deve essere accessibile dalla rete Internet pubblica. Ad esempio, è possibile usare un token di firma di accesso condiviso per concedere l'accesso in lettura a un BLOB in Archiviazione di Azure e il servizio userà l'URL con codifica SAS per richiedere il file.

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>>

Parametri

model

DocumentModel<Result>

un DocumentModel che rappresenta il modello da utilizzare per l'analisi e il tipo di output previsto

documentUrl

string

un URL (stringa) a un documento di input accessibile dalla rete Internet pubblica

options

AnalyzeDocumentOptions<Result>

impostazioni facoltative per l'operazione di analisi e il poller

Restituisce

Promise<AnalysisPoller<Result>>

operazione a esecuzione prolungata (poller) che alla fine produrrà un AnalyzeResult

beginClassifyDocument(string, FormRecognizerRequestBody, ClassifyDocumentOptions)

Classificare un documento usando un classificatore personalizzato specificato dal relativo ID.

Questo metodo produce un'operazione a esecuzione prolungata (poller) che alla fine produrrà un AnalyzeResult. Questo è lo stesso tipo di beginAnalyzeDocument e beginAnalyzeDocumentFromUrl, ma il risultato conterrà solo un piccolo subset dei relativi campi. Verranno popolati solo il campo documents e pages e verranno restituite solo informazioni minime sulla pagina. Il campo documents conterrà informazioni su tutti i documenti identificati e sui docType classificati come.

Esempio

Questo metodo supporta corpi di richiesta trasmessi (FormRecognizerRequestBody) come oggetti Node.JS ReadableStream, browser Blobs e ArrayBuffers. Il contenuto del corpo verrà caricato nel servizio per l'analisi.

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>>>

Parametri

classifierId

string

ID del classificatore personalizzato da usare per l'analisi

document
FormRecognizerRequestBody

documento da classificare

options
ClassifyDocumentOptions

opzioni per l'operazione di classificazione

Restituisce

operazione a esecuzione prolungata (poller) che alla fine produrrà un AnalyzeResult

beginClassifyDocumentFromUrl(string, string, ClassifyDocumentOptions)

Classificare un documento da un URL usando un classificatore personalizzato specificato dal relativo ID.

Questo metodo produce un'operazione a esecuzione prolungata (poller) che alla fine produrrà un AnalyzeResult. Questo è lo stesso tipo di beginAnalyzeDocument e beginAnalyzeDocumentFromUrl, ma il risultato conterrà solo un piccolo subset dei relativi campi. Verranno popolati solo il campo documents e pages e verranno restituite solo informazioni minime sulla pagina. Il campo documents conterrà informazioni su tutti i documenti identificati e sui docType classificati come.

Esempio

Questo metodo supporta l'estrazione di dati da un file in un determinato URL. Il servizio Riconoscimento modulo tenterà di scaricare un file usando l'URL inviato, quindi l'URL deve essere accessibile dalla rete Internet pubblica. Ad esempio, è possibile usare un token di firma di accesso condiviso per concedere l'accesso in lettura a un BLOB in Archiviazione di Azure e il servizio userà l'URL con codifica SAS per richiedere il file.

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>>>

Parametri

classifierId

string

ID del classificatore personalizzato da usare per l'analisi

documentUrl

string

URL del documento da classificare

Restituisce