DocumentAnalysisClient class

عميل للتفاعل مع ميزات تحليل خدمة Form Recognizer.

امثله:

تدعم خدمة Form Recognizer والعملاء وسيلتين للمصادقة:

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

مفتاح API (مفتاح الاشتراك)

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, KeyCredential, DocumentAnalysisClientOptions)

إنشاء مثيل DocumentAnalysisClient من نقطة نهاية مورد ومفتاح واجهة برمجة تطبيقات ثابت (KeyCredential

مثل:

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)

إنشاء مثيل DocumentAnalysisClient من نقطة نهاية مورد TokenCredentialهوية Azure .

راجع حزمة @azure/identity لمزيد من المعلومات حول المصادقة باستخدام 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,
);

الأساليب

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

استخراج البيانات من إدخال باستخدام نموذج تم تقديمه بواسطة معرفه الفريد.

تدعم هذه العملية النماذج المخصصة وكذلك التي تم إنشاؤها مسبقا. على سبيل المثال، لاستخدام نموذج الفاتورة الذي تم إنشاؤه مسبقا، قم بتوفير معرف النموذج "prebuilt-invoice"، أو لاستخدام نموذج التخطيط الأبسط الذي تم إنشاؤه مسبقا، قم بتوفير معرف النموذج "تخطيط مسبق الإنشاء".

تعتمد الحقول المنتجة في AnalyzeResult على النموذج المستخدم للتحليل، وتعتمد القيم الموجودة في حقول المستندات المستخرجة على أنواع المستندات في النموذج (إن وجدت) ومخططات الحقول المقابلة لها.

امثله

يدعم هذا الأسلوب هيئات الطلب القابلة للتدفق (FormRecognizerRequestBody) مثل كائنات Node.JS ReadableStreamBlobالمستعرض s وs ArrayBuffer. سيتم تحميل محتويات النص الأساسي إلى الخدمة للتحليل.

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

استخراج البيانات من إدخال باستخدام نموذج يحتوي على مخطط مستند معروف مكتوب بقوة (DocumentModel).

تعتمد الحقول المنتجة في AnalyzeResult على النموذج المستخدم للتحليل. في TypeScript، يتم استنتاج نوع النتيجة لهذا الأسلوب الزائد من نوع الإدخال DocumentModel.

امثله

يدعم هذا الأسلوب هيئات الطلب القابلة للتدفق (FormRecognizerRequestBody) مثل كائنات Node.JS ReadableStreamBlobالمستعرض s وs ArrayBuffer. سيتم تحميل محتويات النص الأساسي إلى الخدمة للتحليل.

إذا كان الإدخال المقدم عبارة عن سلسلة، التعامل معه على أنه عنوان URL لموقع المستند الذي سيتم تحليله. راجع أسلوب beginAnalyzeDocumentFromUrl للحصول على مزيد من المعلومات. يفضل استخدام هذا الأسلوب عند استخدام عناوين URL، ويتم توفير دعم URL فقط في هذا الأسلوب للتوافق مع الإصدارات السابقة.

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

استخراج البيانات من إدخال باستخدام نموذج تم تقديمه بواسطة معرفه الفريد.

تدعم هذه العملية النماذج المخصصة وكذلك التي تم إنشاؤها مسبقا. على سبيل المثال، لاستخدام نموذج الفاتورة الذي تم إنشاؤه مسبقا، قم بتوفير معرف النموذج "prebuilt-invoice"، أو لاستخدام نموذج التخطيط الأبسط الذي تم إنشاؤه مسبقا، قم بتوفير معرف النموذج "تخطيط مسبق الإنشاء".

تعتمد الحقول المنتجة في AnalyzeResult على النموذج المستخدم للتحليل، وتعتمد القيم الموجودة في حقول المستندات المستخرجة على أنواع المستندات في النموذج (إن وجدت) ومخططات الحقول المقابلة لها.

امثله

يدعم هذا الأسلوب استخراج البيانات من ملف في عنوان URL معين. ستحاول خدمة Form Recognizer تنزيل ملف باستخدام عنوان URL المرسل، لذلك يجب أن يكون عنوان URL متاحا من الإنترنت العام. على سبيل المثال، يمكن استخدام رمز SAS المميز لمنح حق الوصول للقراءة إلى كائن ثنائي كبير الحجم في Azure Storage، وستستخدم الخدمة عنوان URL المشفرة من SAS لطلب الملف.

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

استخراج البيانات من إدخال باستخدام نموذج يحتوي على مخطط مستند معروف مكتوب بقوة (DocumentModel).

تعتمد الحقول المنتجة في AnalyzeResult على النموذج المستخدم للتحليل. في TypeScript، يتم استنتاج نوع النتيجة لهذا الأسلوب الزائد من نوع الإدخال DocumentModel.

امثله

يدعم هذا الأسلوب استخراج البيانات من ملف في عنوان URL معين. ستحاول خدمة Form Recognizer تنزيل ملف باستخدام عنوان URL المرسل، لذلك يجب أن يكون عنوان URL متاحا من الإنترنت العام. على سبيل المثال، يمكن استخدام رمز SAS المميز لمنح حق الوصول للقراءة إلى كائن ثنائي كبير الحجم في Azure Storage، وستستخدم الخدمة عنوان URL المشفرة من SAS لطلب الملف.

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)

تصنيف مستند باستخدام مصنف مخصص يتم تحديده بواسطة معرفه.

ينتج عن هذا الأسلوب عملية طويلة الأمد (poller) والتي ستنتج في نهاية المطاف AnalyzeResult. هذا هو نفس نوع beginAnalyzeDocumentbeginAnalyzeDocumentFromUrl، ولكن النتيجة سوف تحتوي فقط على مجموعة فرعية صغيرة من حقولها. سيتم ملء الحقل documents وحقل pages فقط، وسيتم إرجاع الحد الأدنى فقط من معلومات الصفحة. سيحتوي الحقل documents على معلومات حول جميع المستندات المحددة docType التي تم تصنيفها عليها.

مثل

يدعم هذا الأسلوب هيئات الطلب القابلة للتدفق (FormRecognizerRequestBody) مثل كائنات Node.JS ReadableStreamBlobالمستعرض s وs ArrayBuffer. سيتم تحميل محتويات النص الأساسي إلى الخدمة للتحليل.

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)

تصنيف مستند من عنوان URL باستخدام مصنف مخصص تم تحديده بواسطة معرفه.

ينتج عن هذا الأسلوب عملية طويلة الأمد (poller) والتي ستنتج في نهاية المطاف AnalyzeResult. هذا هو نفس نوع beginAnalyzeDocumentbeginAnalyzeDocumentFromUrl، ولكن النتيجة سوف تحتوي فقط على مجموعة فرعية صغيرة من حقولها. سيتم ملء الحقل documents وحقل pages فقط، وسيتم إرجاع الحد الأدنى فقط من معلومات الصفحة. سيحتوي الحقل documents على معلومات حول جميع المستندات المحددة docType التي تم تصنيفها عليها.

مثل

يدعم هذا الأسلوب استخراج البيانات من ملف في عنوان URL معين. ستحاول خدمة Form Recognizer تنزيل ملف باستخدام عنوان URL المرسل، لذلك يجب أن يكون عنوان URL متاحا من الإنترنت العام. على سبيل المثال، يمكن استخدام رمز SAS المميز لمنح حق الوصول للقراءة إلى كائن ثنائي كبير الحجم في Azure Storage، وستستخدم الخدمة عنوان URL المشفرة من SAS لطلب الملف.

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

تفاصيل المنشئ

DocumentAnalysisClient(string, KeyCredential, DocumentAnalysisClientOptions)

إنشاء مثيل DocumentAnalysisClient من نقطة نهاية مورد ومفتاح واجهة برمجة تطبيقات ثابت (KeyCredential

مثل:

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)

المعلمات

endpoint

string

عنوان URL لنقطة النهاية لمثيل Azure Cognitive Services

credential
KeyCredential

KeyCredential يحتوي على مفتاح اشتراك مثيل الخدمات المعرفية

options
DocumentAnalysisClientOptions

إعدادات اختيارية لتكوين كافة الأساليب في العميل

DocumentAnalysisClient(string, TokenCredential, DocumentAnalysisClientOptions)

إنشاء مثيل DocumentAnalysisClient من نقطة نهاية مورد TokenCredentialهوية Azure .

راجع حزمة @azure/identity لمزيد من المعلومات حول المصادقة باستخدام 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,
);
new DocumentAnalysisClient(endpoint: string, credential: TokenCredential, options?: DocumentAnalysisClientOptions)

المعلمات

endpoint

string

عنوان URL لنقطة النهاية لمثيل Azure Cognitive Services

credential
TokenCredential

مثيل TokenCredential من حزمة @azure/identity

options
DocumentAnalysisClientOptions

إعدادات اختيارية لتكوين كافة الأساليب في العميل

تفاصيل الأسلوب

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

استخراج البيانات من إدخال باستخدام نموذج تم تقديمه بواسطة معرفه الفريد.

تدعم هذه العملية النماذج المخصصة وكذلك التي تم إنشاؤها مسبقا. على سبيل المثال، لاستخدام نموذج الفاتورة الذي تم إنشاؤه مسبقا، قم بتوفير معرف النموذج "prebuilt-invoice"، أو لاستخدام نموذج التخطيط الأبسط الذي تم إنشاؤه مسبقا، قم بتوفير معرف النموذج "تخطيط مسبق الإنشاء".

تعتمد الحقول المنتجة في AnalyzeResult على النموذج المستخدم للتحليل، وتعتمد القيم الموجودة في حقول المستندات المستخرجة على أنواع المستندات في النموذج (إن وجدت) ومخططات الحقول المقابلة لها.

امثله

يدعم هذا الأسلوب هيئات الطلب القابلة للتدفق (FormRecognizerRequestBody) مثل كائنات Node.JS ReadableStreamBlobالمستعرض s وs ArrayBuffer. سيتم تحميل محتويات النص الأساسي إلى الخدمة للتحليل.

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

المعلمات

modelId

string

المعرف الفريد (الاسم) للنموذج داخل مورد هذا العميل

document
FormRecognizerRequestBody

FormRecognizerRequestBody التي سيتم تحميلها مع الطلب

options

AnalyzeDocumentOptions<AnalyzeResult<AnalyzedDocument>>

إعدادات اختيارية لعملية التحليل وأداة الاستقصاء

المرتجعات

عملية طويلة الأمد (بولر) التي ستنتج في نهاية المطاف AnalyzeResult

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

استخراج البيانات من إدخال باستخدام نموذج يحتوي على مخطط مستند معروف مكتوب بقوة (DocumentModel).

تعتمد الحقول المنتجة في AnalyzeResult على النموذج المستخدم للتحليل. في TypeScript، يتم استنتاج نوع النتيجة لهذا الأسلوب الزائد من نوع الإدخال DocumentModel.

امثله

يدعم هذا الأسلوب هيئات الطلب القابلة للتدفق (FormRecognizerRequestBody) مثل كائنات Node.JS ReadableStreamBlobالمستعرض s وs ArrayBuffer. سيتم تحميل محتويات النص الأساسي إلى الخدمة للتحليل.

إذا كان الإدخال المقدم عبارة عن سلسلة، التعامل معه على أنه عنوان URL لموقع المستند الذي سيتم تحليله. راجع أسلوب beginAnalyzeDocumentFromUrl للحصول على مزيد من المعلومات. يفضل استخدام هذا الأسلوب عند استخدام عناوين URL، ويتم توفير دعم URL فقط في هذا الأسلوب للتوافق مع الإصدارات السابقة.

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

المعلمات

model

DocumentModel<Result>

DocumentModel يمثل النموذج لاستخدامه للتحليل ونوع الإخراج المتوقع

document
FormRecognizerRequestBody

FormRecognizerRequestBody التي سيتم تحميلها مع الطلب

options

AnalyzeDocumentOptions<Result>

إعدادات اختيارية لعملية التحليل وأداة الاستقصاء

المرتجعات

Promise<AnalysisPoller<Result>>

عملية طويلة الأمد (poller) التي ستنتج في نهاية المطاف AnalyzeResult مع المستندات التي تحتوي على نوع النتيجة المقترن بنموذج الإدخال

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

استخراج البيانات من إدخال باستخدام نموذج تم تقديمه بواسطة معرفه الفريد.

تدعم هذه العملية النماذج المخصصة وكذلك التي تم إنشاؤها مسبقا. على سبيل المثال، لاستخدام نموذج الفاتورة الذي تم إنشاؤه مسبقا، قم بتوفير معرف النموذج "prebuilt-invoice"، أو لاستخدام نموذج التخطيط الأبسط الذي تم إنشاؤه مسبقا، قم بتوفير معرف النموذج "تخطيط مسبق الإنشاء".

تعتمد الحقول المنتجة في AnalyzeResult على النموذج المستخدم للتحليل، وتعتمد القيم الموجودة في حقول المستندات المستخرجة على أنواع المستندات في النموذج (إن وجدت) ومخططات الحقول المقابلة لها.

امثله

يدعم هذا الأسلوب استخراج البيانات من ملف في عنوان URL معين. ستحاول خدمة Form Recognizer تنزيل ملف باستخدام عنوان URL المرسل، لذلك يجب أن يكون عنوان URL متاحا من الإنترنت العام. على سبيل المثال، يمكن استخدام رمز SAS المميز لمنح حق الوصول للقراءة إلى كائن ثنائي كبير الحجم في Azure Storage، وستستخدم الخدمة عنوان URL المشفرة من SAS لطلب الملف.

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

المعلمات

modelId

string

المعرف الفريد (الاسم) للنموذج داخل مورد هذا العميل

documentUrl

string

عنوان URL (سلسلة) لمستند إدخال يمكن الوصول إليه من الإنترنت العام

options

AnalyzeDocumentOptions<AnalyzeResult<AnalyzedDocument>>

إعدادات اختيارية لعملية التحليل وأداة الاستقصاء

المرتجعات

عملية طويلة الأمد (بولر) التي ستنتج في نهاية المطاف AnalyzeResult

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

استخراج البيانات من إدخال باستخدام نموذج يحتوي على مخطط مستند معروف مكتوب بقوة (DocumentModel).

تعتمد الحقول المنتجة في AnalyzeResult على النموذج المستخدم للتحليل. في TypeScript، يتم استنتاج نوع النتيجة لهذا الأسلوب الزائد من نوع الإدخال DocumentModel.

امثله

يدعم هذا الأسلوب استخراج البيانات من ملف في عنوان URL معين. ستحاول خدمة Form Recognizer تنزيل ملف باستخدام عنوان URL المرسل، لذلك يجب أن يكون عنوان URL متاحا من الإنترنت العام. على سبيل المثال، يمكن استخدام رمز SAS المميز لمنح حق الوصول للقراءة إلى كائن ثنائي كبير الحجم في Azure Storage، وستستخدم الخدمة عنوان URL المشفرة من SAS لطلب الملف.

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

المعلمات

model

DocumentModel<Result>

DocumentModel يمثل النموذج لاستخدامه للتحليل ونوع الإخراج المتوقع

documentUrl

string

عنوان URL (سلسلة) لمستند إدخال يمكن الوصول إليه من الإنترنت العام

options

AnalyzeDocumentOptions<Result>

إعدادات اختيارية لعملية التحليل وأداة الاستقصاء

المرتجعات

Promise<AnalysisPoller<Result>>

عملية طويلة الأمد (بولر) التي ستنتج في نهاية المطاف AnalyzeResult

beginClassifyDocument(string, FormRecognizerRequestBody, ClassifyDocumentOptions)

تصنيف مستند باستخدام مصنف مخصص يتم تحديده بواسطة معرفه.

ينتج عن هذا الأسلوب عملية طويلة الأمد (poller) والتي ستنتج في نهاية المطاف AnalyzeResult. هذا هو نفس نوع beginAnalyzeDocumentbeginAnalyzeDocumentFromUrl، ولكن النتيجة سوف تحتوي فقط على مجموعة فرعية صغيرة من حقولها. سيتم ملء الحقل documents وحقل pages فقط، وسيتم إرجاع الحد الأدنى فقط من معلومات الصفحة. سيحتوي الحقل documents على معلومات حول جميع المستندات المحددة docType التي تم تصنيفها عليها.

مثل

يدعم هذا الأسلوب هيئات الطلب القابلة للتدفق (FormRecognizerRequestBody) مثل كائنات Node.JS ReadableStreamBlobالمستعرض s وs ArrayBuffer. سيتم تحميل محتويات النص الأساسي إلى الخدمة للتحليل.

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

المعلمات

classifierId

string

معرف المصنف المخصص لاستخدامه للتحليل

document
FormRecognizerRequestBody

المستند المراد تصنيفه

options
ClassifyDocumentOptions

خيارات لعملية التصنيف

المرتجعات

عملية طويلة الأمد (بولر) التي ستنتج في نهاية المطاف AnalyzeResult

beginClassifyDocumentFromUrl(string, string, ClassifyDocumentOptions)

تصنيف مستند من عنوان URL باستخدام مصنف مخصص تم تحديده بواسطة معرفه.

ينتج عن هذا الأسلوب عملية طويلة الأمد (poller) والتي ستنتج في نهاية المطاف AnalyzeResult. هذا هو نفس نوع beginAnalyzeDocumentbeginAnalyzeDocumentFromUrl، ولكن النتيجة سوف تحتوي فقط على مجموعة فرعية صغيرة من حقولها. سيتم ملء الحقل documents وحقل pages فقط، وسيتم إرجاع الحد الأدنى فقط من معلومات الصفحة. سيحتوي الحقل documents على معلومات حول جميع المستندات المحددة docType التي تم تصنيفها عليها.

مثل

يدعم هذا الأسلوب استخراج البيانات من ملف في عنوان URL معين. ستحاول خدمة Form Recognizer تنزيل ملف باستخدام عنوان URL المرسل، لذلك يجب أن يكون عنوان URL متاحا من الإنترنت العام. على سبيل المثال، يمكن استخدام رمز SAS المميز لمنح حق الوصول للقراءة إلى كائن ثنائي كبير الحجم في Azure Storage، وستستخدم الخدمة عنوان URL المشفرة من SAS لطلب الملف.

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

المعلمات

classifierId

string

معرف المصنف المخصص لاستخدامه للتحليل

documentUrl

string

عنوان URL للمستند لتصنيفه

المرتجعات