Usando AWS Textract para processamento de PDF
Quero usar o serviço Textract OCR para ler texto de arquivo pdf. Estou com um problema porque quero fazer localmente, sem o balde S3. Eu testei para arquivos de imagem e funciona bem, mas não funciona para arquivos PDF.
Este é o código em que obtenho um erro:
response = textract.start_document_text_detection(DocumentLocation="sample2.pdf")
Erro:
Invalid type for parameter DocumentLocation, value: sample2.pdf, type: <class 'str'>, valid types: <class 'dict'>
Código 2:
response = textract.start_document_text_detection(DocumentLocation={"name":"sample2.pdf"})
Erro:
Unknown parameter in DocumentLocation: "name", must be one of: S3Object
Código 3:
response = textract.start_document_text_detection(Document={'Bytes': "sample2.pdf"})
Erro:
Unknown parameter in input: "Document", must be one of: DocumentLocation, ClientRequestToken, JobTag, NotificationChannel, OutputConfig
O que devo fazer, existe uma maneira de fazer o Textract funcionar para documentos PDF sem o s3?
Respostas
A resposta curta à sua pergunta é "Não".
Textract funciona com S3 apenas para entrada. y \ Você precisará seguir o formato para a entrada esperada que é descrito para o serviço na documentação do boto3 aqui:https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/textract.html#Textract.Client.start_document_text_detection
Essencialmente, o serviço deseja uma entrada estruturada e você precisa preenchê-la corretamente de acordo com suas especificações. Aqui está a entrada do dicionário DocumentLocation esperada por boto3.
DocumentLocation={
'S3Object': {
'Bucket': 'string',
'Name': 'string',
'Version': 'string'
}
}
Estou tendo alguns problemas semelhantes para fazer isso funcionar no boto3 atualmente também, mas vou continuar trabalhando através dos documentos para ver o que posso descobrir.