Compartir a través de


FormRecognizerClient Clase

FormRecognizerClient extrae información de formularios e imágenes en datos estructurados. Es la interfaz que se usa para analizar con modelos precompilados (recibos, tarjetas de presentación, facturas, documentos de identidad), reconocimiento de contenido y diseño de formularios y análisis de formularios personalizados a partir de modelos entrenados. Proporciona diferentes métodos basados en entradas de una dirección URL y entradas de una secuencia.

Nota:

FormRecognizerClient debe usarse con versiones <de API =v2.1.

Para usar las versiones de API 2022-08-31 y versiones posteriores, cree una instancia de DocumentAnalysisClient.

Herencia
azure.ai.formrecognizer.aio._form_base_client_async.FormRecognizerClientBaseAsync
FormRecognizerClient

Constructor

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

Parámetros

endpoint
str
Requerido

Puntos de conexión de Cognitive Services admitidos (protocolo y nombre de host, por ejemplo: https://westus2.api.cognitive.microsoft.com).

credential
AzureKeyCredential o AsyncTokenCredential
Requerido

Credenciales necesarias para que el cliente se conecte a Azure. Se trata de una instancia de AzureKeyCredential si usa una clave de API o una credencial de token de identity.

api_version
str o FormRecognizerApiVersion

La versión de API del servicio que se va a usar para las solicitudes. El valor predeterminado es la versión de API v2.1. Establecer en una versión anterior puede dar lugar a una compatibilidad de características reducida. Para usar la versión y las características admitidas más recientes de la API, cree una instancia de DocumentAnalysisClient en su lugar.

Ejemplos

Creación de FormRecognizerClient con un punto de conexión y una clave de API.


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

   form_recognizer_client = FormRecognizerClient(endpoint, AzureKeyCredential(key))

Creación de FormRecognizerClient con una credencial de token.


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

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

   form_recognizer_client = FormRecognizerClient(endpoint, credential)

Métodos

begin_recognize_business_cards

Extraiga el texto de campo y los valores semánticos de una tarjeta de presentación determinada. El documento de entrada debe ser de uno de los tipos de contenido admitidos: "application/pdf", "image/jpeg", "image/png", "image/tiff" o "image/bmp".

Consulte los campos que se encuentran en una tarjeta de presentación aquí: https://aka.ms/formrecognizer/businesscardfields

Novedad de la versión v2.1: el método de cliente begin_recognize_business_cards

begin_recognize_business_cards_from_url

Extraiga el texto de campo y los valores semánticos de una tarjeta de presentación determinada. El documento de entrada debe ser la ubicación (URL) de la tarjeta que se va a analizar.

Consulte los campos que se encuentran en una tarjeta de presentación aquí: https://aka.ms/formrecognizer/businesscardfields

Novedad de la versión v2.1: el método de cliente begin_recognize_business_cards_from_url

begin_recognize_content

Extraiga información de texto y contenido o diseño de un documento determinado. El documento de entrada debe ser de uno de los tipos de contenido admitidos: "application/pdf", "image/jpeg", "image/png", "image/tiff" o "image/bmp".

Novedad de la versión v2.1: las páginas, el idioma y los argumentos de palabra clave reading_order y la compatibilidad con el contenido de image/bmp

begin_recognize_content_from_url

Extrae texto e información del diseño de un documento determinado. El documento de entrada debe ser la ubicación (URL) del documento que se va a analizar.

Novedad de la versión v2.1: las páginas, el idioma y los argumentos de palabra clave reading_order y la compatibilidad con el contenido de image/bmp

begin_recognize_custom_forms

Analice un formulario personalizado con un modelo entrenado con o sin etiquetas. El formulario que se va a analizar debe ser del mismo tipo que los formularios que se usaron para entrenar el modelo. El documento de entrada debe ser de uno de los tipos de contenido admitidos: "application/pdf", "image/jpeg", "image/png", "image/tiff" o "image/bmp".

begin_recognize_custom_forms_from_url

Analice un formulario personalizado con un modelo entrenado con o sin etiquetas. El formulario que se va a analizar debe ser del mismo tipo que los formularios que se usaron para entrenar el modelo. El documento de entrada debe ser la ubicación (URL) del documento que se va a analizar.

begin_recognize_identity_documents

Extraiga el texto de campo y los valores semánticos de un documento de identidad determinado. El documento de entrada debe ser de uno de los tipos de contenido admitidos: "application/pdf", "image/jpeg", "image/png", "image/tiff" o "image/bmp".

Consulte los campos que se encuentran en un documento de identidad aquí: https://aka.ms/formrecognizer/iddocumentfields

Novedad de la versión v2.1: el método de cliente de begin_recognize_identity_documents

begin_recognize_identity_documents_from_url

Extraiga el texto de campo y los valores semánticos de un documento de identidad determinado. El documento de entrada debe ser la ubicación (URL) del documento de identidad que se va a analizar.

Consulte los campos que se encuentran en un documento de identidad aquí: https://aka.ms/formrecognizer/iddocumentfields

Novedad de la versión v2.1: método de cliente de begin_recognize_identity_documents_from_url

begin_recognize_invoices

Extraiga el texto de campo y los valores semánticos de una factura determinada. El documento de entrada debe ser de uno de los tipos de contenido admitidos: "application/pdf", "image/jpeg", "image/png", "image/tiff" o "image/bmp".

Consulte los campos que se encuentran en una factura aquí: https://aka.ms/formrecognizer/invoicefields

Novedad de la versión 2.1: el método de cliente begin_recognize_invoices

begin_recognize_invoices_from_url

Extraiga el texto de campo y los valores semánticos de una factura determinada. El documento de entrada debe ser la ubicación (URL) de la factura que se va a analizar.

Consulte los campos que se encuentran en una tarjeta de factura aquí: https://aka.ms/formrecognizer/invoicefields

Novedad de la versión v2.1: el método de cliente begin_recognize_invoices_from_url

begin_recognize_receipts

Extraiga el texto de campo y los valores semánticos de un recibo de ventas determinado. El documento de entrada debe ser de uno de los tipos de contenido admitidos: "application/pdf", "image/jpeg", "image/png", "image/tiff" o "image/bmp".

Consulte los campos que se encuentran en un recibo aquí: https://aka.ms/formrecognizer/receiptfields

Novedad de la versión v2.1: argumento de palabra clave de configuración regional y compatibilidad con el contenido de image/bmp

begin_recognize_receipts_from_url

Extraiga el texto de campo y los valores semánticos de un recibo de ventas determinado. El documento de entrada debe ser la ubicación (URL) del recibo que se va a analizar.

Consulte los campos que se encuentran en un recibo aquí: https://aka.ms/formrecognizer/receiptfields

Novedad de la versión v2.1: argumento de palabra clave de configuración regional y compatibilidad con el contenido de image/bmp

close

Cierre la FormRecognizerClient sesión.

send_request

Ejecuta una solicitud de red mediante la canalización existente del cliente.

La dirección URL de la solicitud puede ser relativa a la dirección URL base. La versión de la API de servicio usada para la solicitud es la misma que la del cliente, a menos que se especifique lo contrario. La invalidación de la versión de API configurada del cliente en la dirección URL relativa se admite en el cliente con la versión de API 2022-08-31 y versiones posteriores. Invalidación en dirección URL absoluta admitida en el cliente con cualquier versión de API. Este método no genera si la respuesta es un error; para generar una excepción, llame a raise_for_status() en el objeto de respuesta devuelto. Para obtener más información sobre cómo enviar solicitudes personalizadas con este método, vea https://aka.ms/azsdk/dpcodegen/python/send_request.

begin_recognize_business_cards

Extraiga el texto de campo y los valores semánticos de una tarjeta de presentación determinada. El documento de entrada debe ser de uno de los tipos de contenido admitidos: "application/pdf", "image/jpeg", "image/png", "image/tiff" o "image/bmp".

Consulte los campos que se encuentran en una tarjeta de presentación aquí: https://aka.ms/formrecognizer/businesscardfields

Novedad de la versión v2.1: el método de cliente begin_recognize_business_cards

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

Parámetros

business_card
bytes o IO[bytes]
Requerido

Secuencia de archivos de tipo JPEG, PNG, PDF, TIFF o BMP.

locale
str

Configuración regional de la tarjeta de presentación. Entre las configuraciones regionales admitidas se incluyen: en-US, en-AU, en-CA, en-GB y en-IN.

include_field_elements
bool

Si se van a incluir o no todas las líneas por página y elementos de campo, como líneas, palabras y marcas de selección para cada campo de formulario.

content_type
str o FormContentType

Tipo de contenido del cuerpo enviado a la API. El tipo de contenido se detecta automáticamente, pero se puede invalidar pasando este argumento de palabra clave. Para obtener opciones, consulte FormContentType.

pages
list[str]

Números de página personalizados para documentos de varias páginas (PDF/TIFF). Escriba los números de página o los intervalos de páginas que desea obtener en el resultado. Para un intervalo de páginas, use un guión, como pages=["1-3", "5-6"]. Separe cada número de página o intervalo con una coma.

continuation_token
str

Token de continuación para reiniciar un sondeo desde un estado guardado.

Devoluciones

Instancia de AsyncLROPoller. Llame a result() en el objeto poller para devolver una lista[RecognizedForm].

Tipo de valor devuelto

Excepciones

Ejemplos

Reconocer tarjetas de presentación de un archivo.


   from azure.core.credentials import AzureKeyCredential
   from azure.ai.formrecognizer.aio 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)
   )
   async with form_recognizer_client:
       with open(path_to_sample_forms, "rb") as f:
           poller = await form_recognizer_client.begin_recognize_business_cards(business_card=f, locale="en-US")
       business_cards = await 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

Extraiga el texto de campo y los valores semánticos de una tarjeta de presentación determinada. El documento de entrada debe ser la ubicación (URL) de la tarjeta que se va a analizar.

Consulte los campos que se encuentran en una tarjeta de presentación aquí: https://aka.ms/formrecognizer/businesscardfields

Novedad de la versión v2.1: el método de cliente begin_recognize_business_cards_from_url

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

Parámetros

business_card_url
str
Requerido

Dirección URL de la tarjeta de presentación que se va a analizar. La entrada debe ser una dirección URL válida y codificada de uno de los formatos admitidos: JPEG, PNG, PDF, TIFF o BMP.

locale
str

Configuración regional de la tarjeta de presentación. Entre las configuraciones regionales admitidas se incluyen: en-US, en-AU, en-CA, en-GB y en-IN.

include_field_elements
bool

Si se van a incluir o no todas las líneas por página y elementos de campo, como líneas, palabras y marcas de selección para cada campo de formulario.

pages
list[str]

Números de página personalizados para documentos de varias páginas (PDF/TIFF). Escriba los números de página o los intervalos de páginas que desea obtener en el resultado. Para un intervalo de páginas, use un guión, como pages=["1-3", "5-6"]. Separe cada número de página o intervalo con una coma.

continuation_token
str

Token de continuación para reiniciar un sondeo desde un estado guardado.

Devoluciones

Instancia de AsyncLROPoller. Llame a result() en el objeto poller para devolver una lista[RecognizedForm].

Tipo de valor devuelto

Excepciones

begin_recognize_content

Extraiga información de texto y contenido o diseño de un documento determinado. El documento de entrada debe ser de uno de los tipos de contenido admitidos: "application/pdf", "image/jpeg", "image/png", "image/tiff" o "image/bmp".

Novedad de la versión v2.1: las páginas, el idioma y los argumentos de palabra clave reading_order y la compatibilidad con el contenido de image/bmp

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

Parámetros

form
bytes o IO[bytes]
Requerido

Secuencia de archivos de tipo JPEG, PNG, PDF, TIFF o BMP.

pages
list[str]

Números de página personalizados para documentos de varias páginas (PDF/TIFF). Escriba los números de página o los intervalos de páginas que desea obtener en el resultado. Para un intervalo de páginas, use un guión, como pages=["1-3", "5-6"]. Separe cada número de página o intervalo con una coma.

language
str

Código de idioma BCP-47 del texto del documento. Consulte los códigos de idioma admitidos aquí: https://docs.microsoft.com/azure/cognitive-services/form-recognizer/language-support. El contenido admite la identificación automática del idioma y los documentos de varias idiomas, por lo que solo debe proporcionar un código de idioma si desea forzar que el documento se procese como ese idioma específico.

reading_order
str

Algoritmo de orden de lectura para ordenar las líneas de texto devueltas. Los pedidos de lectura admitidos incluyen: básico (valor predeterminado), natural. Establezca "basic" para ordenar las líneas de izquierda a derecha y arriba abajo, aunque en algunos casos la proximidad se trata con mayor prioridad. Establezca "natural" para ordenar líneas mediante información posicional para mantener juntas las líneas cercanas.

content_type
str o FormContentType

Tipo de contenido del cuerpo enviado a la API. El tipo de contenido se detecta automáticamente, pero se puede invalidar pasando este argumento de palabra clave. Para obtener opciones, consulte FormContentType.

continuation_token
str

Token de continuación para reiniciar un sondeo desde un estado guardado.

Devoluciones

Instancia de AsyncLROPoller. Llame a result() en el objeto poller para devolver una lista[FormPage].

Tipo de valor devuelto

Excepciones

Ejemplos

Reconocer información de texto y contenido/diseño de un formulario.


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

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

   async with FormRecognizerClient(
       endpoint=endpoint, credential=AzureKeyCredential(key)
   ) as form_recognizer_client:

       with open(path_to_sample_forms, "rb") as f:
           poller = await form_recognizer_client.begin_recognize_content(form=f)

       form_pages = await 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

Extrae texto e información del diseño de un documento determinado. El documento de entrada debe ser la ubicación (URL) del documento que se va a analizar.

Novedad de la versión v2.1: las páginas, el idioma y los argumentos de palabra clave reading_order y la compatibilidad con el contenido de image/bmp

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

Parámetros

form_url
str
Requerido

Dirección URL del formulario que se va a analizar. La entrada debe ser una dirección URL válida y codificada de uno de los formatos admitidos: JPEG, PNG, PDF, TIFF o BMP.

pages
list[str]

Números de página personalizados para documentos de varias páginas (PDF/TIFF). Escriba los números de página o los intervalos de páginas que desea obtener en el resultado. Para un intervalo de páginas, use un guión, como pages=["1-3", "5-6"]. Separe cada número de página o intervalo con una coma.

language
str

Código de idioma BCP-47 del texto del documento. Consulte los códigos de idioma admitidos aquí: https://docs.microsoft.com/azure/cognitive-services/form-recognizer/language-support. El contenido admite la identificación automática del idioma y los documentos de varias idiomas, por lo que solo debe proporcionar un código de idioma si desea forzar que el documento se procese como ese idioma específico.

reading_order
str

Algoritmo de orden de lectura para ordenar las líneas de texto devueltas. Los pedidos de lectura admitidos incluyen: básico (valor predeterminado), natural. Establezca "basic" para ordenar las líneas de izquierda a derecha y arriba abajo, aunque en algunos casos la proximidad se trata con mayor prioridad. Establezca "natural" para ordenar líneas mediante información posicional para mantener juntas las líneas cercanas.

continuation_token
str

Token de continuación para reiniciar un sondeo desde un estado guardado.

Devoluciones

Instancia de AsyncLROPoller. Llame a result() en el objeto poller para devolver una lista[FormPage].

Tipo de valor devuelto

Excepciones

begin_recognize_custom_forms

Analice un formulario personalizado con un modelo entrenado con o sin etiquetas. El formulario que se va a analizar debe ser del mismo tipo que los formularios que se usaron para entrenar el modelo. El documento de entrada debe ser de uno de los tipos de contenido admitidos: "application/pdf", "image/jpeg", "image/png", "image/tiff" o "image/bmp".

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

Parámetros

model_id
str
Requerido

Identificador de modelo personalizado.

form
bytes o IO[bytes]
Requerido

Secuencia de archivos de tipo JPEG, PNG, PDF, TIFF o BMP.

include_field_elements
bool

Si se van a incluir o no todas las líneas por página y elementos de campo, como líneas, palabras y marcas de selección para cada campo de formulario.

content_type
str o FormContentType

Tipo de contenido del cuerpo enviado a la API. El tipo de contenido se detecta automáticamente, pero se puede invalidar pasando este argumento de palabra clave. Para obtener opciones, vea FormContentType.

pages
list[str]

Números de página personalizados para documentos de varias páginas (PDF/TIFF). Escriba los números de página o los intervalos de páginas que desea obtener en el resultado. Para un intervalo de páginas, use un guión, como pages=["1-3", "5-6"]. Separe cada número de página o intervalo con una coma.

continuation_token
str

Token de continuación para reiniciar un sondeo desde un estado guardado.

Devoluciones

Una instancia de AsyncLROPoller. Llame a result() en el objeto poller para devolver una lista[RecognizedForm].

Tipo de valor devuelto

Excepciones

Ejemplos

Reconocer campos y valores de un formulario personalizado.


   from azure.core.credentials import AzureKeyCredential
   from azure.ai.formrecognizer.aio 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)

   async with FormRecognizerClient(
       endpoint=endpoint, credential=AzureKeyCredential(key)
   ) as form_recognizer_client:

       # 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 = await form_recognizer_client.begin_recognize_custom_forms(
               model_id=model_id, form=f, include_field_elements=True
           )
       forms = await 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

Analice un formulario personalizado con un modelo entrenado con o sin etiquetas. El formulario que se va a analizar debe ser del mismo tipo que los formularios que se usaron para entrenar el modelo. El documento de entrada debe ser la ubicación (URL) del documento que se va a analizar.

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

Parámetros

model_id
str
Requerido

Identificador de modelo personalizado.

form_url
str
Requerido

Dirección URL del formulario que se va a analizar. La entrada debe ser una dirección URL válida codificada de uno de los formatos admitidos: JPEG, PNG, PDF, TIFF o BMP.

include_field_elements
bool

Si se van a incluir o no todas las líneas por página y elementos de campo, como líneas, palabras y marcas de selección para cada campo de formulario.

pages
list[str]

Números de página personalizados para documentos de varias páginas (PDF/TIFF). Escriba los números de página o los intervalos de páginas que desea obtener en el resultado. Para un intervalo de páginas, use un guión, como pages=["1-3", "5-6"]. Separe cada número de página o intervalo con una coma.

continuation_token
str

Token de continuación para reiniciar un sondeo desde un estado guardado.

Devoluciones

Una instancia de AsyncLROPoller. Llame a result() en el objeto poller para devolver una lista[RecognizedForm].

Tipo de valor devuelto

Excepciones

begin_recognize_identity_documents

Extraiga el texto de campo y los valores semánticos de un documento de identidad determinado. El documento de entrada debe ser de uno de los tipos de contenido admitidos: "application/pdf", "image/jpeg", "image/png", "image/tiff" o "image/bmp".

Consulte los campos que se encuentran en un documento de identidad aquí: https://aka.ms/formrecognizer/iddocumentfields

Novedad de la versión v2.1: el método de cliente de begin_recognize_identity_documents

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

Parámetros

identity_document
bytes o IO[bytes]
Requerido

Secuencia de archivos de tipo JPEG, PNG, PDF, TIFF o BMP.

include_field_elements
bool

Si se van a incluir o no todas las líneas por página y elementos de campo, como líneas, palabras y marcas de selección para cada campo de formulario.

content_type
str o FormContentType

Tipo de contenido del cuerpo enviado a la API. El tipo de contenido se detecta automáticamente, pero se puede invalidar pasando este argumento de palabra clave. Para obtener opciones, vea FormContentType.

continuation_token
str

Token de continuación para reiniciar un sondeo desde un estado guardado.

pages
list[str]

Números de página personalizados para documentos de varias páginas (PDF/TIFF). Escriba los números de página o los intervalos de páginas que desea obtener en el resultado. Para un intervalo de páginas, use un guión, como pages=["1-3", "5-6"]. Separe cada número de página o intervalo con una coma.

Devoluciones

Una instancia de AsyncLROPoller. Llame a result() en el objeto poller para devolver una lista[RecognizedForm].

Tipo de valor devuelto

Excepciones

Ejemplos

Reconocer documentos de identidad de un archivo.


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

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

   async with FormRecognizerClient(
       endpoint=endpoint, credential=AzureKeyCredential(key)
   ) as form_recognizer_client:
       
       with open(path_to_sample_forms, "rb") as f:
           poller = await form_recognizer_client.begin_recognize_identity_documents(identity_document=f)
       
       id_documents = await 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

Extraiga el texto de campo y los valores semánticos de un documento de identidad determinado. El documento de entrada debe ser la ubicación (URL) del documento de identidad que se va a analizar.

Consulte los campos que se encuentran en un documento de identidad aquí: https://aka.ms/formrecognizer/iddocumentfields

Novedad de la versión v2.1: método de cliente de begin_recognize_identity_documents_from_url

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

Parámetros

identity_document_url
str
Requerido

Dirección URL del documento de identidad que se va a analizar. La entrada debe ser una dirección URL válida codificada de uno de los formatos admitidos: JPEG, PNG, PDF, TIFF o BMP.

include_field_elements
bool

Si se van a incluir o no todas las líneas por página y elementos de campo, como líneas, palabras y marcas de selección para cada campo de formulario.

continuation_token
str

Token de continuación para reiniciar un sondeo desde un estado guardado.

pages
list[str]

Números de página personalizados para documentos de varias páginas (PDF/TIFF). Escriba los números de página o los intervalos de páginas que desea obtener en el resultado. Para un intervalo de páginas, use un guión, como pages=["1-3", "5-6"]. Separe cada número de página o intervalo con una coma.

Devoluciones

Una instancia de AsyncLROPoller. Llame a result() en el objeto poller para devolver una lista[RecognizedForm].

Tipo de valor devuelto

Excepciones

begin_recognize_invoices

Extraiga el texto de campo y los valores semánticos de una factura determinada. El documento de entrada debe ser de uno de los tipos de contenido admitidos: "application/pdf", "image/jpeg", "image/png", "image/tiff" o "image/bmp".

Consulte los campos que se encuentran en una factura aquí: https://aka.ms/formrecognizer/invoicefields

Novedad de la versión 2.1: el método de cliente begin_recognize_invoices

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

Parámetros

invoice
bytes o IO[bytes]
Requerido

Secuencia de archivos de tipo JPEG, PNG, PDF, TIFF o BMP.

locale
str

Configuración regional de la factura. Entre las configuraciones regionales admitidas se incluyen: en-US

include_field_elements
bool

Si se van a incluir o no todas las líneas por página y elementos de campo, como líneas, palabras y marcas de selección para cada campo de formulario.

content_type
str o FormContentType

Tipo de contenido del cuerpo enviado a la API. El tipo de contenido se detecta automáticamente, pero se puede invalidar pasando este argumento de palabra clave. Para obtener opciones, vea FormContentType.

pages
list[str]

Números de página personalizados para documentos de varias páginas (PDF/TIFF). Escriba los números de página o los intervalos de páginas que desea obtener en el resultado. Para un intervalo de páginas, use un guión, como pages=["1-3", "5-6"]. Separe cada número de página o intervalo con una coma.

continuation_token
str

Token de continuación para reiniciar un sondeo desde un estado guardado.

Devoluciones

Una instancia de AsyncLROPoller. Llame a result() en el objeto poller para devolver una lista[RecognizedForm].

Tipo de valor devuelto

Excepciones

Ejemplos

Reconocer facturas de un archivo.


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

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

   async with FormRecognizerClient(
       endpoint=endpoint, credential=AzureKeyCredential(key)
   ) as form_recognizer_client:
       with open(path_to_sample_forms, "rb") as f:
           poller = await form_recognizer_client.begin_recognize_invoices(invoice=f, locale="en-US")
       invoices = await 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

Extraiga el texto de campo y los valores semánticos de una factura determinada. El documento de entrada debe ser la ubicación (URL) de la factura que se va a analizar.

Consulte los campos que se encuentran en una tarjeta de factura aquí: https://aka.ms/formrecognizer/invoicefields

Novedad de la versión v2.1: el método de cliente begin_recognize_invoices_from_url

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

Parámetros

invoice_url
str
Requerido

Dirección URL de la factura que se va a analizar. La entrada debe ser una dirección URL válida codificada de uno de los formatos admitidos: JPEG, PNG, PDF, TIFF o BMP.

locale
str

Configuración regional de la factura. Entre las configuraciones regionales admitidas se incluyen: en-US

include_field_elements
bool

Si se van a incluir o no todas las líneas por página y elementos de campo, como líneas, palabras y marcas de selección para cada campo de formulario.

pages
list[str]

Números de página personalizados para documentos de varias páginas (PDF/TIFF). Escriba los números de página o los intervalos de páginas que desea obtener en el resultado. Para un intervalo de páginas, use un guión, como pages=["1-3", "5-6"]. Separe cada número de página o intervalo con una coma.

continuation_token
str

Token de continuación para reiniciar un sondeo desde un estado guardado.

Devoluciones

Una instancia de AsyncLROPoller. Llame a result() en el objeto poller para devolver una lista[RecognizedForm].

Tipo de valor devuelto

Excepciones

begin_recognize_receipts

Extraiga el texto de campo y los valores semánticos de un recibo de ventas determinado. El documento de entrada debe ser de uno de los tipos de contenido admitidos: "application/pdf", "image/jpeg", "image/png", "image/tiff" o "image/bmp".

Consulte los campos que se encuentran en un recibo aquí: https://aka.ms/formrecognizer/receiptfields

Novedad de la versión v2.1: argumento de palabra clave de configuración regional y compatibilidad con el contenido de image/bmp

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

Parámetros

receipt
bytes o IO[bytes]
Requerido

Secuencia de archivos de tipo JPEG, PNG, PDF, TIFF o BMP.

include_field_elements
bool

Si se van a incluir o no todas las líneas por página y elementos de campo, como líneas, palabras y marcas de selección para cada campo de formulario.

content_type
str o FormContentType

Tipo de contenido del cuerpo enviado a la API. El tipo de contenido se detecta automáticamente, pero se puede invalidar pasando este argumento de palabra clave. Para obtener opciones, consulte FormContentType.

continuation_token
str

Token de continuación para reiniciar un sondeo desde un estado guardado.

locale
str

Configuración regional del recibo. Entre las configuraciones regionales admitidas se incluyen: en-US, en-AU, en-CA, en-GB y en-IN.

pages
list[str]

Números de página personalizados para documentos de varias páginas (PDF/TIFF). Escriba los números de página o los intervalos de páginas que desea obtener en el resultado. Para un intervalo de páginas, use un guión, como pages=["1-3", "5-6"]. Separe cada número de página o intervalo con una coma.

Devoluciones

Instancia de AsyncLROPoller. Llame a result() en el objeto poller para devolver una lista[RecognizedForm].

Tipo de valor devuelto

Excepciones

Ejemplos

Reconocer campos de recibos de ventas.


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

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

   async with FormRecognizerClient(
       endpoint=endpoint, credential=AzureKeyCredential(key)
   ) as form_recognizer_client:

       with open(path_to_sample_forms, "rb") as f:
           poller = await form_recognizer_client.begin_recognize_receipts(receipt=f, locale="en-US")

       receipts = await 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

Extraiga el texto de campo y los valores semánticos de un recibo de ventas determinado. El documento de entrada debe ser la ubicación (URL) del recibo que se va a analizar.

Consulte los campos que se encuentran en un recibo aquí: https://aka.ms/formrecognizer/receiptfields

Novedad de la versión v2.1: argumento de palabra clave de configuración regional y compatibilidad con el contenido de image/bmp

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

Parámetros

receipt_url
str
Requerido

Dirección URL del recibo que se va a analizar. La entrada debe ser una dirección URL válida y codificada de uno de los formatos admitidos: JPEG, PNG, PDF, TIFF o BMP.

include_field_elements
bool

Si se van a incluir o no todas las líneas por página y elementos de campo, como líneas, palabras y marcas de selección para cada campo de formulario.

continuation_token
str

Token de continuación para reiniciar un sondeo desde un estado guardado.

locale
str

Configuración regional del recibo. Entre las configuraciones regionales admitidas se incluyen: en-US, en-AU, en-CA, en-GB y en-IN.

pages
list[str]

Números de página personalizados para documentos de varias páginas (PDF/TIFF). Escriba los números de página o los intervalos de páginas que desea obtener en el resultado. Para un intervalo de páginas, use un guión, como pages=["1-3", "5-6"]. Separe cada número de página o intervalo con una coma.

Devoluciones

Instancia de AsyncLROPoller. Llame a result() en el objeto poller para devolver una lista[RecognizedForm].

Tipo de valor devuelto

Excepciones

Ejemplos

Reconocer los campos de recibo de ventas de una dirección URL.


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

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

   async with FormRecognizerClient(
       endpoint=endpoint, credential=AzureKeyCredential(key)
   ) as form_recognizer_client:
       url = "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/main/sdk/formrecognizer/azure-ai-formrecognizer/tests/sample_forms/receipt/contoso-receipt.png"
       poller = await form_recognizer_client.begin_recognize_receipts_from_url(receipt_url=url)
       receipts = await 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

Cierre la FormRecognizerClient sesión.

async close() -> None

Excepciones

send_request

Ejecuta una solicitud de red mediante la canalización existente del cliente.

La dirección URL de la solicitud puede ser relativa a la dirección URL base. La versión de la API de servicio usada para la solicitud es la misma que la del cliente, a menos que se especifique lo contrario. La invalidación de la versión de API configurada del cliente en la dirección URL relativa se admite en el cliente con la versión de API 2022-08-31 y versiones posteriores. Invalidación en dirección URL absoluta admitida en el cliente con cualquier versión de API. Este método no genera si la respuesta es un error; para generar una excepción, llame a raise_for_status() en el objeto de respuesta devuelto. Para obtener más información sobre cómo enviar solicitudes personalizadas con este método, vea https://aka.ms/azsdk/dpcodegen/python/send_request.

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

Parámetros

request
HttpRequest
Requerido

Solicitud de red que desea realizar.

Devoluciones

Respuesta de la llamada de red. No realiza el control de errores en la respuesta.

Tipo de valor devuelto

Excepciones