Freigeben über


FormRecognizerClient Klasse

FormRecognizerClient extrahiert Informationen aus Formularen und Bildern in strukturierte Daten. Es ist die Schnittstelle, die für die Analyse mit vordefinierten Modellen (Belege, Visitenkarten, Rechnungen, Identitätsdokumente), das Erkennen von Inhalten/Layouts aus Formularen und die Analyse benutzerdefinierter Formulare aus trainierten Modellen verwendet werden kann. Es bietet verschiedene Methoden basierend auf Eingaben von einer URL und Eingaben aus einem Stream.

Hinweis

FormRecognizerClient sollte mit API-Versionen <=v2.1 verwendet werden.

Um API-Versionen 2022-08-31 und höher zu verwenden, instanziieren Sie einen DocumentAnalysisClient.

Vererbung
azure.ai.formrecognizer._form_base_client.FormRecognizerClientBase
FormRecognizerClient

Konstruktor

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

Parameter

endpoint
str
Erforderlich

Unterstützte Cognitive Services-Endpunkte (Protokoll und Hostname, z. B. ). https://westus2.api.cognitive.microsoft.com

credential
AzureKeyCredential oder TokenCredential
Erforderlich

Anmeldeinformationen, die der Client für die Herstellung einer Verbindung mit Azure benötigt Dies ist eine instance von AzureKeyCredential, wenn Sie einen API-Schlüssel oder tokenanmeldeinformationen von verwendenidentity.

api_version
str oder FormRecognizerApiVersion

Die API-Version des Diensts, der für Anforderungen verwendet werden soll. Standardmäßig wird die API-Version 2.1 verwendet. Die Einstellung auf eine ältere Version kann zu einer geringeren Featurekompatibilität führen. Um die neueste unterstützte API-Version und die neuesten unterstützten Features zu verwenden, instanziieren Sie stattdessen einen DocumentAnalysisClient.

Beispiele

Erstellen des FormRecognizerClients mit einem Endpunkt und API-Schlüssel.


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

Erstellen des FormRecognizerClients mit Tokenanmeldeinformationen.


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

Methoden

begin_recognize_business_cards

Extrahieren Sie Feldtext und semantische Werte aus einem bestimmten geschäftsspezifischen Karte. Das Eingabedokument muss einem der unterstützten Inhaltstypen entsprechen: "application/pdf", "image/jpeg", "image/png", "image/tiff" oder "image/bmp".

Weitere Informationen finden Sie hier in den Feldern eines Karte:https://aka.ms/formrecognizer/businesscardfields

Neu in Version 2.1: Die begin_recognize_business_cards-Clientmethode

begin_recognize_business_cards_from_url

Extrahieren Sie Feldtext und semantische Werte aus einem bestimmten geschäftsspezifischen Karte. Das Eingabedokument muss der Speicherort (URL) des zu analysierenden Karte sein.

Weitere Informationen finden Sie hier in den Feldern eines Karte:https://aka.ms/formrecognizer/businesscardfields

Neu in Version 2.1: Die begin_recognize_business_cards_from_url-Clientmethode

begin_recognize_content

Extrahieren Sie Text- und Inhalts-/Layoutinformationen aus einem bestimmten Dokument. Das Eingabedokument muss einem der unterstützten Inhaltstypen entsprechen: "application/pdf", "image/jpeg", "image/png", "image/tiff" oder "image/bmp".

Neu in Version 2.1: Seiten,Sprache und reading_order Schlüsselwort (keyword) Argumente und Unterstützung für Image-/bmp-Inhalte

begin_recognize_content_from_url

Extrahiert Text- und Layoutinformationen aus einem bestimmten Dokument Das Eingabedokument muss der Speicherort (URL) des zu analysierenden Dokuments sein.

Neu in Version 2.1: Seiten,Sprache und reading_order Schlüsselwort (keyword) Argumente und Unterstützung für Image-/bmp-Inhalte

begin_recognize_custom_forms

Analysieren sie ein benutzerdefiniertes Formular mit einem Modell, das mit oder ohne Bezeichnungen trainiert wurde. Das zu analysierende Formular sollte vom gleichen Typ sein wie die Formulare, die zum Trainieren des Modells verwendet wurden. Das Eingabedokument muss einen der unterstützten Inhaltstypen aufweisen: "application/pdf", "image/jpeg", "image/png", "image/tiff" oder "image/bmp".

begin_recognize_custom_forms_from_url

Analysieren sie ein benutzerdefiniertes Formular mit einem Modell, das mit oder ohne Bezeichnungen trainiert wurde. Das zu analysierende Formular sollte vom gleichen Typ sein wie die Formulare, die zum Trainieren des Modells verwendet wurden. Das Eingabedokument muss der Speicherort (URL) des zu analysierenden Dokuments sein.

begin_recognize_identity_documents

Extrahieren sie Feldtext und semantische Werte aus einem bestimmten Identitätsdokument. Das Eingabedokument muss einen der unterstützten Inhaltstypen aufweisen: "application/pdf", "image/jpeg", "image/png", "image/tiff" oder "image/bmp".

Die Felder in einem Identitätsdokument finden Sie hier: https://aka.ms/formrecognizer/iddocumentfields

Neu in Version 2.1: Die begin_recognize_identity_documents-Clientmethode

begin_recognize_identity_documents_from_url

Extrahieren sie Feldtext und semantische Werte aus einem bestimmten Identitätsdokument. Das Eingabedokument muss der Speicherort (URL) des zu analysierenden Identitätsdokuments sein.

Die Felder in einem Identitätsdokument finden Sie hier: https://aka.ms/formrecognizer/iddocumentfields

Neu in Version 2.1: Die begin_recognize_identity_documents_from_url-Clientmethode

begin_recognize_invoices

Extrahieren von Feldtext und semantischen Werten aus einer bestimmten Rechnung. Das Eingabedokument muss einen der unterstützten Inhaltstypen aufweisen: "application/pdf", "image/jpeg", "image/png", "image/tiff" oder "image/bmp".

Sehen Sie sich die Felder auf einer Rechnung hier an: https://aka.ms/formrecognizer/invoicefields

Neu in Version 2.1: Die begin_recognize_invoices Clientmethode

begin_recognize_invoices_from_url

Extrahieren von Feldtext und semantischen Werten aus einer bestimmten Rechnung. Das Eingabedokument muss der Speicherort (URL) der zu analysierenden Rechnung sein.

Sehen Sie sich felder auf einer Rechnung Karte hier an:https://aka.ms/formrecognizer/invoicefields

Neu in Version 2.1: Die begin_recognize_invoices_from_url-Clientmethode

begin_recognize_receipts

Extrahieren Sie Feldtext und semantische Werte aus einem bestimmten Verkaufsbeleg. Das Eingabedokument muss einem der unterstützten Inhaltstypen entsprechen: "application/pdf", "image/jpeg", "image/png", "image/tiff" oder "image/bmp".

Hier finden Sie Felder auf einem Beleg: https://aka.ms/formrecognizer/receiptfields

Neu in Version 2.1: Das Gebietsschema und die Seiten Schlüsselwort (keyword) Argumente und Unterstützung für Image/bmp-Inhalte

begin_recognize_receipts_from_url

Extrahieren Sie Feldtext und semantische Werte aus einem bestimmten Verkaufsbeleg. Das Eingabedokument muss der Speicherort (URL) des zu analysierenden Belegs sein.

Hier finden Sie Felder auf einem Beleg: https://aka.ms/formrecognizer/receiptfields

Neu in Version 2.1: Das Gebietsschema und die Seiten Schlüsselwort (keyword) Argumente und Unterstützung für Image/bmp-Inhalte

close

Schließen Sie die FormRecognizerClient Sitzung.

send_request

Führt eine Netzwerkanforderung mithilfe der vorhandenen Pipeline des Clients aus.

Die Anforderungs-URL kann relativ zur Basis-URL sein. Sofern nicht anders angegeben, ist die für die Anforderung verwendete Dienst-API-Version mit der des Clients identisch. Das Überschreiben der konfigurierten API-Version des Clients in relativer URL wird auf dem Client mit API-Version 2022-08-31 und höher unterstützt. Überschreiben in absoluter URL, die auf dem Client mit einer beliebigen API-Version unterstützt wird. Diese Methode löst nicht aus, wenn die Antwort ein Fehler ist. Um eine Ausnahme auszulösen, rufen Sie raise_for_status() für das zurückgegebene Antwortobjekt auf. Weitere Informationen zum Senden benutzerdefinierter Anforderungen mit dieser Methode finden Sie unter https://aka.ms/azsdk/dpcodegen/python/send_request.

begin_recognize_business_cards

Extrahieren Sie Feldtext und semantische Werte aus einem bestimmten geschäftsspezifischen Karte. Das Eingabedokument muss einem der unterstützten Inhaltstypen entsprechen: "application/pdf", "image/jpeg", "image/png", "image/tiff" oder "image/bmp".

Weitere Informationen finden Sie hier in den Feldern eines Karte:https://aka.ms/formrecognizer/businesscardfields

Neu in Version 2.1: Die begin_recognize_business_cards-Clientmethode

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

Parameter

business_card
bytes oder IO[bytes]
Erforderlich

JPEG-, PNG-, PDF-, TIFF- oder BMP-Dateidatenstrom oder Bytes.

locale
str

Gebietsschema des Geschäfts Karte. Zu den unterstützten Gebietsschemas gehören: en-US, en-AU, en-CA, en-GB und en-IN.

include_field_elements
bool

Gibt an, ob alle Zeilen pro Seite und Feldelemente wie Zeilen, Wörter und Auswahlzeichen für jedes Formularfeld eingeschlossen werden sollen oder nicht.

pages
list[str]

Benutzerdefinierte Seitenzahlen für mehrseitige Dokumente (PDF/TIFF). Geben Sie die Seitenzahlen und/oder Seitenbereiche ein, die Sie im Ergebnis abrufen möchten. Verwenden Sie für einen Bereich von Seiten einen Bindestrich, z. B. pages=["1-3", "5-6"]. Trennen Sie jede Seitenzahl oder jeden Bereich durch ein Komma.

content_type
str oder FormContentType

Inhaltstyp des Textkörpers, der an die API gesendet wird. Inhaltstyp wird automatisch erkannt, kann aber überschrieben werden, indem dieses Schlüsselwort (keyword)-Argument übergeben wird. Optionen finden Sie unter FormContentType.

continuation_token
str

Ein Fortsetzungstoken zum Neustarten eines Pollers aus einem gespeicherten Zustand.

Gibt zurück

Ein instance eines LROPollers. Rufen Sie result() für das Pollerobjekt auf, um eine liste[RecognizedForm] zurückzugeben.

Rückgabetyp

Ausnahmen

Beispiele

Erkennen von Visitenkarten aus einer Datei.


   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

Extrahieren Sie Feldtext und semantische Werte aus einem bestimmten geschäftsspezifischen Karte. Das Eingabedokument muss der Speicherort (URL) des zu analysierenden Karte sein.

Weitere Informationen finden Sie hier in den Feldern eines Karte:https://aka.ms/formrecognizer/businesscardfields

Neu in Version 2.1: Die begin_recognize_business_cards_from_url-Clientmethode

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

Parameter

business_card_url
str
Erforderlich

Die URL des zu analysierenden Unternehmens Karte. Die Eingabe muss eine gültige, codierte URL eines der unterstützten Formate sein: JPEG, PNG, PDF, TIFF oder BMP.

locale
str

Gebietsschema des Geschäfts Karte. Zu den unterstützten Gebietsschemas gehören: en-US, en-AU, en-CA, en-GB und en-IN.

include_field_elements
bool

Gibt an, ob alle Zeilen pro Seite und Feldelemente wie Zeilen, Wörter und Auswahlzeichen für jedes Formularfeld eingeschlossen werden sollen oder nicht.

pages
list[str]

Benutzerdefinierte Seitenzahlen für mehrseitige Dokumente (PDF/TIFF). Geben Sie die Seitenzahlen und/oder Seitenbereiche ein, die Sie im Ergebnis abrufen möchten. Verwenden Sie für einen Bereich von Seiten einen Bindestrich, z. B. pages=["1-3", "5-6"]. Trennen Sie jede Seitenzahl oder jeden Bereich durch ein Komma.

continuation_token
str

Ein Fortsetzungstoken zum Neustarten eines Pollers aus einem gespeicherten Zustand.

Gibt zurück

Ein instance eines LROPollers. Rufen Sie result() für das Pollerobjekt auf, um eine liste[RecognizedForm] zurückzugeben.

Rückgabetyp

Ausnahmen

begin_recognize_content

Extrahieren Sie Text- und Inhalts-/Layoutinformationen aus einem bestimmten Dokument. Das Eingabedokument muss einem der unterstützten Inhaltstypen entsprechen: "application/pdf", "image/jpeg", "image/png", "image/tiff" oder "image/bmp".

Neu in Version 2.1: Seiten,Sprache und reading_order Schlüsselwort (keyword) Argumente und Unterstützung für Image-/bmp-Inhalte

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

Parameter

form
bytes oder IO[bytes]
Erforderlich

JPEG-, PNG-, PDF-, TIFF- oder BMP-Dateidatenstrom oder Bytes.

pages
list[str]

Benutzerdefinierte Seitenzahlen für mehrseitige Dokumente (PDF/TIFF). Geben Sie die Seitenzahlen und/oder Seitenbereiche ein, die Sie im Ergebnis abrufen möchten. Verwenden Sie für einen Bereich von Seiten einen Bindestrich, z. B. pages=["1-3", "5-6"]. Trennen Sie jede Seitenzahl oder jeden Bereich durch ein Komma.

language
str

Der BCP-47-Sprachcode des Texts im Dokument. Weitere Informationen finden Sie unter Unterstützte Sprachcodes: https://docs.microsoft.com/azure/cognitive-services/form-recognizer/language-support. Inhalt unterstützt die automatische Spracherkennung und mehrsprachige Dokumente. Stellen Sie daher nur einen Sprachcode bereit, wenn Sie erzwingen möchten, dass das Dokumentierte als bestimmte Sprache verarbeitet wird.

reading_order
str

Lesereihenfolgealgorithmus, um die zurückgegebenen Textzeilen zu sortieren. Zu den unterstützten Lesereihenfolgen gehören: basic (Standard), natural. Legen Sie "basic" fest, um Zeilen von links nach rechts und von oben nach unten zu sortieren, obwohl in einigen Fällen die Nähe mit höherer Priorität behandelt wird. Legen Sie "natürlich" fest, um Zeilen mithilfe von Positionsinformationen zu sortieren, um zeilen in der Nähe zusammenzuhalten.

content_type
str oder FormContentType

Inhaltstyp des Textkörpers, der an die API gesendet wird. Inhaltstyp wird automatisch erkannt, kann aber überschrieben werden, indem dieses Schlüsselwort (keyword)-Argument übergeben wird. Optionen finden Sie unter FormContentType.

continuation_token
str

Ein Fortsetzungstoken zum Neustarten eines Pollers aus einem gespeicherten Zustand.

Gibt zurück

Ein instance eines LROPollers. Rufen Sie result() für das Pollerobjekt auf, um eine liste[FormPage] zurückzugeben.

Rückgabetyp

Ausnahmen

Beispiele

Erkennen von Text- und Inhalts-/Layoutinformationen aus einem Formular.


   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

Extrahiert Text- und Layoutinformationen aus einem bestimmten Dokument Das Eingabedokument muss der Speicherort (URL) des zu analysierenden Dokuments sein.

Neu in Version 2.1: Seiten,Sprache und reading_order Schlüsselwort (keyword) Argumente und Unterstützung für Image-/bmp-Inhalte

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

Parameter

form_url
str
Erforderlich

Die URL des zu analysierenden Formulars. Die Eingabe muss eine gültige, codierte URL eines der unterstützten Formate sein: JPEG, PNG, PDF, TIFF oder BMP.

pages
list[str]

Benutzerdefinierte Seitenzahlen für mehrseitige Dokumente (PDF/TIFF). Geben Sie die Seitenzahlen und/oder Seitenbereiche ein, die Sie im Ergebnis abrufen möchten. Verwenden Sie für einen Bereich von Seiten einen Bindestrich, z. B. pages=["1-3", "5-6"]. Trennen Sie jede Seitenzahl oder jeden Bereich durch ein Komma.

language
str

Der BCP-47-Sprachcode des Texts im Dokument. Weitere Informationen finden Sie unter Unterstützte Sprachcodes: https://docs.microsoft.com/azure/cognitive-services/form-recognizer/language-support. Inhalt unterstützt die automatische Spracherkennung und mehrsprachige Dokumente. Stellen Sie daher nur einen Sprachcode bereit, wenn Sie erzwingen möchten, dass das Dokumentierte als bestimmte Sprache verarbeitet wird.

reading_order
str

Lesereihenfolgealgorithmus, um die zurückgegebenen Textzeilen zu sortieren. Zu den unterstützten Lesereihenfolgen gehören: basic (Standard), natural. Legen Sie "basic" fest, um Zeilen von links nach rechts und von oben nach unten zu sortieren, obwohl in einigen Fällen die Nähe mit höherer Priorität behandelt wird. Legen Sie "natürlich" fest, um Zeilen mithilfe von Positionsinformationen zu sortieren, um zeilen in der Nähe zusammenzuhalten.

continuation_token
str

Ein Fortsetzungstoken zum Neustarten eines Pollers aus einem gespeicherten Zustand.

Gibt zurück

Ein instance eines LROPollers. Rufen Sie result() für das Pollerobjekt auf, um eine liste[FormPage] zurückzugeben.

Rückgabetyp

Ausnahmen

begin_recognize_custom_forms

Analysieren sie ein benutzerdefiniertes Formular mit einem Modell, das mit oder ohne Bezeichnungen trainiert wurde. Das zu analysierende Formular sollte vom gleichen Typ sein wie die Formulare, die zum Trainieren des Modells verwendet wurden. Das Eingabedokument muss einen der unterstützten Inhaltstypen aufweisen: "application/pdf", "image/jpeg", "image/png", "image/tiff" oder "image/bmp".

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

Parameter

model_id
str
Erforderlich

Benutzerdefinierte Modellbezeichner.

form
bytes oder IO[bytes]
Erforderlich

JPEG-, PNG-, PDF-, TIFF- oder BMP-Dateidatenstrom oder -bytes.

include_field_elements
bool

Gibt an, ob alle Zeilen pro Seite und Feldelemente wie Zeilen, Wörter und Auswahlzeichen für jedes Formularfeld eingeschlossen werden sollen.

content_type
str oder FormContentType

Inhaltstyp des an die API gesendeten Texts. Der Inhaltstyp wird automatisch erkannt, kann aber überschrieben werden, indem dieses Schlüsselwort (keyword)-Argument übergeben wird. Optionen finden Sie unter FormContentType.

pages
list[str]

Benutzerdefinierte Seitenzahlen für mehrseitige Dokumente (PDF/TIFF). Geben Sie die Seitenzahlen und/oder Seitenbereiche ein, die Sie im Ergebnis abrufen möchten. Verwenden Sie für einen Seitenbereich einen Bindestrich, z. B. pages=["1-3", "5-6"]. Trennen Sie jede Seitenzahl oder jeden Bereich durch ein Komma.

continuation_token
str

Ein Fortsetzungstoken zum Neustarten eines Abrufs aus einem gespeicherten Zustand.

Gibt zurück

Eine instance eines LROPollers. Rufen Sie result() für das Poller-Objekt auf, um eine Liste[RecognizedForm] zurückzugeben.

Rückgabetyp

Ausnahmen

Beispiele

Erkennen von Feldern und Werten aus einem benutzerdefinierten Formular.


   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

Analysieren sie ein benutzerdefiniertes Formular mit einem Modell, das mit oder ohne Bezeichnungen trainiert wurde. Das zu analysierende Formular sollte vom gleichen Typ sein wie die Formulare, die zum Trainieren des Modells verwendet wurden. Das Eingabedokument muss der Speicherort (URL) des zu analysierenden Dokuments sein.

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

Parameter

model_id
str
Erforderlich

Benutzerdefinierte Modellbezeichner.

form_url
str
Erforderlich

Die URL des zu analysierenden Formulars. Die Eingabe muss eine gültige, codierte URL eines der unterstützten Formate sein: JPEG, PNG, PDF, TIFF oder BMP.

include_field_elements
bool

Gibt an, ob alle Zeilen pro Seite und Feldelemente wie Zeilen, Wörter und Auswahlzeichen für jedes Formularfeld eingeschlossen werden sollen.

pages
list[str]

Benutzerdefinierte Seitenzahlen für mehrseitige Dokumente (PDF/TIFF). Geben Sie die Seitenzahlen und/oder Seitenbereiche ein, die Sie im Ergebnis abrufen möchten. Verwenden Sie für einen Seitenbereich einen Bindestrich, z. B. pages=["1-3", "5-6"]. Trennen Sie jede Seitenzahl oder jeden Bereich durch ein Komma.

continuation_token
str

Ein Fortsetzungstoken zum Neustarten eines Abrufs aus einem gespeicherten Zustand.

Gibt zurück

Eine instance eines LROPollers. Rufen Sie result() für das Poller-Objekt auf, um eine Liste[RecognizedForm] zurückzugeben.

Rückgabetyp

Ausnahmen

begin_recognize_identity_documents

Extrahieren sie Feldtext und semantische Werte aus einem bestimmten Identitätsdokument. Das Eingabedokument muss einen der unterstützten Inhaltstypen aufweisen: "application/pdf", "image/jpeg", "image/png", "image/tiff" oder "image/bmp".

Die Felder in einem Identitätsdokument finden Sie hier: https://aka.ms/formrecognizer/iddocumentfields

Neu in Version 2.1: Die begin_recognize_identity_documents-Clientmethode

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

Parameter

identity_document
bytes oder IO[bytes]
Erforderlich

JPEG-, PNG-, PDF-, TIFF- oder BMP-Dateidatenstrom oder -bytes.

include_field_elements
bool

Gibt an, ob alle Zeilen pro Seite und Feldelemente wie Zeilen, Wörter und Auswahlzeichen für jedes Formularfeld eingeschlossen werden sollen.

content_type
str oder FormContentType

Inhaltstyp des an die API gesendeten Texts. Der Inhaltstyp wird automatisch erkannt, kann aber überschrieben werden, indem dieses Schlüsselwort (keyword)-Argument übergeben wird. Optionen finden Sie unter FormContentType.

continuation_token
str

Ein Fortsetzungstoken zum Neustarten eines Abrufs aus einem gespeicherten Zustand.

pages
list[str]

Benutzerdefinierte Seitenzahlen für mehrseitige Dokumente (PDF/TIFF). Geben Sie die Seitenzahlen und/oder Seitenbereiche ein, die Sie im Ergebnis abrufen möchten. Verwenden Sie für einen Seitenbereich einen Bindestrich, z. B. pages=["1-3", "5-6"]. Trennen Sie jede Seitenzahl oder jeden Bereich durch ein Komma.

Gibt zurück

Eine instance eines LROPollers. Rufen Sie result() für das Poller-Objekt auf, um eine Liste[RecognizedForm] zurückzugeben.

Rückgabetyp

Ausnahmen

Beispiele

Erkennen von Identitätsdokumentfeldern.


   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

Extrahieren sie Feldtext und semantische Werte aus einem bestimmten Identitätsdokument. Das Eingabedokument muss der Speicherort (URL) des zu analysierenden Identitätsdokuments sein.

Die Felder in einem Identitätsdokument finden Sie hier: https://aka.ms/formrecognizer/iddocumentfields

Neu in Version 2.1: Die begin_recognize_identity_documents_from_url-Clientmethode

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

Parameter

identity_document_url
str
Erforderlich

Die URL des zu analysierenden Identitätsdokuments. Die Eingabe muss eine gültige, codierte URL eines der unterstützten Formate sein: JPEG, PNG, PDF, TIFF oder BMP.

include_field_elements
bool

Gibt an, ob alle Zeilen pro Seite und Feldelemente wie Zeilen, Wörter und Auswahlzeichen für jedes Formularfeld eingeschlossen werden sollen.

continuation_token
str

Ein Fortsetzungstoken zum Neustarten eines Abrufs aus einem gespeicherten Zustand.

pages
list[str]

Benutzerdefinierte Seitenzahlen für mehrseitige Dokumente (PDF/TIFF). Geben Sie die Seitenzahlen und/oder Seitenbereiche ein, die Sie im Ergebnis abrufen möchten. Verwenden Sie für einen Seitenbereich einen Bindestrich, z. B. pages=["1-3", "5-6"]. Trennen Sie jede Seitenzahl oder jeden Bereich durch ein Komma.

Gibt zurück

Eine instance eines LROPollers. Rufen Sie result() für das Poller-Objekt auf, um eine Liste[RecognizedForm] zurückzugeben.

Rückgabetyp

Ausnahmen

begin_recognize_invoices

Extrahieren von Feldtext und semantischen Werten aus einer bestimmten Rechnung. Das Eingabedokument muss einen der unterstützten Inhaltstypen aufweisen: "application/pdf", "image/jpeg", "image/png", "image/tiff" oder "image/bmp".

Sehen Sie sich die Felder auf einer Rechnung hier an: https://aka.ms/formrecognizer/invoicefields

Neu in Version 2.1: Die begin_recognize_invoices Clientmethode

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

Parameter

invoice
bytes oder IO[bytes]
Erforderlich

JPEG-, PNG-, PDF-, TIFF- oder BMP-Dateidatenstrom oder -bytes.

locale
str

Gebietsschema der Rechnung. Unterstützte Gebietsschemas sind: en-US

include_field_elements
bool

Gibt an, ob alle Zeilen pro Seite und Feldelemente wie Zeilen, Wörter und Auswahlzeichen für jedes Formularfeld eingeschlossen werden sollen.

pages
list[str]

Benutzerdefinierte Seitenzahlen für mehrseitige Dokumente (PDF/TIFF). Geben Sie die Seitenzahlen und/oder Seitenbereiche ein, die Sie im Ergebnis abrufen möchten. Verwenden Sie für einen Seitenbereich einen Bindestrich, z. B. pages=["1-3", "5-6"]. Trennen Sie jede Seitenzahl oder jeden Bereich durch ein Komma.

content_type
str oder FormContentType

Inhaltstyp des an die API gesendeten Texts. Der Inhaltstyp wird automatisch erkannt, kann aber überschrieben werden, indem dieses Schlüsselwort (keyword)-Argument übergeben wird. Optionen finden Sie unter FormContentType.

continuation_token
str

Ein Fortsetzungstoken zum Neustarten eines Abrufs aus einem gespeicherten Zustand.

Gibt zurück

Eine instance eines LROPollers. Rufen Sie result() für das Poller-Objekt auf, um eine Liste[RecognizedForm] zurückzugeben.

Rückgabetyp

Ausnahmen

Beispiele

Erkennen von Rechnungen aus einer Datei.


   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

Extrahieren von Feldtext und semantischen Werten aus einer bestimmten Rechnung. Das Eingabedokument muss der Speicherort (URL) der zu analysierenden Rechnung sein.

Sehen Sie sich felder auf einer Rechnung Karte hier an:https://aka.ms/formrecognizer/invoicefields

Neu in Version 2.1: Die begin_recognize_invoices_from_url-Clientmethode

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

Parameter

invoice_url
str
Erforderlich

Die URL der zu analysierenden Rechnung. Die Eingabe muss eine gültige, codierte URL eines der unterstützten Formate sein: JPEG, PNG, PDF, TIFF oder BMP.

locale
str

Gebietsschema der Rechnung. Unterstützte Gebietsschemas sind: en-US

include_field_elements
bool

Gibt an, ob alle Zeilen pro Seite und Feldelemente wie Zeilen, Wörter und Auswahlzeichen für jedes Formularfeld eingeschlossen werden sollen.

pages
list[str]

Benutzerdefinierte Seitenzahlen für mehrseitige Dokumente (PDF/TIFF). Geben Sie die Seitenzahlen und/oder Seitenbereiche ein, die Sie im Ergebnis abrufen möchten. Verwenden Sie für einen Seitenbereich einen Bindestrich, z. B. pages=["1-3", "5-6"]. Trennen Sie jede Seitenzahl oder jeden Bereich durch ein Komma.

continuation_token
str

Ein Fortsetzungstoken zum Neustarten eines Abrufs aus einem gespeicherten Zustand.

Gibt zurück

Eine instance eines LROPollers. Rufen Sie result() für das Poller-Objekt auf, um eine Liste[RecognizedForm] zurückzugeben.

Rückgabetyp

Ausnahmen

begin_recognize_receipts

Extrahieren Sie Feldtext und semantische Werte aus einem bestimmten Verkaufsbeleg. Das Eingabedokument muss einem der unterstützten Inhaltstypen entsprechen: "application/pdf", "image/jpeg", "image/png", "image/tiff" oder "image/bmp".

Hier finden Sie Felder auf einem Beleg: https://aka.ms/formrecognizer/receiptfields

Neu in Version 2.1: Das Gebietsschema und die Seiten Schlüsselwort (keyword) Argumente und Unterstützung für Image/bmp-Inhalte

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

Parameter

receipt
bytes oder IO[bytes]
Erforderlich

JPEG-, PNG-, PDF-, TIFF- oder BMP-Dateidatenstrom oder -bytes.

include_field_elements
bool

Gibt an, ob alle Zeilen pro Seite und Feldelemente wie Zeilen, Wörter und Auswahlzeichen für jedes Formularfeld eingeschlossen werden sollen.

content_type
str oder FormContentType

Inhaltstyp des an die API gesendeten Texts. Der Inhaltstyp wird automatisch erkannt, kann aber überschrieben werden, indem dieses Schlüsselwort (keyword)-Argument übergeben wird. Optionen finden Sie unter FormContentType.

continuation_token
str

Ein Fortsetzungstoken zum Neustarten eines Pollers aus einem gespeicherten Zustand.

locale
str

Gebietsschema des Empfangs. Zu den unterstützten Gebietsschemas gehören: en-US, en-AU, en-CA, en-GB und en-IN.

pages
list[str]

Benutzerdefinierte Seitenzahlen für mehrseitige Dokumente (PDF/TIFF). Geben Sie die Seitenzahlen und/oder Seitenbereiche ein, die Sie im Ergebnis abrufen möchten. Verwenden Sie für einen Bereich von Seiten einen Bindestrich, z. B. pages=["1-3", "5-6"]. Trennen Sie jede Seitenzahl oder jeden Bereich durch ein Komma.

Gibt zurück

Ein instance eines LROPollers. Rufen Sie result() für das Pollerobjekt auf, um eine liste[RecognizedForm] zurückzugeben.

Rückgabetyp

Ausnahmen

Beispiele

Erkennen von Verkaufsbestätigungsfeldern.


   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

Extrahieren Sie Feldtext und semantische Werte aus einem bestimmten Verkaufsbeleg. Das Eingabedokument muss der Speicherort (URL) des zu analysierenden Belegs sein.

Hier finden Sie Felder auf einem Beleg: https://aka.ms/formrecognizer/receiptfields

Neu in Version 2.1: Das Gebietsschema und die Seiten Schlüsselwort (keyword) Argumente und Unterstützung für Image/bmp-Inhalte

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

Parameter

receipt_url
str
Erforderlich

Die URL des zu analysierenden Empfangs. Die Eingabe muss eine gültige, codierte URL eines der unterstützten Formate sein: JPEG, PNG, PDF, TIFF oder BMP.

include_field_elements
bool

Gibt an, ob alle Zeilen pro Seite und Feldelemente wie Zeilen, Wörter und Auswahlzeichen für jedes Formularfeld eingeschlossen werden sollen oder nicht.

continuation_token
str

Ein Fortsetzungstoken zum Neustarten eines Pollers aus einem gespeicherten Zustand.

locale
str

Gebietsschema des Empfangs. Zu den unterstützten Gebietsschemas gehören: en-US, en-AU, en-CA, en-GB und en-IN.

pages
list[str]

Benutzerdefinierte Seitenzahlen für mehrseitige Dokumente (PDF/TIFF). Geben Sie die Seitenzahlen und/oder Seitenbereiche ein, die Sie im Ergebnis abrufen möchten. Verwenden Sie für einen Bereich von Seiten einen Bindestrich, z. B. pages=["1-3", "5-6"]. Trennen Sie jede Seitenzahl oder jeden Bereich durch ein Komma.

Gibt zurück

Ein instance eines LROPollers. Rufen Sie result() für das Pollerobjekt auf, um eine liste[RecognizedForm] zurückzugeben.

Rückgabetyp

Ausnahmen

Beispiele

Erkennen von Verkaufsbelegfeldern über eine 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

Schließen Sie die FormRecognizerClient Sitzung.

close() -> None

Ausnahmen

send_request

Führt eine Netzwerkanforderung mithilfe der vorhandenen Pipeline des Clients aus.

Die Anforderungs-URL kann relativ zur Basis-URL sein. Sofern nicht anders angegeben, ist die für die Anforderung verwendete Dienst-API-Version mit der des Clients identisch. Das Überschreiben der konfigurierten API-Version des Clients in relativer URL wird auf dem Client mit API-Version 2022-08-31 und höher unterstützt. Überschreiben in absoluter URL, die auf dem Client mit einer beliebigen API-Version unterstützt wird. Diese Methode löst nicht aus, wenn die Antwort ein Fehler ist. Um eine Ausnahme auszulösen, rufen Sie raise_for_status() für das zurückgegebene Antwortobjekt auf. Weitere Informationen zum Senden benutzerdefinierter Anforderungen mit dieser Methode finden Sie unter https://aka.ms/azsdk/dpcodegen/python/send_request.

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

Parameter

request
HttpRequest
Erforderlich

Die Netzwerkanforderung, die Sie stellen möchten.

stream
bool

Gibt an, ob die Antwortnutzlast gestreamt wird. Der Standardwert lautet „False“.

Gibt zurück

Die Antwort Ihres Netzwerkaufrufs. Führt keine Fehlerbehandlung für Ihre Antwort durch.

Rückgabetyp

Ausnahmen