DocumentAnalysisClient الفصل

تحلل DocumentAnalysisClient المعلومات من المستندات والصور، وتصنف المستندات. إنها الواجهة التي يجب استخدامها للتحليل باستخدام النماذج التي تم إنشاؤها مسبقا (الإيصالات وبطاقات العمل والفواتير ومستندات الهوية، من بين أمور أخرى)، وتحليل التخطيط من المستندات، وتحليل أنواع المستندات العامة، وتحليل المستندات المخصصة باستخدام النماذج المضمنة (للاطلاع على قائمة كاملة بالنماذج التي تدعمها الخدمة، راجع: https://aka.ms/azsdk/formrecognizer/models). يوفر أساليب مختلفة استنادا إلى المدخلات من عنوان URL والمدخلات من دفق.

ملاحظة

يجب استخدام DocumentAnalysisClient مع إصدارات واجهة برمجة التطبيقات

2022-08-31 وما فوق. لاستخدام إصدارات <واجهة برمجة التطبيقات =v2.1، قم بإنشاء مثيل FormRecognizerClient.

جديد في الإصدار 2022-08-31: DocumentAnalysisClient وأساليب العميل الخاصة به.

توريث
azure.ai.formrecognizer._form_base_client.FormRecognizerClientBase
DocumentAnalysisClient

الدالمنشئ

DocumentAnalysisClient(endpoint: str, credential: AzureKeyCredential | TokenCredential, **kwargs: Any)

المعلمات

endpoint
str
مطلوب

نقاط نهاية الخدمات المعرفية المدعومة (البروتوكول واسم المضيف، على سبيل المثال: https://westus2.api.cognitive.microsoft.com).

credential
AzureKeyCredential أو TokenCredential
مطلوب

بيانات الاعتماد اللازمة للعميل للاتصال ب Azure. هذا هو مثيل AzureKeyCredential إذا كنت تستخدم مفتاح API أو بيانات اعتماد رمز مميز من identity.

api_version
str أو DocumentAnalysisApiVersion

إصدار واجهة برمجة التطبيقات للخدمة لاستخدامه للطلبات. يتم تعيينه افتراضيا إلى أحدث إصدار من الخدمة. قد يؤدي الإعداد إلى إصدار أقدم إلى تقليل توافق الميزات. لاستخدام إصدارات <واجهة برمجة التطبيقات =v2.1، قم بإنشاء مثيل FormRecognizerClient.

أمثلة

إنشاء DocumentAnalysisClient بنقطة نهاية ومفتاح API.


   from azure.core.credentials import AzureKeyCredential
   from azure.ai.formrecognizer import DocumentAnalysisClient

   endpoint = os.environ["AZURE_FORM_RECOGNIZER_ENDPOINT"]
   key = os.environ["AZURE_FORM_RECOGNIZER_KEY"]

   document_analysis_client = DocumentAnalysisClient(endpoint, AzureKeyCredential(key))

إنشاء DocumentAnalysisClient باستخدام بيانات اعتماد رمز مميز.


   """DefaultAzureCredential will use the values from these environment
   variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET
   """
   from azure.ai.formrecognizer import DocumentAnalysisClient
   from azure.identity import DefaultAzureCredential

   endpoint = os.environ["AZURE_FORM_RECOGNIZER_ENDPOINT"]
   credential = DefaultAzureCredential()

   document_analysis_client = DocumentAnalysisClient(endpoint, credential)

الأساليب

begin_analyze_document

تحليل نص الحقل والقيم الدلالية من مستند معين.

جديد في الإصدار 2023-07-31: وسيطة الكلمة الأساسية للميزات .

begin_analyze_document_from_url

تحليل نص الحقل والقيم الدلالية من مستند معين. يجب أن يكون الإدخال هو موقع (URL) للمستند الذي سيتم تحليله.

جديد في الإصدار 2023-07-31: وسيطة الكلمة الأساسية للميزات .

begin_classify_document

تصنيف مستند باستخدام مصنف مستند. لمزيد من المعلومات حول كيفية إنشاء نموذج مصنف مخصص، راجع https://aka.ms/azsdk/formrecognizer/buildclassifiermodel.

جديد في الإصدار 2023-07-31: أسلوب العميل begin_classify_document .

begin_classify_document_from_url

تصنيف مستند معين باستخدام مصنف مستند. لمزيد من المعلومات حول كيفية إنشاء نموذج مصنف مخصص، راجع https://aka.ms/azsdk/formrecognizer/buildclassifiermodel. يجب أن يكون الإدخال هو موقع (URL) للمستند المراد تصنيفه.

جديد في الإصدار 2023-07-31: أسلوب العميل begin_classify_document_from_url .

close

DocumentAnalysisClient أغلق جلسة العمل.

send_request

تشغيل طلب شبكة باستخدام البنية الأساسية لبرنامج ربط العمليات التجارية الحالية للعميل.

يمكن أن يكون عنوان URL للطلب مرتبطا بعنوان URL الأساسي. إصدار واجهة برمجة تطبيقات الخدمة المستخدم للطلب هو نفسه إصدار العميل ما لم يتم تحديد خلاف ذلك. يتم دعم تجاوز إصدار واجهة برمجة التطبيقات المكون للعميل في عنوان URL النسبي على العميل مع إصدار واجهة برمجة التطبيقات 2022-08-31 والإصدارات الأحدث. التجاوز في عنوان URL المطلق المدعوم على العميل مع أي إصدار من واجهة برمجة التطبيقات. لا يرفع هذا الأسلوب إذا كانت الاستجابة خطأ؛ لرفع استثناء، قم باستدعاء raise_for_status() على كائن الاستجابة الذي تم إرجاعه. لمزيد من المعلومات حول كيفية إرسال طلبات مخصصة باستخدام هذا الأسلوب، راجع https://aka.ms/azsdk/dpcodegen/python/send_request.

begin_analyze_document

تحليل نص الحقل والقيم الدلالية من مستند معين.

جديد في الإصدار 2023-07-31: وسيطة الكلمة الأساسية للميزات .

begin_analyze_document(model_id: str, document: bytes | IO[bytes], **kwargs: Any) -> LROPoller[AnalyzeResult]

المعلمات

model_id
str
مطلوب

يمكن تمرير معرف نموذج فريد كسلسلة. استخدم هذا لتحديد معرف النموذج المخصص أو معرف النموذج الذي تم إنشاؤه مسبقا. يمكن العثور على معرفات النموذج التي تم إنشاؤها مسبقا المدعومة هنا: https://aka.ms/azsdk/formrecognizer/models

document
bytes أو IO[bytes]
مطلوب

دفق الملفات أو وحدات البايت. للحصول على أنواع الملفات المدعومة بالخدمة، راجع: https://aka.ms/azsdk/formrecognizer/supportedfiles.

pages
str

أرقام صفحات مخصصة للمستندات متعددة الصفحات (PDF/TIFF). أدخل أرقام الصفحات و/أو نطاقات الصفحات التي تريد الحصول عليها في النتيجة. بالنسبة لنطاق من الصفحات، استخدم واصلة، مثل الصفحات="1-3، 5-6". افصل بين كل رقم صفحة أو نطاق بفاوصلة.

locale
str

تلميح اللغة لمستند الإدخال. راجع اللغات المدعومة هنا: https://aka.ms/azsdk/formrecognizer/supportedlocales.

features
list[str]

ميزات تحليل المستندات التي يجب تمكينها.

المرتجعات

مثيل LROPoller. استدعاء result() على كائن poller لإرجاع AnalyzeResult.

نوع الإرجاع

استثناءات

أمثلة

تحليل فاتورة. لمزيد من العينات، راجع مجلد العينات .


   from azure.core.credentials import AzureKeyCredential
   from azure.ai.formrecognizer import DocumentAnalysisClient

   endpoint = os.environ["AZURE_FORM_RECOGNIZER_ENDPOINT"]
   key = os.environ["AZURE_FORM_RECOGNIZER_KEY"]

   document_analysis_client = DocumentAnalysisClient(
       endpoint=endpoint, credential=AzureKeyCredential(key)
   )
   with open(path_to_sample_documents, "rb") as f:
       poller = document_analysis_client.begin_analyze_document(
           "prebuilt-invoice", document=f, locale="en-US"
       )
   invoices = poller.result()

   for idx, invoice in enumerate(invoices.documents):
       print(f"--------Analyzing invoice #{idx + 1}--------")
       vendor_name = invoice.fields.get("VendorName")
       if vendor_name:
           print(
               f"Vendor Name: {vendor_name.value} has confidence: {vendor_name.confidence}"
           )
       vendor_address = invoice.fields.get("VendorAddress")
       if vendor_address:
           print(
               f"Vendor Address: {vendor_address.value} has confidence: {vendor_address.confidence}"
           )
       vendor_address_recipient = invoice.fields.get("VendorAddressRecipient")
       if vendor_address_recipient:
           print(
               f"Vendor Address Recipient: {vendor_address_recipient.value} has confidence: {vendor_address_recipient.confidence}"
           )
       customer_name = invoice.fields.get("CustomerName")
       if customer_name:
           print(
               f"Customer Name: {customer_name.value} has confidence: {customer_name.confidence}"
           )
       customer_id = invoice.fields.get("CustomerId")
       if customer_id:
           print(
               f"Customer Id: {customer_id.value} has confidence: {customer_id.confidence}"
           )
       customer_address = invoice.fields.get("CustomerAddress")
       if customer_address:
           print(
               f"Customer Address: {customer_address.value} has confidence: {customer_address.confidence}"
           )
       customer_address_recipient = invoice.fields.get("CustomerAddressRecipient")
       if customer_address_recipient:
           print(
               f"Customer Address Recipient: {customer_address_recipient.value} has confidence: {customer_address_recipient.confidence}"
           )
       invoice_id = invoice.fields.get("InvoiceId")
       if invoice_id:
           print(
               f"Invoice Id: {invoice_id.value} has confidence: {invoice_id.confidence}"
           )
       invoice_date = invoice.fields.get("InvoiceDate")
       if invoice_date:
           print(
               f"Invoice Date: {invoice_date.value} has confidence: {invoice_date.confidence}"
           )
       invoice_total = invoice.fields.get("InvoiceTotal")
       if invoice_total:
           print(
               f"Invoice Total: {invoice_total.value} has confidence: {invoice_total.confidence}"
           )
       due_date = invoice.fields.get("DueDate")
       if due_date:
           print(f"Due Date: {due_date.value} has confidence: {due_date.confidence}")
       purchase_order = invoice.fields.get("PurchaseOrder")
       if purchase_order:
           print(
               f"Purchase Order: {purchase_order.value} has confidence: {purchase_order.confidence}"
           )
       billing_address = invoice.fields.get("BillingAddress")
       if billing_address:
           print(
               f"Billing Address: {billing_address.value} has confidence: {billing_address.confidence}"
           )
       billing_address_recipient = invoice.fields.get("BillingAddressRecipient")
       if billing_address_recipient:
           print(
               f"Billing Address Recipient: {billing_address_recipient.value} has confidence: {billing_address_recipient.confidence}"
           )
       shipping_address = invoice.fields.get("ShippingAddress")
       if shipping_address:
           print(
               f"Shipping Address: {shipping_address.value} has confidence: {shipping_address.confidence}"
           )
       shipping_address_recipient = invoice.fields.get("ShippingAddressRecipient")
       if shipping_address_recipient:
           print(
               f"Shipping Address Recipient: {shipping_address_recipient.value} has confidence: {shipping_address_recipient.confidence}"
           )
       print("Invoice items:")
       for idx, item in enumerate(invoice.fields.get("Items").value):
           print(f"...Item #{idx + 1}")
           item_description = item.value.get("Description")
           if item_description:
               print(
                   f"......Description: {item_description.value} has confidence: {item_description.confidence}"
               )
           item_quantity = item.value.get("Quantity")
           if item_quantity:
               print(
                   f"......Quantity: {item_quantity.value} has confidence: {item_quantity.confidence}"
               )
           unit = item.value.get("Unit")
           if unit:
               print(f"......Unit: {unit.value} has confidence: {unit.confidence}")
           unit_price = item.value.get("UnitPrice")
           if unit_price:
               unit_price_code = unit_price.value.code if unit_price.value.code else ""
               print(
                   f"......Unit Price: {unit_price.value}{unit_price_code} has confidence: {unit_price.confidence}"
               )
           product_code = item.value.get("ProductCode")
           if product_code:
               print(
                   f"......Product Code: {product_code.value} has confidence: {product_code.confidence}"
               )
           item_date = item.value.get("Date")
           if item_date:
               print(
                   f"......Date: {item_date.value} has confidence: {item_date.confidence}"
               )
           tax = item.value.get("Tax")
           if tax:
               print(f"......Tax: {tax.value} has confidence: {tax.confidence}")
           amount = item.value.get("Amount")
           if amount:
               print(
                   f"......Amount: {amount.value} has confidence: {amount.confidence}"
               )
       subtotal = invoice.fields.get("SubTotal")
       if subtotal:
           print(f"Subtotal: {subtotal.value} has confidence: {subtotal.confidence}")
       total_tax = invoice.fields.get("TotalTax")
       if total_tax:
           print(
               f"Total Tax: {total_tax.value} has confidence: {total_tax.confidence}"
           )
       previous_unpaid_balance = invoice.fields.get("PreviousUnpaidBalance")
       if previous_unpaid_balance:
           print(
               f"Previous Unpaid Balance: {previous_unpaid_balance.value} has confidence: {previous_unpaid_balance.confidence}"
           )
       amount_due = invoice.fields.get("AmountDue")
       if amount_due:
           print(
               f"Amount Due: {amount_due.value} has confidence: {amount_due.confidence}"
           )
       service_start_date = invoice.fields.get("ServiceStartDate")
       if service_start_date:
           print(
               f"Service Start Date: {service_start_date.value} has confidence: {service_start_date.confidence}"
           )
       service_end_date = invoice.fields.get("ServiceEndDate")
       if service_end_date:
           print(
               f"Service End Date: {service_end_date.value} has confidence: {service_end_date.confidence}"
           )
       service_address = invoice.fields.get("ServiceAddress")
       if service_address:
           print(
               f"Service Address: {service_address.value} has confidence: {service_address.confidence}"
           )
       service_address_recipient = invoice.fields.get("ServiceAddressRecipient")
       if service_address_recipient:
           print(
               f"Service Address Recipient: {service_address_recipient.value} has confidence: {service_address_recipient.confidence}"
           )
       remittance_address = invoice.fields.get("RemittanceAddress")
       if remittance_address:
           print(
               f"Remittance Address: {remittance_address.value} has confidence: {remittance_address.confidence}"
           )
       remittance_address_recipient = invoice.fields.get("RemittanceAddressRecipient")
       if remittance_address_recipient:
           print(
               f"Remittance Address Recipient: {remittance_address_recipient.value} has confidence: {remittance_address_recipient.confidence}"
           )

تحليل مستند مخصص. لمزيد من العينات، راجع مجلد العينات .


   from azure.core.credentials import AzureKeyCredential
   from azure.ai.formrecognizer import DocumentAnalysisClient

   endpoint = os.environ["AZURE_FORM_RECOGNIZER_ENDPOINT"]
   key = os.environ["AZURE_FORM_RECOGNIZER_KEY"]
   model_id = os.getenv("CUSTOM_BUILT_MODEL_ID", custom_model_id)

   document_analysis_client = DocumentAnalysisClient(
       endpoint=endpoint, credential=AzureKeyCredential(key)
   )

   # Make sure your document's type is included in the list of document types the custom model can analyze
   with open(path_to_sample_documents, "rb") as f:
       poller = document_analysis_client.begin_analyze_document(
           model_id=model_id, document=f
       )
   result = poller.result()

   for idx, document in enumerate(result.documents):
       print(f"--------Analyzing document #{idx + 1}--------")
       print(f"Document has type {document.doc_type}")
       print(f"Document has document type confidence {document.confidence}")
       print(f"Document was analyzed with model with ID {result.model_id}")
       for name, field in document.fields.items():
           field_value = field.value if field.value else field.content
           print(
               f"......found field of type '{field.value_type}' with value '{field_value}' and with confidence {field.confidence}"
           )

   # iterate over tables, lines, and selection marks on each page
   for page in result.pages:
       print(f"\nLines found on page {page.page_number}")
       for line in page.lines:
           print(f"...Line '{line.content}'")
       for word in page.words:
           print(f"...Word '{word.content}' has a confidence of {word.confidence}")
       if page.selection_marks:
           print(f"\nSelection marks found on page {page.page_number}")
           for selection_mark in page.selection_marks:
               print(
                   f"...Selection mark is '{selection_mark.state}' and has a confidence of {selection_mark.confidence}"
               )

   for i, table in enumerate(result.tables):
       print(f"\nTable {i + 1} can be found on page:")
       for region in table.bounding_regions:
           print(f"...{region.page_number}")
       for cell in table.cells:
           print(
               f"...Cell[{cell.row_index}][{cell.column_index}] has text '{cell.content}'"
           )
   print("-----------------------------------")

begin_analyze_document_from_url

تحليل نص الحقل والقيم الدلالية من مستند معين. يجب أن يكون الإدخال هو موقع (URL) للمستند الذي سيتم تحليله.

جديد في الإصدار 2023-07-31: وسيطة الكلمة الأساسية للميزات .

begin_analyze_document_from_url(model_id: str, document_url: str, **kwargs: Any) -> LROPoller[AnalyzeResult]

المعلمات

model_id
str
مطلوب

يمكن تمرير معرف نموذج فريد كسلسلة. استخدم هذا لتحديد معرف النموذج المخصص أو معرف النموذج الذي تم إنشاؤه مسبقا. يمكن العثور على معرفات النموذج التي تم إنشاؤها مسبقا المدعومة هنا: https://aka.ms/azsdk/formrecognizer/models

document_url
str
مطلوب

عنوان URL للمستند المراد تحليله. يجب أن يكون الإدخال صالحا ومشفرة بشكل صحيح (أي ترميز أحرف خاصة، مثل المسافات الفارغة)، وعنوان URL يمكن الوصول إليه بشكل عام. للحصول على أنواع الملفات المدعومة بالخدمة، راجع: https://aka.ms/azsdk/formrecognizer/supportedfiles.

pages
str

أرقام صفحات مخصصة للمستندات متعددة الصفحات (PDF/TIFF). أدخل أرقام الصفحات و/أو نطاقات الصفحات التي تريد الحصول عليها في النتيجة. بالنسبة لنطاق من الصفحات، استخدم واصلة، مثل الصفحات="1-3، 5-6". افصل بين كل رقم صفحة أو نطاق بفاوصلة.

locale
str

تلميح اللغة لمستند الإدخال. راجع اللغات المدعومة هنا: https://aka.ms/azsdk/formrecognizer/supportedlocales.

features
list[str]

ميزات تحليل المستندات التي يجب تمكينها.

المرتجعات

مثيل LROPoller. استدعاء result() على كائن poller لإرجاع AnalyzeResult.

نوع الإرجاع

استثناءات

أمثلة

تحليل إيصال. لمزيد من العينات، راجع مجلد العينات .


   from azure.core.credentials import AzureKeyCredential
   from azure.ai.formrecognizer import DocumentAnalysisClient

   endpoint = os.environ["AZURE_FORM_RECOGNIZER_ENDPOINT"]
   key = os.environ["AZURE_FORM_RECOGNIZER_KEY"]

   document_analysis_client = DocumentAnalysisClient(
       endpoint=endpoint, credential=AzureKeyCredential(key)
   )
   url = "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/main/sdk/formrecognizer/azure-ai-formrecognizer/tests/sample_forms/receipt/contoso-receipt.png"
   poller = document_analysis_client.begin_analyze_document_from_url(
       "prebuilt-receipt", document_url=url
   )
   receipts = poller.result()

   for idx, receipt in enumerate(receipts.documents):
       print(f"--------Analysis of receipt #{idx + 1}--------")
       print(f"Receipt type: {receipt.doc_type if receipt.doc_type else 'N/A'}")
       merchant_name = receipt.fields.get("MerchantName")
       if merchant_name:
           print(
               f"Merchant Name: {merchant_name.value} has confidence: "
               f"{merchant_name.confidence}"
           )
       transaction_date = receipt.fields.get("TransactionDate")
       if transaction_date:
           print(
               f"Transaction Date: {transaction_date.value} has confidence: "
               f"{transaction_date.confidence}"
           )
       if receipt.fields.get("Items"):
           print("Receipt items:")
           for idx, item in enumerate(receipt.fields.get("Items").value):
               print(f"...Item #{idx + 1}")
               item_description = item.value.get("Description")
               if item_description:
                   print(
                       f"......Item Description: {item_description.value} has confidence: "
                       f"{item_description.confidence}"
                   )
               item_quantity = item.value.get("Quantity")
               if item_quantity:
                   print(
                       f"......Item Quantity: {item_quantity.value} has confidence: "
                       f"{item_quantity.confidence}"
                   )
               item_price = item.value.get("Price")
               if item_price:
                   print(
                       f"......Individual Item Price: {item_price.value} has confidence: "
                       f"{item_price.confidence}"
                   )
               item_total_price = item.value.get("TotalPrice")
               if item_total_price:
                   print(
                       f"......Total Item Price: {item_total_price.value} has confidence: "
                       f"{item_total_price.confidence}"
                   )
       subtotal = receipt.fields.get("Subtotal")
       if subtotal:
           print(f"Subtotal: {subtotal.value} has confidence: {subtotal.confidence}")
       tax = receipt.fields.get("TotalTax")
       if tax:
           print(f"Total tax: {tax.value} has confidence: {tax.confidence}")
       tip = receipt.fields.get("Tip")
       if tip:
           print(f"Tip: {tip.value} has confidence: {tip.confidence}")
       total = receipt.fields.get("Total")
       if total:
           print(f"Total: {total.value} has confidence: {total.confidence}")
       print("--------------------------------------")

begin_classify_document

تصنيف مستند باستخدام مصنف مستند. لمزيد من المعلومات حول كيفية إنشاء نموذج مصنف مخصص، راجع https://aka.ms/azsdk/formrecognizer/buildclassifiermodel.

جديد في الإصدار 2023-07-31: أسلوب العميل begin_classify_document .

begin_classify_document(classifier_id: str, document: bytes | IO[bytes], **kwargs: Any) -> LROPoller[AnalyzeResult]

المعلمات

classifier_id
str
مطلوب

يمكن تمرير معرف مصنف مستند فريد كسلسلة.

document
bytes أو IO[bytes]
مطلوب

دفق الملفات أو وحدات البايت. للحصول على أنواع الملفات المدعومة بالخدمة، راجع: https://aka.ms/azsdk/formrecognizer/supportedfiles.

المرتجعات

مثيل LROPoller. استدعاء result() على كائن poller لإرجاع AnalyzeResult.

نوع الإرجاع

استثناءات

أمثلة

تصنيف مستند. لمزيد من العينات، راجع مجلد العينات .


   from azure.core.credentials import AzureKeyCredential
   from azure.ai.formrecognizer import DocumentAnalysisClient

   endpoint = os.environ["AZURE_FORM_RECOGNIZER_ENDPOINT"]
   key = os.environ["AZURE_FORM_RECOGNIZER_KEY"]
   classifier_id = os.getenv("CLASSIFIER_ID", classifier_id)

   document_analysis_client = DocumentAnalysisClient(
       endpoint=endpoint, credential=AzureKeyCredential(key)
   )
   with open(path_to_sample_documents, "rb") as f:
       poller = document_analysis_client.begin_classify_document(
           classifier_id, document=f
       )
   result = poller.result()

   print("----Classified documents----")
   for doc in result.documents:
       print(
           f"Found document of type '{doc.doc_type or 'N/A'}' with a confidence of {doc.confidence} contained on "
           f"the following pages: {[region.page_number for region in doc.bounding_regions]}"
       )

begin_classify_document_from_url

تصنيف مستند معين باستخدام مصنف مستند. لمزيد من المعلومات حول كيفية إنشاء نموذج مصنف مخصص، راجع https://aka.ms/azsdk/formrecognizer/buildclassifiermodel. يجب أن يكون الإدخال هو موقع (URL) للمستند المراد تصنيفه.

جديد في الإصدار 2023-07-31: أسلوب العميل begin_classify_document_from_url .

begin_classify_document_from_url(classifier_id: str, document_url: str, **kwargs: Any) -> LROPoller[AnalyzeResult]

المعلمات

classifier_id
str
مطلوب

يمكن تمرير معرف مصنف مستند فريد كسلسلة.

document_url
str
مطلوب

عنوان URL للمستند المراد تصنيفه. يجب أن يكون الإدخال صالحا ومشفرة بشكل صحيح (أي ترميز أحرف خاصة، مثل المسافات الفارغة)، وعنوان URL يمكن الوصول إليه بشكل عام لأحد التنسيقات المدعومة: https://aka.ms/azsdk/formrecognizer/supportedfiles.

المرتجعات

مثيل LROPoller. استدعاء result() على كائن poller لإرجاع AnalyzeResult.

نوع الإرجاع

استثناءات

أمثلة

تصنيف مستند. لمزيد من العينات، راجع مجلد العينات .


   from azure.core.credentials import AzureKeyCredential
   from azure.ai.formrecognizer import DocumentAnalysisClient

   endpoint = os.environ["AZURE_FORM_RECOGNIZER_ENDPOINT"]
   key = os.environ["AZURE_FORM_RECOGNIZER_KEY"]
   classifier_id = os.getenv("CLASSIFIER_ID", classifier_id)

   document_analysis_client = DocumentAnalysisClient(
       endpoint=endpoint, credential=AzureKeyCredential(key)
   )

   url = "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/main/sdk/formrecognizer/azure-ai-formrecognizer/tests/sample_forms/forms/IRS-1040.pdf"

   poller = document_analysis_client.begin_classify_document_from_url(
       classifier_id, document_url=url
   )
   result = poller.result()

   print("----Classified documents----")
   for doc in result.documents:
       print(
           f"Found document of type '{doc.doc_type or 'N/A'}' with a confidence of {doc.confidence} contained on "
           f"the following pages: {[region.page_number for region in doc.bounding_regions]}"
       )

close

DocumentAnalysisClient أغلق جلسة العمل.

close() -> None

استثناءات

send_request

تشغيل طلب شبكة باستخدام البنية الأساسية لبرنامج ربط العمليات التجارية الحالية للعميل.

يمكن أن يكون عنوان URL للطلب مرتبطا بعنوان URL الأساسي. إصدار واجهة برمجة تطبيقات الخدمة المستخدم للطلب هو نفسه إصدار العميل ما لم يتم تحديد خلاف ذلك. يتم دعم تجاوز إصدار واجهة برمجة التطبيقات المكون للعميل في عنوان URL النسبي على العميل مع إصدار واجهة برمجة التطبيقات 2022-08-31 والإصدارات الأحدث. التجاوز في عنوان URL المطلق المدعوم على العميل مع أي إصدار من واجهة برمجة التطبيقات. لا يرفع هذا الأسلوب إذا كانت الاستجابة خطأ؛ لرفع استثناء، قم باستدعاء raise_for_status() على كائن الاستجابة الذي تم إرجاعه. لمزيد من المعلومات حول كيفية إرسال طلبات مخصصة باستخدام هذا الأسلوب، راجع https://aka.ms/azsdk/dpcodegen/python/send_request.

send_request(request: HttpRequest, *, stream: bool = False, **kwargs) -> HttpResponse

المعلمات

request
HttpRequest
مطلوب

طلب الشبكة الذي تريد تقديمه.

stream
bool

ما إذا كان سيتم دفق حمولة الاستجابة. الإعدادات الافتراضية معينة على False.

المرتجعات

استجابة مكالمة الشبكة. لا يقوم بمعالجة الأخطاء في استجابتك.

نوع الإرجاع

استثناءات