AWS textract - UnsupportedDocumentException - PullRequest
0 голосов
/ 20 апреля 2020

При реализации aws textract с использованием boto3 для python.

Код:

import boto3

# Document
documentName = "/home/niranjan/IdeaProjects/amazon-forecast-samples/notebooks/basic/Tutorial/cert.pdf"

# Read document content
with open(documentName, 'rb') as document:
    imageBytes = bytearray(document.read())

print(type(imageBytes))

# Amazon Textract client
textract = boto3.client('textract', region_name='us-west-2')

# Call Amazon Textract
response = textract.detect_document_text(Document={'Bytes': imageBytes})

ниже приведены учетные и конфигурационные файлы aws

niranjan@niranjan:~$ cat ~/.aws/credentials
[default]
aws_access_key_id=my_access_key_id
aws_secret_access_key=my_secret_access_key

niranjan@niranjan:~$ cat ~/.aws/config 
[default]
region=eu-west-1

Я получаю это исключение:

---------------------------------------------------------------------------
UnsupportedDocumentException              Traceback (most recent call last)
<ipython-input-11-f52c10e3f3db> in <module>
     14 
     15 # Call Amazon Textract
---> 16 response = textract.detect_document_text(Document={'Bytes': imageBytes})
     17 
     18 #print(response)

~/venv/lib/python3.7/site-packages/botocore/client.py in _api_call(self, *args, **kwargs)
    314                     "%s() only accepts keyword arguments." % py_operation_name)
    315             # The "self" in this scope is referring to the BaseClient.
--> 316             return self._make_api_call(operation_name, kwargs)
    317 
    318         _api_call.__name__ = str(py_operation_name)

~/venv/lib/python3.7/site-packages/botocore/client.py in _make_api_call(self, operation_name, api_params)
    624             error_code = parsed_response.get("Error", {}).get("Code")
    625             error_class = self.exceptions.from_code(error_code)
--> 626             raise error_class(parsed_response, operation_name)
    627         else:
    628             return parsed_response

UnsupportedDocumentException: An error occurred (UnsupportedDocumentException) when calling the DetectDocumentText operation: Request has unsupported document format

Я немного новичок в AWS textract, любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 22 апреля 2020

Поскольку DetectDocumentText API Textract не поддерживает тип документа "pdf", отправка PDF, с которым вы столкнетесь UnsupportedDocumentFormat Exception. Попробуйте вместо этого отправить файл изображения.

Incase, если вы все еще хотите отправить файл PDF, вам придется использовать асинхронные API-интерфейсы Textract. Например, StartDocumentAnalysis API для запуска анализа и GetDocumentAnalysis для получения анализируемого документа.

Обнаруживает текст во входном документе. Amazon Textract может обнаруживать строки текста и слова, составляющие строку текста. Входной документ должен быть изображением в формате JPEG или PNG. DetectDocumentText возвращает обнаруженный текст в массиве объектов Block.

https://docs.aws.amazon.com/textract/latest/dg/API_DetectDocumentText.html

...