FormRecognizerClient الفصل

يستخرج FormRecognizerClient المعلومات من النماذج والصور إلى بيانات منظمة. إنها الواجهة التي يجب استخدامها للتحليل باستخدام نماذج تم إنشاؤها مسبقا (الإيصالات وبطاقات العمل والفواتير ومستندات الهوية)، والتعرف على المحتوى/التخطيط من النماذج، وتحليل النماذج المخصصة من النماذج المدربة. يوفر أساليب مختلفة استنادا إلى المدخلات من عنوان URL والمدخلات من دفق.

ملاحظة

يجب استخدام FormRecognizerClient مع إصدارات <واجهة برمجة التطبيقات =v2.1.

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

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

الدالمنشئ

FormRecognizerClient(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 أو FormRecognizerApiVersion

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

أمثلة

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


   from azure.core.credentials import AzureKeyCredential
   from azure.ai.formrecognizer import FormRecognizerClient
   endpoint = os.environ["AZURE_FORM_RECOGNIZER_ENDPOINT"]
   key = os.environ["AZURE_FORM_RECOGNIZER_KEY"]

   form_recognizer_client = FormRecognizerClient(endpoint, AzureKeyCredential(key))

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


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

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

   form_recognizer_client = FormRecognizerClient(endpoint, credential)

الأساليب

begin_recognize_business_cards

استخراج نص الحقل والقيم الدلالية من بطاقة عمل معينة. يجب أن يكون مستند الإدخال من أحد أنواع المحتوى المدعومة - "application/pdf" أو "image/jpeg" أو "image/png" أو "image/tiff" أو "image/bmp".

راجع الحقول الموجودة على بطاقة عمل هنا: https://aka.ms/formrecognizer/businesscardfields

جديد في الإصدار v2.1: أسلوب العميل begin_recognize_business_cards

begin_recognize_business_cards_from_url

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

راجع الحقول الموجودة على بطاقة عمل هنا: https://aka.ms/formrecognizer/businesscardfields

جديد في الإصدار v2.1: أسلوب العميل begin_recognize_business_cards_from_url

begin_recognize_content

استخراج معلومات النص والمحتوى/التخطيط من مستند معين. يجب أن يكون مستند الإدخال من أحد أنواع المحتوى المدعومة - "application/pdf" أو "image/jpeg" أو "image/png" أو "image/tiff" أو "image/bmp".

جديد في الإصدار v2.1: الصفحاتواللغة ووسيطات الكلمة الأساسية reading_order ودعم محتوى الصورة/bmp

begin_recognize_content_from_url

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

جديد في الإصدار v2.1: الصفحاتواللغة ووسيطات الكلمة الأساسية reading_order ودعم محتوى الصورة/bmp

begin_recognize_custom_forms

تحليل نموذج مخصص باستخدام نموذج مدرب باستخدام أو بدون تسميات. يجب أن يكون النموذج المراد تحليله من نفس نوع النماذج التي تم استخدامها لتدريب النموذج. يجب أن يكون مستند الإدخال من أحد أنواع المحتوى المدعومة - "application/pdf" أو "image/jpeg" أو "image/png" أو "image/tiff" أو "image/bmp".

begin_recognize_custom_forms_from_url

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

begin_recognize_identity_documents

استخراج نص الحقل والقيم الدلالية من مستند هوية معين. يجب أن يكون مستند الإدخال من أحد أنواع المحتوى المدعومة - "application/pdf" أو "image/jpeg" أو "image/png" أو "image/tiff" أو "image/bmp".

راجع الحقول الموجودة في مستند هوية هنا: https://aka.ms/formrecognizer/iddocumentfields

جديد في الإصدار v2.1: أسلوب العميل begin_recognize_identity_documents

begin_recognize_identity_documents_from_url

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

راجع الحقول الموجودة في مستند هوية هنا: https://aka.ms/formrecognizer/iddocumentfields

جديد في الإصدار v2.1: أسلوب العميل begin_recognize_identity_documents_from_url

begin_recognize_invoices

استخراج نص الحقل والقيم الدلالية من فاتورة معينة. يجب أن يكون مستند الإدخال من أحد أنواع المحتوى المدعومة - "application/pdf" أو "image/jpeg" أو "image/png" أو "image/tiff" أو "image/bmp".

راجع الحقول الموجودة في فاتورة هنا: https://aka.ms/formrecognizer/invoicefields

جديد في الإصدار v2.1: أسلوب العميل begin_recognize_invoices

begin_recognize_invoices_from_url

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

راجع الحقول الموجودة على بطاقة فاتورة هنا: https://aka.ms/formrecognizer/invoicefields

جديد في الإصدار v2.1: أسلوب العميل begin_recognize_invoices_from_url

begin_recognize_receipts

استخراج نص الحقل والقيم الدلالية من إيصال مبيعات معين. يجب أن يكون مستند الإدخال من أحد أنواع المحتوى المدعومة - "application/pdf" أو "image/jpeg" أو "image/png" أو "image/tiff" أو "image/bmp".

راجع الحقول التي تم العثور عليها في إيصال هنا: https://aka.ms/formrecognizer/receiptfields

جديد في الإصدار v2.1: وسيطات الكلمات الأساسية للصفحات والصفحات ودعم محتوى الصورة/bmp

begin_recognize_receipts_from_url

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

راجع الحقول التي تم العثور عليها في إيصال هنا: https://aka.ms/formrecognizer/receiptfields

جديد في الإصدار v2.1: وسيطات الكلمات الأساسية للصفحات والصفحات ودعم محتوى الصورة/bmp

close

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

send_request

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

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

begin_recognize_business_cards

استخراج نص الحقل والقيم الدلالية من بطاقة عمل معينة. يجب أن يكون مستند الإدخال من أحد أنواع المحتوى المدعومة - "application/pdf" أو "image/jpeg" أو "image/png" أو "image/tiff" أو "image/bmp".

راجع الحقول الموجودة على بطاقة عمل هنا: https://aka.ms/formrecognizer/businesscardfields

جديد في الإصدار v2.1: أسلوب العميل begin_recognize_business_cards

begin_recognize_business_cards(business_card: bytes | IO[bytes], **kwargs: Any) -> LROPoller[List[RecognizedForm]]

المعلمات

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

JPEG أو PNG أو PDF أو TIFF أو BMP نوع دفق الملفات أو وحدات البايت.

locale
str

إعدادات محلية لبطاقة العمل. تتضمن اللغات المدعومة: en-US و en-AU و en-CA و en-GB و en-IN.

include_field_elements
bool

ما إذا كنت تريد تضمين كافة الأسطر لكل صفحة وعناصر الحقل مثل الأسطر والكلمات وعلامات التحديد لكل حقل نموذج أم لا.

pages
list[str]

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

content_type
str أو FormContentType

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

continuation_token
str

رمز متابعة لإعادة تشغيل الاستقصاء من حالة محفوظة.

المرتجعات

مثيل LROPoller. استدعاء result() على كائن poller لإرجاع قائمة[RecognizedForm].

نوع الإرجاع

استثناءات

أمثلة

التعرف على بطاقات العمل من ملف.


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

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

   form_recognizer_client = FormRecognizerClient(
       endpoint=endpoint, credential=AzureKeyCredential(key)
   )
   with open(path_to_sample_forms, "rb") as f:
       poller = form_recognizer_client.begin_recognize_business_cards(business_card=f, locale="en-US")
   business_cards = poller.result()

   for idx, business_card in enumerate(business_cards):
       print("--------Recognizing business card #{}--------".format(idx+1))
       contact_names = business_card.fields.get("ContactNames")
       if contact_names:
           for contact_name in contact_names.value:
               print("Contact First Name: {} has confidence: {}".format(
                   contact_name.value["FirstName"].value, contact_name.value["FirstName"].confidence
               ))
               print("Contact Last Name: {} has confidence: {}".format(
                   contact_name.value["LastName"].value, contact_name.value["LastName"].confidence
               ))
       company_names = business_card.fields.get("CompanyNames")
       if company_names:
           for company_name in company_names.value:
               print("Company Name: {} has confidence: {}".format(company_name.value, company_name.confidence))
       departments = business_card.fields.get("Departments")
       if departments:
           for department in departments.value:
               print("Department: {} has confidence: {}".format(department.value, department.confidence))
       job_titles = business_card.fields.get("JobTitles")
       if job_titles:
           for job_title in job_titles.value:
               print("Job Title: {} has confidence: {}".format(job_title.value, job_title.confidence))
       emails = business_card.fields.get("Emails")
       if emails:
           for email in emails.value:
               print("Email: {} has confidence: {}".format(email.value, email.confidence))
       websites = business_card.fields.get("Websites")
       if websites:
           for website in websites.value:
               print("Website: {} has confidence: {}".format(website.value, website.confidence))
       addresses = business_card.fields.get("Addresses")
       if addresses:
           for address in addresses.value:
               print("Address: {} has confidence: {}".format(address.value, address.confidence))
       mobile_phones = business_card.fields.get("MobilePhones")
       if mobile_phones:
           for phone in mobile_phones.value:
               print("Mobile phone number: {} has confidence: {}".format(phone.value, phone.confidence))
       faxes = business_card.fields.get("Faxes")
       if faxes:
           for fax in faxes.value:
               print("Fax number: {} has confidence: {}".format(fax.value, fax.confidence))
       work_phones = business_card.fields.get("WorkPhones")
       if work_phones:
           for work_phone in work_phones.value:
               print("Work phone number: {} has confidence: {}".format(work_phone.value, work_phone.confidence))
       other_phones = business_card.fields.get("OtherPhones")
       if other_phones:
           for other_phone in other_phones.value:
               print("Other phone number: {} has confidence: {}".format(other_phone.value, other_phone.confidence))

begin_recognize_business_cards_from_url

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

راجع الحقول الموجودة على بطاقة عمل هنا: https://aka.ms/formrecognizer/businesscardfields

جديد في الإصدار v2.1: أسلوب العميل begin_recognize_business_cards_from_url

begin_recognize_business_cards_from_url(business_card_url: str, **kwargs: Any) -> LROPoller[List[RecognizedForm]]

المعلمات

business_card_url
str
مطلوب

عنوان URL لبطاقة العمل المراد تحليلها. يجب أن يكون الإدخال عنوان URL صالحا ومشفرة لأحد التنسيقات المدعومة: JPEG أو PNG أو PDF أو TIFF أو BMP.

locale
str

إعدادات محلية لبطاقة العمل. تتضمن اللغات المدعومة: en-US و en-AU و en-CA و en-GB و en-IN.

include_field_elements
bool

ما إذا كنت تريد تضمين كافة الأسطر لكل صفحة وعناصر الحقل مثل الأسطر والكلمات وعلامات التحديد لكل حقل نموذج أم لا.

pages
list[str]

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

continuation_token
str

رمز متابعة لإعادة تشغيل الاستقصاء من حالة محفوظة.

المرتجعات

مثيل LROPoller. استدعاء result() على كائن poller لإرجاع قائمة[RecognizedForm].

نوع الإرجاع

استثناءات

begin_recognize_content

استخراج معلومات النص والمحتوى/التخطيط من مستند معين. يجب أن يكون مستند الإدخال من أحد أنواع المحتوى المدعومة - "application/pdf" أو "image/jpeg" أو "image/png" أو "image/tiff" أو "image/bmp".

جديد في الإصدار v2.1: الصفحاتواللغة ووسيطات الكلمة الأساسية reading_order ودعم محتوى الصورة/bmp

begin_recognize_content(form: bytes | IO[bytes], **kwargs: Any) -> LROPoller[List[FormPage]]

المعلمات

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

JPEG أو PNG أو PDF أو TIFF أو BMP نوع دفق الملفات أو وحدات البايت.

pages
list[str]

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

language
str

رمز لغة BCP-47 للنص في المستند. راجع رموز اللغة المدعومة هنا: https://docs.microsoft.com/azure/cognitive-services/form-recognizer/language-support. يدعم المحتوى تعريف اللغة التلقائي والمستندات متعددة اللغات، لذلك لا يوفر سوى رمز لغة إذا كنت ترغب في فرض معالجة الموثق على أنه تلك اللغة المحددة.

reading_order
str

خوارزمية ترتيب القراءة لفرز أسطر النص التي تم إرجاعها. تتضمن أوامر القراءة المدعومة ما يلي: أساسي (افتراضي)، طبيعي. قم بتعيين "أساسي" لفرز الخطوط من اليسار إلى اليمين ومن الأعلى إلى الأسفل، على الرغم من أنه في بعض الحالات يتم التعامل مع التقارب بأولوية أعلى. قم بتعيين "طبيعي" لفرز الخطوط باستخدام معلومات موضعية للحفاظ على الخطوط القريبة معا.

content_type
str أو FormContentType

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

continuation_token
str

رمز متابعة لإعادة تشغيل الاستقصاء من حالة محفوظة.

المرتجعات

مثيل LROPoller. استدعاء result() على كائن poller لإرجاع قائمة[FormPage].

نوع الإرجاع

استثناءات

أمثلة

التعرف على معلومات النص والمحتوى/التخطيط من نموذج.


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

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

   form_recognizer_client = FormRecognizerClient(endpoint=endpoint, credential=AzureKeyCredential(key))
   with open(path_to_sample_forms, "rb") as f:
       poller = form_recognizer_client.begin_recognize_content(form=f)
   form_pages = poller.result()

   for idx, content in enumerate(form_pages):
       print("----Recognizing content from page #{}----".format(idx+1))
       print("Page has width: {} and height: {}, measured with unit: {}".format(
           content.width,
           content.height,
           content.unit
       ))
       for table_idx, table in enumerate(content.tables):
           print("Table # {} has {} rows and {} columns".format(table_idx, table.row_count, table.column_count))
           print("Table # {} location on page: {}".format(table_idx, format_bounding_box(table.bounding_box)))
           for cell in table.cells:
               print("...Cell[{}][{}] has text '{}' within bounding box '{}'".format(
                   cell.row_index,
                   cell.column_index,
                   cell.text,
                   format_bounding_box(cell.bounding_box)
               ))

       for line_idx, line in enumerate(content.lines):
           print("Line # {} has word count '{}' and text '{}' within bounding box '{}'".format(
               line_idx,
               len(line.words),
               line.text,
               format_bounding_box(line.bounding_box)
           ))
           if line.appearance:
               if line.appearance.style_name == "handwriting" and line.appearance.style_confidence > 0.8:
                   print("Text line '{}' is handwritten and might be a signature.".format(line.text))
           for word in line.words:
               print("...Word '{}' has a confidence of {}".format(word.text, word.confidence))

       for selection_mark in content.selection_marks:
           print("Selection mark is '{}' within bounding box '{}' and has a confidence of {}".format(
               selection_mark.state,
               format_bounding_box(selection_mark.bounding_box),
               selection_mark.confidence
           ))
       print("----------------------------------------")


begin_recognize_content_from_url

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

جديد في الإصدار v2.1: الصفحاتواللغة ووسيطات الكلمة الأساسية reading_order ودعم محتوى الصورة/bmp

begin_recognize_content_from_url(form_url: str, **kwargs: Any) -> LROPoller[List[FormPage]]

المعلمات

form_url
str
مطلوب

عنوان URL للنموذج المراد تحليله. يجب أن يكون الإدخال عنوان URL صالحا ومشفرة لأحد التنسيقات المدعومة: JPEG أو PNG أو PDF أو TIFF أو BMP.

pages
list[str]

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

language
str

رمز لغة BCP-47 للنص في المستند. راجع رموز اللغة المدعومة هنا: https://docs.microsoft.com/azure/cognitive-services/form-recognizer/language-support. يدعم المحتوى تعريف اللغة التلقائي والمستندات متعددة اللغات، لذلك لا يوفر سوى رمز لغة إذا كنت ترغب في فرض معالجة الموثق على أنه تلك اللغة المحددة.

reading_order
str

خوارزمية ترتيب القراءة لفرز أسطر النص التي تم إرجاعها. تتضمن أوامر القراءة المدعومة ما يلي: أساسي (افتراضي)، طبيعي. قم بتعيين "أساسي" لفرز الخطوط من اليسار إلى اليمين ومن الأعلى إلى الأسفل، على الرغم من أنه في بعض الحالات يتم التعامل مع التقارب بأولوية أعلى. قم بتعيين "طبيعي" لفرز الخطوط باستخدام معلومات موضعية للحفاظ على الخطوط القريبة معا.

continuation_token
str

رمز متابعة لإعادة تشغيل الاستقصاء من حالة محفوظة.

المرتجعات

مثيل LROPoller. استدعاء result() على كائن poller لإرجاع قائمة[FormPage].

نوع الإرجاع

استثناءات

begin_recognize_custom_forms

تحليل نموذج مخصص باستخدام نموذج مدرب باستخدام أو بدون تسميات. يجب أن يكون النموذج المراد تحليله من نفس نوع النماذج التي تم استخدامها لتدريب النموذج. يجب أن يكون مستند الإدخال من أحد أنواع المحتوى المدعومة - "application/pdf" أو "image/jpeg" أو "image/png" أو "image/tiff" أو "image/bmp".

begin_recognize_custom_forms(model_id: str, form: bytes | IO[bytes], **kwargs: Any) -> LROPoller[List[RecognizedForm]]

المعلمات

model_id
str
مطلوب

معرف النموذج المخصص.

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

JPEG أو PNG أو PDF أو TIFF أو BMP نوع دفق الملفات أو وحدات البايت.

include_field_elements
bool

ما إذا كنت تريد تضمين كافة الأسطر لكل صفحة وعناصر الحقل مثل الأسطر والكلمات وعلامات التحديد لكل حقل نموذج أم لا.

content_type
str أو FormContentType

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

pages
list[str]

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

continuation_token
str

رمز متابعة لإعادة تشغيل الاستقصاء من حالة محفوظة.

المرتجعات

مثيل LROPoller. استدعاء result() على كائن poller لإرجاع قائمة[RecognizedForm].

نوع الإرجاع

استثناءات

أمثلة

التعرف على الحقول والقيم من نموذج مخصص.


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

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

   form_recognizer_client = FormRecognizerClient(
       endpoint=endpoint, credential=AzureKeyCredential(key)
   )

   # Make sure your form's type is included in the list of form types the custom model can recognize
   with open(path_to_sample_forms, "rb") as f:
       poller = form_recognizer_client.begin_recognize_custom_forms(
           model_id=model_id, form=f, include_field_elements=True
       )
   forms = poller.result()

   for idx, form in enumerate(forms):
       print("--------Recognizing Form #{}--------".format(idx+1))
       print("Form has type {}".format(form.form_type))
       print("Form has form type confidence {}".format(form.form_type_confidence))
       print("Form was analyzed with model with ID {}".format(form.model_id))
       for name, field in form.fields.items():
           # each field is of type FormField
           # label_data is populated if you are using a model trained without labels,
           # since the service needs to make predictions for labels if not explicitly given to it.
           if field.label_data:
               print("...Field '{}' has label '{}' with a confidence score of {}".format(
                   name,
                   field.label_data.text,
                   field.confidence
               ))

           print("...Label '{}' has value '{}' with a confidence score of {}".format(
               field.label_data.text if field.label_data else name, field.value, field.confidence
           ))

       # iterate over tables, lines, and selection marks on each page
       for page in form.pages:
           for i, table in enumerate(page.tables):
               print("\nTable {} on page {}".format(i+1, table.page_number))
               for cell in table.cells:
                   print("...Cell[{}][{}] has text '{}' with confidence {}".format(
                       cell.row_index, cell.column_index, cell.text, cell.confidence
                   ))
           print("\nLines found on page {}".format(page.page_number))
           for line in page.lines:
               print("...Line '{}' is made up of the following words: ".format(line.text))
               for word in line.words:
                   print("......Word '{}' has a confidence of {}".format(
                       word.text,
                       word.confidence
                   ))
           if page.selection_marks:
               print("\nSelection marks found on page {}".format(page.page_number))
               for selection_mark in page.selection_marks:
                   print("......Selection mark is '{}' and has a confidence of {}".format(
                       selection_mark.state,
                       selection_mark.confidence
                   ))

       print("-----------------------------------")

begin_recognize_custom_forms_from_url

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

begin_recognize_custom_forms_from_url(model_id: str, form_url: str, **kwargs: Any) -> LROPoller[List[RecognizedForm]]

المعلمات

model_id
str
مطلوب

معرف النموذج المخصص.

form_url
str
مطلوب

عنوان URL للنموذج المراد تحليله. يجب أن يكون الإدخال عنوان URL صالحا ومشفرة لأحد التنسيقات المدعومة: JPEG أو PNG أو PDF أو TIFF أو BMP.

include_field_elements
bool

ما إذا كنت تريد تضمين كافة الأسطر لكل صفحة وعناصر الحقل مثل الأسطر والكلمات وعلامات التحديد لكل حقل نموذج أم لا.

pages
list[str]

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

continuation_token
str

رمز متابعة لإعادة تشغيل الاستقصاء من حالة محفوظة.

المرتجعات

مثيل LROPoller. استدعاء result() على كائن poller لإرجاع قائمة[RecognizedForm].

نوع الإرجاع

استثناءات

begin_recognize_identity_documents

استخراج نص الحقل والقيم الدلالية من مستند هوية معين. يجب أن يكون مستند الإدخال من أحد أنواع المحتوى المدعومة - "application/pdf" أو "image/jpeg" أو "image/png" أو "image/tiff" أو "image/bmp".

راجع الحقول الموجودة في مستند هوية هنا: https://aka.ms/formrecognizer/iddocumentfields

جديد في الإصدار v2.1: أسلوب العميل begin_recognize_identity_documents

begin_recognize_identity_documents(identity_document: bytes | IO[bytes], **kwargs: Any) -> LROPoller[List[RecognizedForm]]

المعلمات

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

JPEG أو PNG أو PDF أو TIFF أو BMP نوع دفق الملفات أو وحدات البايت.

include_field_elements
bool

ما إذا كنت تريد تضمين كافة الأسطر لكل صفحة وعناصر الحقل مثل الأسطر والكلمات وعلامات التحديد لكل حقل نموذج أم لا.

content_type
str أو FormContentType

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

continuation_token
str

رمز متابعة لإعادة تشغيل الاستقصاء من حالة محفوظة.

pages
list[str]

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

المرتجعات

مثيل LROPoller. استدعاء result() على كائن poller لإرجاع قائمة[RecognizedForm].

نوع الإرجاع

استثناءات

أمثلة

التعرف على حقول مستندات الهوية.


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

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

   form_recognizer_client = FormRecognizerClient(
       endpoint=endpoint, credential=AzureKeyCredential(key)
   )
   with open(path_to_sample_forms, "rb") as f:
       poller = form_recognizer_client.begin_recognize_identity_documents(identity_document=f)
   id_documents = poller.result()

   for idx, id_document in enumerate(id_documents):
       print("--------Recognizing ID document #{}--------".format(idx+1))
       first_name = id_document.fields.get("FirstName")
       if first_name:
           print("First Name: {} has confidence: {}".format(first_name.value, first_name.confidence))
       last_name = id_document.fields.get("LastName")
       if last_name:
           print("Last Name: {} has confidence: {}".format(last_name.value, last_name.confidence))
       document_number = id_document.fields.get("DocumentNumber")
       if document_number:
           print("Document Number: {} has confidence: {}".format(document_number.value, document_number.confidence))
       dob = id_document.fields.get("DateOfBirth")
       if dob:
           print("Date of Birth: {} has confidence: {}".format(dob.value, dob.confidence))
       doe = id_document.fields.get("DateOfExpiration")
       if doe:
           print("Date of Expiration: {} has confidence: {}".format(doe.value, doe.confidence))
       sex = id_document.fields.get("Sex")
       if sex:
           print("Sex: {} has confidence: {}".format(sex.value, sex.confidence))
       address = id_document.fields.get("Address")
       if address:
           print("Address: {} has confidence: {}".format(address.value, address.confidence))
       country_region = id_document.fields.get("CountryRegion")
       if country_region:
           print("Country/Region: {} has confidence: {}".format(country_region.value, country_region.confidence))
       region = id_document.fields.get("Region")
       if region:
           print("Region: {} has confidence: {}".format(region.value, region.confidence))

begin_recognize_identity_documents_from_url

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

راجع الحقول الموجودة في مستند هوية هنا: https://aka.ms/formrecognizer/iddocumentfields

جديد في الإصدار v2.1: أسلوب العميل begin_recognize_identity_documents_from_url

begin_recognize_identity_documents_from_url(identity_document_url: str, **kwargs: Any) -> LROPoller[List[RecognizedForm]]

المعلمات

identity_document_url
str
مطلوب

عنوان URL لمستند الهوية المراد تحليله. يجب أن يكون الإدخال عنوان URL صالحا ومشفرة لأحد التنسيقات المدعومة: JPEG أو PNG أو PDF أو TIFF أو BMP.

include_field_elements
bool

ما إذا كنت تريد تضمين كافة الأسطر لكل صفحة وعناصر الحقل مثل الأسطر والكلمات وعلامات التحديد لكل حقل نموذج أم لا.

continuation_token
str

رمز متابعة لإعادة تشغيل الاستقصاء من حالة محفوظة.

pages
list[str]

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

المرتجعات

مثيل LROPoller. استدعاء result() على كائن poller لإرجاع قائمة[RecognizedForm].

نوع الإرجاع

استثناءات

begin_recognize_invoices

استخراج نص الحقل والقيم الدلالية من فاتورة معينة. يجب أن يكون مستند الإدخال من أحد أنواع المحتوى المدعومة - "application/pdf" أو "image/jpeg" أو "image/png" أو "image/tiff" أو "image/bmp".

راجع الحقول الموجودة في فاتورة هنا: https://aka.ms/formrecognizer/invoicefields

جديد في الإصدار v2.1: أسلوب العميل begin_recognize_invoices

begin_recognize_invoices(invoice: bytes | IO[bytes], **kwargs: Any) -> LROPoller[List[RecognizedForm]]

المعلمات

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

JPEG أو PNG أو PDF أو TIFF أو BMP نوع دفق الملفات أو وحدات البايت.

locale
str

إعدادات الفاتورة المحلية. تشمل اللغات المدعومة ما يلي: en-US

include_field_elements
bool

ما إذا كنت تريد تضمين كافة الأسطر لكل صفحة وعناصر الحقل مثل الأسطر والكلمات وعلامات التحديد لكل حقل نموذج أم لا.

pages
list[str]

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

content_type
str أو FormContentType

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

continuation_token
str

رمز متابعة لإعادة تشغيل الاستقصاء من حالة محفوظة.

المرتجعات

مثيل LROPoller. استدعاء result() على كائن poller لإرجاع قائمة[RecognizedForm].

نوع الإرجاع

استثناءات

أمثلة

التعرف على الفواتير من ملف.


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

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

   form_recognizer_client = FormRecognizerClient(
       endpoint=endpoint, credential=AzureKeyCredential(key)
   )
   with open(path_to_sample_forms, "rb") as f:
       poller = form_recognizer_client.begin_recognize_invoices(invoice=f, locale="en-US")
   invoices = poller.result()

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

begin_recognize_invoices_from_url

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

راجع الحقول الموجودة على بطاقة فاتورة هنا: https://aka.ms/formrecognizer/invoicefields

جديد في الإصدار v2.1: أسلوب العميل begin_recognize_invoices_from_url

begin_recognize_invoices_from_url(invoice_url: str, **kwargs: Any) -> LROPoller[List[RecognizedForm]]

المعلمات

invoice_url
str
مطلوب

عنوان URL للفاتورة المراد تحليلها. يجب أن يكون الإدخال عنوان URL صالحا ومشفرة لأحد التنسيقات المدعومة: JPEG أو PNG أو PDF أو TIFF أو BMP.

locale
str

إعدادات الفاتورة المحلية. تشمل اللغات المدعومة ما يلي: en-US

include_field_elements
bool

ما إذا كنت تريد تضمين كافة الأسطر لكل صفحة وعناصر الحقل مثل الأسطر والكلمات وعلامات التحديد لكل حقل نموذج أم لا.

pages
list[str]

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

continuation_token
str

رمز متابعة لإعادة تشغيل الاستقصاء من حالة محفوظة.

المرتجعات

مثيل LROPoller. استدعاء result() على كائن poller لإرجاع قائمة[RecognizedForm].

نوع الإرجاع

استثناءات

begin_recognize_receipts

استخراج نص الحقل والقيم الدلالية من إيصال مبيعات معين. يجب أن يكون مستند الإدخال من أحد أنواع المحتوى المدعومة - "application/pdf" أو "image/jpeg" أو "image/png" أو "image/tiff" أو "image/bmp".

راجع الحقول التي تم العثور عليها في إيصال هنا: https://aka.ms/formrecognizer/receiptfields

جديد في الإصدار v2.1: وسيطات الكلمات الأساسية للصفحات والصفحات ودعم محتوى الصورة/bmp

begin_recognize_receipts(receipt: bytes | IO[bytes], **kwargs: Any) -> LROPoller[List[RecognizedForm]]

المعلمات

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

JPEG أو PNG أو PDF أو TIFF أو BMP نوع دفق الملفات أو وحدات البايت.

include_field_elements
bool

ما إذا كنت تريد تضمين كافة الأسطر لكل صفحة وعناصر الحقل مثل الأسطر والكلمات وعلامات التحديد لكل حقل نموذج أم لا.

content_type
str أو FormContentType

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

continuation_token
str

رمز متابعة لإعادة تشغيل الاستقصاء من حالة محفوظة.

locale
str

إعدادات محلية للإيصال. تتضمن اللغات المدعومة: en-US و en-AU و en-CA و en-GB و en-IN.

pages
list[str]

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

المرتجعات

مثيل LROPoller. استدعاء result() على كائن poller لإرجاع قائمة[RecognizedForm].

نوع الإرجاع

استثناءات

أمثلة

التعرف على حقول إيصالات المبيعات.


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

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

   form_recognizer_client = FormRecognizerClient(
       endpoint=endpoint, credential=AzureKeyCredential(key)
   )
   with open(path_to_sample_forms, "rb") as f:
       poller = form_recognizer_client.begin_recognize_receipts(receipt=f, locale="en-US")
   receipts = poller.result()

   for idx, receipt in enumerate(receipts):
       print("--------Recognizing receipt #{}--------".format(idx+1))
       receipt_type = receipt.fields.get("ReceiptType")
       if receipt_type:
           print("Receipt Type: {} has confidence: {}".format(receipt_type.value, receipt_type.confidence))
       merchant_name = receipt.fields.get("MerchantName")
       if merchant_name:
           print("Merchant Name: {} has confidence: {}".format(merchant_name.value, merchant_name.confidence))
       transaction_date = receipt.fields.get("TransactionDate")
       if transaction_date:
           print("Transaction Date: {} has confidence: {}".format(transaction_date.value, transaction_date.confidence))
       if receipt.fields.get("Items"):
           print("Receipt items:")
           for idx, item in enumerate(receipt.fields.get("Items").value):
               print("...Item #{}".format(idx+1))
               item_name = item.value.get("Name")
               if item_name:
                   print("......Item Name: {} has confidence: {}".format(item_name.value, item_name.confidence))
               item_quantity = item.value.get("Quantity")
               if item_quantity:
                   print("......Item Quantity: {} has confidence: {}".format(item_quantity.value, item_quantity.confidence))
               item_price = item.value.get("Price")
               if item_price:
                   print("......Individual Item Price: {} has confidence: {}".format(item_price.value, item_price.confidence))
               item_total_price = item.value.get("TotalPrice")
               if item_total_price:
                   print("......Total Item Price: {} has confidence: {}".format(item_total_price.value, item_total_price.confidence))
       subtotal = receipt.fields.get("Subtotal")
       if subtotal:
           print("Subtotal: {} has confidence: {}".format(subtotal.value, subtotal.confidence))
       tax = receipt.fields.get("Tax")
       if tax:
           print("Tax: {} has confidence: {}".format(tax.value, tax.confidence))
       tip = receipt.fields.get("Tip")
       if tip:
           print("Tip: {} has confidence: {}".format(tip.value, tip.confidence))
       total = receipt.fields.get("Total")
       if total:
           print("Total: {} has confidence: {}".format(total.value, total.confidence))
       print("--------------------------------------")

begin_recognize_receipts_from_url

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

راجع الحقول التي تم العثور عليها في إيصال هنا: https://aka.ms/formrecognizer/receiptfields

جديد في الإصدار v2.1: وسيطات الكلمات الأساسية للصفحات والصفحات ودعم محتوى الصورة/bmp

begin_recognize_receipts_from_url(receipt_url: str, **kwargs: Any) -> LROPoller[List[RecognizedForm]]

المعلمات

receipt_url
str
مطلوب

عنوان URL للإيصال المراد تحليله. يجب أن يكون الإدخال عنوان URL صالحا ومشفرة لأحد التنسيقات المدعومة: JPEG أو PNG أو PDF أو TIFF أو BMP.

include_field_elements
bool

ما إذا كنت تريد تضمين كافة الأسطر لكل صفحة وعناصر الحقل مثل الأسطر والكلمات وعلامات التحديد لكل حقل نموذج أم لا.

continuation_token
str

رمز متابعة لإعادة تشغيل الاستقصاء من حالة محفوظة.

locale
str

إعدادات محلية للإيصال. تتضمن اللغات المدعومة: en-US و en-AU و en-CA و en-GB و en-IN.

pages
list[str]

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

المرتجعات

مثيل LROPoller. استدعاء result() على كائن poller لإرجاع قائمة[RecognizedForm].

نوع الإرجاع

استثناءات

أمثلة

التعرف على حقول إيصال المبيعات من عنوان URL.


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

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

   form_recognizer_client = FormRecognizerClient(
       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 = form_recognizer_client.begin_recognize_receipts_from_url(receipt_url=url)
   receipts = poller.result()

   for idx, receipt in enumerate(receipts):
       print("--------Recognizing receipt #{}--------".format(idx+1))
       receipt_type = receipt.fields.get("ReceiptType")
       if receipt_type:
           print("Receipt Type: {} has confidence: {}".format(receipt_type.value, receipt_type.confidence))
       merchant_name = receipt.fields.get("MerchantName")
       if merchant_name:
           print("Merchant Name: {} has confidence: {}".format(merchant_name.value, merchant_name.confidence))
       transaction_date = receipt.fields.get("TransactionDate")
       if transaction_date:
           print("Transaction Date: {} has confidence: {}".format(transaction_date.value, transaction_date.confidence))
       if receipt.fields.get("Items"):
           print("Receipt items:")
           for idx, item in enumerate(receipt.fields.get("Items").value):
               print("...Item #{}".format(idx+1))
               item_name = item.value.get("Name")
               if item_name:
                   print("......Item Name: {} has confidence: {}".format(item_name.value, item_name.confidence))
               item_quantity = item.value.get("Quantity")
               if item_quantity:
                   print("......Item Quantity: {} has confidence: {}".format(item_quantity.value, item_quantity.confidence))
               item_price = item.value.get("Price")
               if item_price:
                   print("......Individual Item Price: {} has confidence: {}".format(item_price.value, item_price.confidence))
               item_total_price = item.value.get("TotalPrice")
               if item_total_price:
                   print("......Total Item Price: {} has confidence: {}".format(item_total_price.value, item_total_price.confidence))
       subtotal = receipt.fields.get("Subtotal")
       if subtotal:
           print("Subtotal: {} has confidence: {}".format(subtotal.value, subtotal.confidence))
       tax = receipt.fields.get("Tax")
       if tax:
           print("Tax: {} has confidence: {}".format(tax.value, tax.confidence))
       tip = receipt.fields.get("Tip")
       if tip:
           print("Tip: {} has confidence: {}".format(tip.value, tip.confidence))
       total = receipt.fields.get("Total")
       if total:
           print("Total: {} has confidence: {}".format(total.value, total.confidence))
       print("--------------------------------------")

close

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

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.

المرتجعات

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

نوع الإرجاع

استثناءات