Udostępnij za pośrednictwem


FormRecognizerClient Klasa

Obiekt FormRecognizerClient wyodrębnia informacje z formularzy i obrazów do danych ustrukturyzowanych. Jest to interfejs używany do analizowania za pomocą wstępnie utworzonych modeli (paragonów, wizytówek, faktur, dokumentów tożsamości), rozpoznawania zawartości/układu z formularzy i analizowania formularzy niestandardowych z wytrenowanych modeli. Udostępnia różne metody na podstawie danych wejściowych z adresu URL i danych wejściowych strumienia.

Uwaga

Parametr FormRecognizerClient powinien być używany z wersjami <interfejsu API =v2.1.

Aby użyć interfejsu API w wersji 2022-08-31 i nowszej, utwórz wystąpienie elementu DocumentAnalysisClient.

Dziedziczenie
azure.ai.formrecognizer._form_base_client.FormRecognizerClientBase
FormRecognizerClient

Konstruktor

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

Parametry

endpoint
str
Wymagane

Obsługiwane punkty końcowe usług Cognitive Services (protokół i nazwa hosta, na przykład: https://westus2.api.cognitive.microsoft.com).

credential
AzureKeyCredential lub TokenCredential
Wymagane

Poświadczenia wymagane do nawiązania połączenia z platformą Azure przez klienta. Jest to wystąpienie obiektu AzureKeyCredential, jeśli używasz klucza interfejsu API lub poświadczeń tokenu z usługi identity.

api_version
str lub FormRecognizerApiVersion

Wersja interfejsu API usługi do użycia dla żądań. Domyślnie jest to interfejs API w wersji 2.1. Ustawienie starszej wersji może spowodować zmniejszenie zgodności funkcji. Aby użyć najnowszej obsługiwanej wersji interfejsu API i funkcji, zamiast tego utwórz wystąpienie klasy DocumentAnalysisClient.

Przykłady

Tworzenie obiektu FormRecognizerClient przy użyciu punktu końcowego i klucza interfejsu 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))

Tworzenie obiektu FormRecognizerClient przy użyciu poświadczeń tokenu.


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

Metody

begin_recognize_business_cards

Wyodrębnij tekst pola i wartości semantyczne z danej wizytówki. Dokument wejściowy musi być jednym z obsługiwanych typów zawartości — "application/pdf", "image/jpeg", "image/png", "image/tiff" lub "image/bmp".

Zobacz pola znalezione na wizytówce tutaj: https://aka.ms/formrecognizer/businesscardfields

Nowość w wersji 2.1: metoda klienta begin_recognize_business_cards

begin_recognize_business_cards_from_url

Wyodrębnij tekst pola i wartości semantyczne z danej wizytówki. Dokument wejściowy musi być lokalizacją (adres URL) karty do przeanalizowania.

Zobacz pola znalezione na wizytówce tutaj: https://aka.ms/formrecognizer/businesscardfields

Nowość w wersji 2.1: metoda klienta begin_recognize_business_cards_from_url

begin_recognize_content

Wyodrębnianie informacji o tekście i zawartości/układzie z danego dokumentu. Dokument wejściowy musi być jednym z obsługiwanych typów zawartości — "application/pdf", "image/jpeg", "image/png", "image/tiff" lub "image/bmp".

Nowość w wersji 2.1: strony, język i reading_order argumenty słów kluczowych oraz obsługa zawartości obrazu/bmp

begin_recognize_content_from_url

Wyodrębnianie informacji o tekście i układzie z danego dokumentu. Dokument wejściowy musi być lokalizacją (adres URL) dokumentu do przeanalizowania.

Nowość w wersji 2.1: strony, język i reading_order argumenty słów kluczowych oraz obsługa zawartości obrazu/bmp

begin_recognize_custom_forms

Analizowanie formularza niestandardowego przy użyciu modelu wytrenowanego z etykietami lub bez. Formularz do analizy powinien być tego samego typu co formularze używane do trenowania modelu. Dokument wejściowy musi być jednym z obsługiwanych typów zawartości — "application/pdf", "image/jpeg", "image/png", "image/tiff" lub "image/bmp".

begin_recognize_custom_forms_from_url

Analizowanie formularza niestandardowego przy użyciu modelu wytrenowanego z etykietami lub bez. Formularz do analizy powinien być tego samego typu co formularze używane do trenowania modelu. Dokument wejściowy musi być lokalizacją (adres URL) dokumentu do przeanalizowania.

begin_recognize_identity_documents

Wyodrębnij tekst pola i wartości semantyczne z danego dokumentu tożsamości. Dokument wejściowy musi być jednym z obsługiwanych typów zawartości — "application/pdf", "image/jpeg", "image/png", "image/tiff" lub "image/bmp".

Zobacz pola znalezione w dokumencie tożsamości tutaj: https://aka.ms/formrecognizer/iddocumentfields

Nowość w wersji 2.1: metoda klienta begin_recognize_identity_documents

begin_recognize_identity_documents_from_url

Wyodrębnij tekst pola i wartości semantyczne z danego dokumentu tożsamości. Dokument wejściowy musi być lokalizacją (adres URL) dokumentu tożsamości do przeanalizowania.

Zobacz pola znalezione w dokumencie tożsamości tutaj: https://aka.ms/formrecognizer/iddocumentfields

Nowość w wersji 2.1: metoda klienta begin_recognize_identity_documents_from_url

begin_recognize_invoices

Wyodrębnij tekst pola i wartości semantyczne z danej faktury. Dokument wejściowy musi być jednym z obsługiwanych typów zawartości — "application/pdf", "image/jpeg", "image/png", "image/tiff" lub "image/bmp".

Zobacz pola znalezione na fakturze tutaj: https://aka.ms/formrecognizer/invoicefields

Nowość w wersji 2.1: metoda klienta begin_recognize_invoices

begin_recognize_invoices_from_url

Wyodrębnij tekst pola i wartości semantyczne z danej faktury. Dokument wejściowy musi być lokalizacją (adresem URL) faktury do przeanalizowania.

Zobacz pola znalezione na karcie faktury tutaj: https://aka.ms/formrecognizer/invoicefields

Nowość w wersji 2.1: metoda klienta begin_recognize_invoices_from_url

begin_recognize_receipts

Wyodrębnij tekst pola i wartości semantyczne z danego paragonu sprzedaży. Dokument wejściowy musi być jednym z obsługiwanych typów zawartości — "application/pdf", "image/jpeg", "image/png", "image/tiff" lub "image/bmp".

Zobacz pola znalezione na paragonie tutaj: https://aka.ms/formrecognizer/receiptfields

Nowość w wersji 2.1: argumenty słów kluczowych ustawień regionalnych i stron oraz obsługa zawartości obrazu/bmp

begin_recognize_receipts_from_url

Wyodrębnij tekst pola i wartości semantyczne z danego paragonu sprzedaży. Dokument wejściowy musi być lokalizacją (adresem URL) potwierdzenia do przeanalizowania.

Zobacz pola znalezione na paragonie tutaj: https://aka.ms/formrecognizer/receiptfields

Nowość w wersji 2.1: argumenty słów kluczowych ustawień regionalnych i stron oraz obsługa zawartości obrazu/bmp

close

Zamknij sesję FormRecognizerClient .

send_request

Uruchamia żądanie sieciowe przy użyciu istniejącego potoku klienta.

Adres URL żądania może być względny dla podstawowego adresu URL. Wersja interfejsu API usługi używana dla żądania jest taka sama jak wersja klienta, chyba że określono inaczej. Zastępowanie skonfigurowanej wersji interfejsu API klienta w względnym adresie URL jest obsługiwane na kliencie z interfejsem API w wersji 2022-08-31 lub nowszej. Zastępowanie bezwzględnego adresu URL obsługiwanego na kliencie z dowolną wersją interfejsu API. Ta metoda nie zgłasza się, jeśli odpowiedź jest błędem; aby zgłosić wyjątek, wywołaj metodę raise_for_status() dla zwróconego obiektu odpowiedzi. Aby uzyskać więcej informacji na temat wysyłania żądań niestandardowych za pomocą tej metody, zobacz https://aka.ms/azsdk/dpcodegen/python/send_request.

begin_recognize_business_cards

Wyodrębnij tekst pola i wartości semantyczne z danej wizytówki. Dokument wejściowy musi być jednym z obsługiwanych typów zawartości — "application/pdf", "image/jpeg", "image/png", "image/tiff" lub "image/bmp".

Zobacz pola znalezione na wizytówce tutaj: https://aka.ms/formrecognizer/businesscardfields

Nowość w wersji 2.1: metoda klienta begin_recognize_business_cards

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

Parametry

business_card
bytes lub IO[bytes]
Wymagane

Strumień lub bajty typu JPEG, PNG, PDF, TIFF lub BMP.

locale
str

Ustawienia regionalne wizytówki. Obsługiwane ustawienia regionalne to: en-US, en-AU, en-CA, en-GB i en-IN.

include_field_elements
bool

Określa, czy mają być uwzględniane wszystkie wiersze na elementy strony i pola, takie jak wiersze, wyrazy i znaczniki zaznaczenia dla każdego pola formularza.

pages
list[str]

Niestandardowe numery stron dla dokumentów wielostronicowych (PDF/TIFF). Wprowadź numery stron i/lub zakresy stron, które chcesz uzyskać w wyniku. W przypadku zakresu stron użyj łącznika, takiego jak pages=["1-3", "5-6"]. Oddziel każdy numer strony lub zakres przecinkiem.

content_type
str lub FormContentType

Typ zawartości treści wysyłanej do interfejsu API. Typ zawartości jest wykrywany automatycznie, ale można go przesłonić, przekazując ten argument słowa kluczowego. Aby uzyskać informacje o opcjach, zobacz FormContentType.

continuation_token
str

Token kontynuacji w celu ponownego uruchomienia bazy danych poller ze stanu zapisanego.

Zwraca

Wystąpienie LROPoller. Wywołaj metodę result() obiektu poller, aby zwrócić listę[RecognizedForm].

Typ zwracany

Wyjątki

Przykłady

Rozpoznawanie wizytówek z pliku.


   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

Wyodrębnij tekst pola i wartości semantyczne z danej wizytówki. Dokument wejściowy musi być lokalizacją (adres URL) karty do przeanalizowania.

Zobacz pola znalezione na wizytówce tutaj: https://aka.ms/formrecognizer/businesscardfields

Nowość w wersji 2.1: metoda klienta begin_recognize_business_cards_from_url

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

Parametry

business_card_url
str
Wymagane

Adres URL wizytówki do przeanalizowania. Dane wejściowe muszą być prawidłowym, zakodowanym adresem URL jednego z obsługiwanych formatów: JPEG, PNG, PDF, TIFF lub BMP.

locale
str

Ustawienia regionalne wizytówki. Obsługiwane ustawienia regionalne to: en-US, en-AU, en-CA, en-GB i en-IN.

include_field_elements
bool

Określa, czy mają być uwzględniane wszystkie wiersze na elementy strony i pola, takie jak wiersze, wyrazy i znaczniki zaznaczenia dla każdego pola formularza.

pages
list[str]

Niestandardowe numery stron dla dokumentów wielostronicowych (PDF/TIFF). Wprowadź numery stron i/lub zakresy stron, które chcesz uzyskać w wyniku. W przypadku zakresu stron użyj łącznika, takiego jak pages=["1-3", "5-6"]. Oddziel każdy numer strony lub zakres przecinkiem.

continuation_token
str

Token kontynuacji w celu ponownego uruchomienia bazy danych poller ze stanu zapisanego.

Zwraca

Wystąpienie LROPoller. Wywołaj metodę result() obiektu poller, aby zwrócić listę[RecognizedForm].

Typ zwracany

Wyjątki

begin_recognize_content

Wyodrębnianie informacji o tekście i zawartości/układzie z danego dokumentu. Dokument wejściowy musi być jednym z obsługiwanych typów zawartości — "application/pdf", "image/jpeg", "image/png", "image/tiff" lub "image/bmp".

Nowość w wersji 2.1: strony, język i reading_order argumenty słów kluczowych oraz obsługa zawartości obrazu/bmp

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

Parametry

form
bytes lub IO[bytes]
Wymagane

Strumień lub bajty typu JPEG, PNG, PDF, TIFF lub BMP.

pages
list[str]

Niestandardowe numery stron dla dokumentów wielostronicowych (PDF/TIFF). Wprowadź numery stron i/lub zakresy stron, które chcesz uzyskać w wyniku. W przypadku zakresu stron użyj łącznika, takiego jak pages=["1-3", "5-6"]. Oddziel każdy numer strony lub zakres przecinkiem.

language
str

Kod języka BCP-47 tekstu w dokumencie. Zobacz obsługiwane kody języków tutaj: https://docs.microsoft.com/azure/cognitive-services/form-recognizer/language-support. Zawartość obsługuje automatyczną identyfikację języka i dokumenty wielojęzykowe, dlatego podaj tylko kod języka, jeśli chcesz wymusić przetworzenie dokumentu jako tego konkretnego języka.

reading_order
str

Algorytm kolejności odczytywania w celu sortowania zwracanych wierszy tekstu. Obsługiwane zamówienia odczytu obejmują: podstawową (domyślną), naturalną. Ustaw wartość "podstawowa", aby posortować linie od lewej do prawej i od góry do dołu, chociaż w niektórych przypadkach bliskość jest traktowana z wyższym priorytetem. Ustaw wartość "natural", aby sortować linie przy użyciu informacji pozycyjnych, aby zachować pobliskie linie razem.

content_type
str lub FormContentType

Typ zawartości treści wysyłanej do interfejsu API. Typ zawartości jest wykrywany automatycznie, ale można go przesłonić, przekazując ten argument słowa kluczowego. Aby uzyskać informacje o opcjach, zobacz FormContentType.

continuation_token
str

Token kontynuacji w celu ponownego uruchomienia bazy danych poller ze stanu zapisanego.

Zwraca

Wystąpienie LROPoller. Wywołaj metodę result() obiektu poller, aby zwrócić listę[FormPage].

Typ zwracany

Wyjątki

Przykłady

Rozpoznawanie informacji o tekście i zawartości/układzie z formularza.


   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

Wyodrębnianie informacji o tekście i układzie z danego dokumentu. Dokument wejściowy musi być lokalizacją (adres URL) dokumentu do przeanalizowania.

Nowość w wersji 2.1: strony, język i reading_order argumenty słów kluczowych oraz obsługa zawartości obrazu/bmp

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

Parametry

form_url
str
Wymagane

Adres URL formularza do przeanalizowania. Dane wejściowe muszą być prawidłowym, zakodowanym adresem URL jednego z obsługiwanych formatów: JPEG, PNG, PDF, TIFF lub BMP.

pages
list[str]

Niestandardowe numery stron dla dokumentów wielostronicowych (PDF/TIFF). Wprowadź numery stron i/lub zakresy stron, które chcesz uzyskać w wyniku. W przypadku zakresu stron użyj łącznika, takiego jak pages=["1-3", "5-6"]. Oddziel każdy numer strony lub zakres przecinkiem.

language
str

Kod języka BCP-47 tekstu w dokumencie. Zobacz obsługiwane kody języków tutaj: https://docs.microsoft.com/azure/cognitive-services/form-recognizer/language-support. Zawartość obsługuje automatyczną identyfikację języka i dokumenty wielojęzykowe, dlatego podaj tylko kod języka, jeśli chcesz wymusić przetworzenie dokumentu jako tego konkretnego języka.

reading_order
str

Algorytm kolejności odczytywania w celu sortowania zwracanych wierszy tekstu. Obsługiwane zamówienia odczytu obejmują: podstawową (domyślną), naturalną. Ustaw wartość "podstawowa", aby posortować linie od lewej do prawej i od góry do dołu, chociaż w niektórych przypadkach bliskość jest traktowana z wyższym priorytetem. Ustaw wartość "natural", aby sortować linie przy użyciu informacji pozycyjnych, aby zachować pobliskie linie razem.

continuation_token
str

Token kontynuacji w celu ponownego uruchomienia bazy danych poller ze stanu zapisanego.

Zwraca

Wystąpienie LROPoller. Wywołaj metodę result() obiektu poller, aby zwrócić listę[FormPage].

Typ zwracany

Wyjątki

begin_recognize_custom_forms

Analizowanie formularza niestandardowego przy użyciu modelu wytrenowanego z etykietami lub bez. Formularz do analizy powinien być tego samego typu co formularze używane do trenowania modelu. Dokument wejściowy musi być jednym z obsługiwanych typów zawartości — "application/pdf", "image/jpeg", "image/png", "image/tiff" lub "image/bmp".

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

Parametry

model_id
str
Wymagane

Identyfikator modelu niestandardowego.

form
bytes lub IO[bytes]
Wymagane

Strumień lub bajty typu JPEG, PNG, PDF, TIFF lub BMP.

include_field_elements
bool

Określa, czy mają być uwzględniane wszystkie wiersze na elementy strony i pola, takie jak wiersze, wyrazy i znaczniki zaznaczenia dla każdego pola formularza.

content_type
str lub FormContentType

Typ zawartości treści wysyłanej do interfejsu API. Typ zawartości jest wykrywany automatycznie, ale można go przesłonić, przekazując ten argument słowa kluczowego. Aby uzyskać informacje o opcjach, zobacz FormContentType.

pages
list[str]

Niestandardowe numery stron dla dokumentów wielostronicowych (PDF/TIFF). Wprowadź numery stron i/lub zakresy stron, które chcesz uzyskać w wyniku. W przypadku zakresu stron użyj łącznika, takiego jak pages=["1-3", "5-6"]. Oddziel każdy numer strony lub zakres przecinkiem.

continuation_token
str

Token kontynuacji w celu ponownego uruchomienia bazy danych poller ze stanu zapisanego.

Zwraca

Wystąpienie LROPoller. Wywołaj metodę result() obiektu poller, aby zwrócić listę[RecognizedForm].

Typ zwracany

Wyjątki

Przykłady

Rozpoznawanie pól i wartości z formularza niestandardowego.


   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

Analizowanie formularza niestandardowego przy użyciu modelu wytrenowanego z etykietami lub bez. Formularz do analizy powinien być tego samego typu co formularze używane do trenowania modelu. Dokument wejściowy musi być lokalizacją (adres URL) dokumentu do przeanalizowania.

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

Parametry

model_id
str
Wymagane

Identyfikator modelu niestandardowego.

form_url
str
Wymagane

Adres URL formularza do przeanalizowania. Dane wejściowe muszą być prawidłowym, zakodowanym adresem URL jednego z obsługiwanych formatów: JPEG, PNG, PDF, TIFF lub BMP.

include_field_elements
bool

Określa, czy mają być uwzględniane wszystkie wiersze na elementy strony i pola, takie jak wiersze, wyrazy i znaczniki zaznaczenia dla każdego pola formularza.

pages
list[str]

Niestandardowe numery stron dla dokumentów wielostronicowych (PDF/TIFF). Wprowadź numery stron i/lub zakresy stron, które chcesz uzyskać w wyniku. W przypadku zakresu stron użyj łącznika, takiego jak pages=["1-3", "5-6"]. Oddziel każdy numer strony lub zakres przecinkiem.

continuation_token
str

Token kontynuacji w celu ponownego uruchomienia bazy danych poller ze stanu zapisanego.

Zwraca

Wystąpienie LROPoller. Wywołaj metodę result() obiektu poller, aby zwrócić listę[RecognizedForm].

Typ zwracany

Wyjątki

begin_recognize_identity_documents

Wyodrębnij tekst pola i wartości semantyczne z danego dokumentu tożsamości. Dokument wejściowy musi być jednym z obsługiwanych typów zawartości — "application/pdf", "image/jpeg", "image/png", "image/tiff" lub "image/bmp".

Zobacz pola znalezione w dokumencie tożsamości tutaj: https://aka.ms/formrecognizer/iddocumentfields

Nowość w wersji 2.1: metoda klienta begin_recognize_identity_documents

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

Parametry

identity_document
bytes lub IO[bytes]
Wymagane

Strumień lub bajty typu JPEG, PNG, PDF, TIFF lub BMP.

include_field_elements
bool

Określa, czy mają być uwzględniane wszystkie wiersze na elementy strony i pola, takie jak wiersze, wyrazy i znaczniki zaznaczenia dla każdego pola formularza.

content_type
str lub FormContentType

Typ zawartości treści wysyłanej do interfejsu API. Typ zawartości jest wykrywany automatycznie, ale można go przesłonić, przekazując ten argument słowa kluczowego. Aby uzyskać informacje o opcjach, zobacz FormContentType.

continuation_token
str

Token kontynuacji w celu ponownego uruchomienia bazy danych poller ze stanu zapisanego.

pages
list[str]

Niestandardowe numery stron dla dokumentów wielostronicowych (PDF/TIFF). Wprowadź numery stron i/lub zakresy stron, które chcesz uzyskać w wyniku. W przypadku zakresu stron użyj łącznika, takiego jak pages=["1-3", "5-6"]. Oddziel każdy numer strony lub zakres przecinkiem.

Zwraca

Wystąpienie LROPoller. Wywołaj metodę result() obiektu poller, aby zwrócić listę[RecognizedForm].

Typ zwracany

Wyjątki

Przykłady

Rozpoznawanie pól dokumentów tożsamości.


   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

Wyodrębnij tekst pola i wartości semantyczne z danego dokumentu tożsamości. Dokument wejściowy musi być lokalizacją (adres URL) dokumentu tożsamości do przeanalizowania.

Zobacz pola znalezione w dokumencie tożsamości tutaj: https://aka.ms/formrecognizer/iddocumentfields

Nowość w wersji 2.1: metoda klienta begin_recognize_identity_documents_from_url

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

Parametry

identity_document_url
str
Wymagane

Adres URL dokumentu tożsamości do przeanalizowania. Dane wejściowe muszą być prawidłowym, zakodowanym adresem URL jednego z obsługiwanych formatów: JPEG, PNG, PDF, TIFF lub BMP.

include_field_elements
bool

Określa, czy mają być uwzględniane wszystkie wiersze na elementy strony i pola, takie jak wiersze, wyrazy i znaczniki zaznaczenia dla każdego pola formularza.

continuation_token
str

Token kontynuacji w celu ponownego uruchomienia bazy danych poller ze stanu zapisanego.

pages
list[str]

Niestandardowe numery stron dla dokumentów wielostronicowych (PDF/TIFF). Wprowadź numery stron i/lub zakresy stron, które chcesz uzyskać w wyniku. W przypadku zakresu stron użyj łącznika, takiego jak pages=["1-3", "5-6"]. Oddziel każdy numer strony lub zakres przecinkiem.

Zwraca

Wystąpienie LROPoller. Wywołaj metodę result() obiektu poller, aby zwrócić listę[RecognizedForm].

Typ zwracany

Wyjątki

begin_recognize_invoices

Wyodrębnij tekst pola i wartości semantyczne z danej faktury. Dokument wejściowy musi być jednym z obsługiwanych typów zawartości — "application/pdf", "image/jpeg", "image/png", "image/tiff" lub "image/bmp".

Zobacz pola znalezione na fakturze tutaj: https://aka.ms/formrecognizer/invoicefields

Nowość w wersji 2.1: metoda klienta begin_recognize_invoices

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

Parametry

invoice
bytes lub IO[bytes]
Wymagane

Strumień lub bajty typu JPEG, PNG, PDF, TIFF lub BMP.

locale
str

Ustawienia regionalne faktury. Obsługiwane ustawienia regionalne to: en-US

include_field_elements
bool

Określa, czy mają być uwzględniane wszystkie wiersze na elementy strony i pola, takie jak wiersze, wyrazy i znaczniki zaznaczenia dla każdego pola formularza.

pages
list[str]

Niestandardowe numery stron dla dokumentów wielostronicowych (PDF/TIFF). Wprowadź numery stron i/lub zakresy stron, które chcesz uzyskać w wyniku. W przypadku zakresu stron użyj łącznika, takiego jak pages=["1-3", "5-6"]. Oddziel każdy numer strony lub zakres przecinkiem.

content_type
str lub FormContentType

Typ zawartości treści wysyłanej do interfejsu API. Typ zawartości jest wykrywany automatycznie, ale można go przesłonić, przekazując ten argument słowa kluczowego. Aby uzyskać informacje o opcjach, zobacz FormContentType.

continuation_token
str

Token kontynuacji w celu ponownego uruchomienia bazy danych poller ze stanu zapisanego.

Zwraca

Wystąpienie LROPoller. Wywołaj metodę result() obiektu poller, aby zwrócić listę[RecognizedForm].

Typ zwracany

Wyjątki

Przykłady

Rozpoznawanie faktur z pliku.


   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

Wyodrębnij tekst pola i wartości semantyczne z danej faktury. Dokument wejściowy musi być lokalizacją (adresem URL) faktury do przeanalizowania.

Zobacz pola znalezione na karcie faktury tutaj: https://aka.ms/formrecognizer/invoicefields

Nowość w wersji 2.1: metoda klienta begin_recognize_invoices_from_url

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

Parametry

invoice_url
str
Wymagane

Adres URL faktury do analizy. Dane wejściowe muszą być prawidłowym, zakodowanym adresem URL jednego z obsługiwanych formatów: JPEG, PNG, PDF, TIFF lub BMP.

locale
str

Ustawienia regionalne faktury. Obsługiwane ustawienia regionalne to: en-US

include_field_elements
bool

Określa, czy mają być uwzględniane wszystkie wiersze na elementy strony i pola, takie jak wiersze, wyrazy i znaczniki zaznaczenia dla każdego pola formularza.

pages
list[str]

Niestandardowe numery stron dla dokumentów wielostronicowych (PDF/TIFF). Wprowadź numery stron i/lub zakresy stron, które chcesz uzyskać w wyniku. W przypadku zakresu stron użyj łącznika, takiego jak pages=["1-3", "5-6"]. Oddziel każdy numer strony lub zakres przecinkiem.

continuation_token
str

Token kontynuacji w celu ponownego uruchomienia bazy danych poller ze stanu zapisanego.

Zwraca

Wystąpienie LROPoller. Wywołaj metodę result() obiektu poller, aby zwrócić listę[RecognizedForm].

Typ zwracany

Wyjątki

begin_recognize_receipts

Wyodrębnij tekst pola i wartości semantyczne z danego paragonu sprzedaży. Dokument wejściowy musi być jednym z obsługiwanych typów zawartości — "application/pdf", "image/jpeg", "image/png", "image/tiff" lub "image/bmp".

Zobacz pola znalezione na paragonie tutaj: https://aka.ms/formrecognizer/receiptfields

Nowość w wersji 2.1: argumenty słów kluczowych ustawień regionalnych i stron oraz obsługa zawartości obrazu/bmp

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

Parametry

receipt
bytes lub IO[bytes]
Wymagane

Strumień lub bajty typu JPEG, PNG, PDF, TIFF lub BMP.

include_field_elements
bool

Określa, czy mają być uwzględniane wszystkie wiersze na elementy strony i pola, takie jak wiersze, wyrazy i znaczniki zaznaczenia dla każdego pola formularza.

content_type
str lub FormContentType

Typ zawartości treści wysyłanej do interfejsu API. Typ zawartości jest wykrywany automatycznie, ale można go przesłonić, przekazując ten argument słowa kluczowego. Aby uzyskać informacje o opcjach, zobacz FormContentType.

continuation_token
str

Token kontynuacji umożliwiający ponowne uruchomienie narzędzia poller z zapisanego stanu.

locale
str

Ustawienia regionalne paragonu. Obsługiwane ustawienia regionalne to: en-US, en-AU, en-CA, en-GB i en-IN.

pages
list[str]

Niestandardowe numery stron dla dokumentów wielostronicowych (PDF/TIFF). Wprowadź numery stron i/lub zakresy stron, które chcesz uzyskać w wyniku. W przypadku zakresu stron użyj łącznika, takiego jak pages=["1-3", "5-6"]. Oddziel każdy numer strony lub zakres przecinkiem.

Zwraca

Wystąpienie LROPoller. Wywołaj wynik() obiektu poller, aby zwrócić listę[RecognizedForm].

Typ zwracany

Wyjątki

Przykłady

Rozpoznawanie pól paragonu sprzedaży.


   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

Wyodrębnij tekst pola i wartości semantyczne z danego paragonu sprzedaży. Dokument wejściowy musi być lokalizacją (adresem URL) potwierdzenia do przeanalizowania.

Zobacz pola znalezione na paragonie tutaj: https://aka.ms/formrecognizer/receiptfields

Nowość w wersji 2.1: argumenty słów kluczowych ustawień regionalnych i stron oraz obsługa zawartości obrazu/bmp

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

Parametry

receipt_url
str
Wymagane

Adres URL potwierdzenia do przeanalizowania. Dane wejściowe muszą być prawidłowym, zakodowanym adresem URL jednego z obsługiwanych formatów: JPEG, PNG, PDF, TIFF lub BMP.

include_field_elements
bool

Niezależnie od tego, czy należy uwzględnić wszystkie wiersze na stronę i elementy pól, takie jak wiersze, wyrazy i znaczniki zaznaczenia dla każdego pola formularza.

continuation_token
str

Token kontynuacji umożliwiający ponowne uruchomienie narzędzia poller z zapisanego stanu.

locale
str

Ustawienia regionalne paragonu. Obsługiwane ustawienia regionalne to: en-US, en-AU, en-CA, en-GB i en-IN.

pages
list[str]

Niestandardowe numery stron dla dokumentów wielostronicowych (PDF/TIFF). Wprowadź numery stron i/lub zakresy stron, które chcesz uzyskać w wyniku. W przypadku zakresu stron użyj łącznika, takiego jak pages=["1-3", "5-6"]. Oddziel każdy numer strony lub zakres przecinkiem.

Zwraca

Wystąpienie LROPoller. Wywołaj wynik() obiektu poller, aby zwrócić listę[RecognizedForm].

Typ zwracany

Wyjątki

Przykłady

Rozpoznawanie pól paragonu sprzedaży z adresu 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

Zamknij sesję FormRecognizerClient .

close() -> None

Wyjątki

send_request

Uruchamia żądanie sieciowe przy użyciu istniejącego potoku klienta.

Adres URL żądania może być względny dla podstawowego adresu URL. Wersja interfejsu API usługi używana dla żądania jest taka sama jak wersja klienta, chyba że określono inaczej. Zastępowanie skonfigurowanej wersji interfejsu API klienta w względnym adresie URL jest obsługiwane na kliencie z interfejsem API w wersji 2022-08-31 lub nowszej. Zastępowanie bezwzględnego adresu URL obsługiwanego na kliencie z dowolną wersją interfejsu API. Ta metoda nie zgłasza się, jeśli odpowiedź jest błędem; aby zgłosić wyjątek, wywołaj metodę raise_for_status() dla zwróconego obiektu odpowiedzi. Aby uzyskać więcej informacji na temat wysyłania żądań niestandardowych za pomocą tej metody, zobacz https://aka.ms/azsdk/dpcodegen/python/send_request.

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

Parametry

request
HttpRequest
Wymagane

Żądanie sieciowe, które chcesz utworzyć.

stream
bool

Czy ładunek odpowiedzi zostanie przesyłany strumieniowo. Wartość domyślna to False.

Zwraca

Odpowiedź połączenia sieciowego. Nie obsługuje błędów w odpowiedzi.

Typ zwracany

Wyjątki