RPA.DocumentAI.Nanonets
Library to support Nanonets service for intelligent document processing (IDP).
Library requires at the minimum rpaframework version 19.0.0.
Service supports identifying fields in the documents, which can be given to the service in multiple different file formats and via URL.
Robot Framework example usage
*** Settings ***
Library RPA.DocumentAI.Nanonets
Library RPA.Robocorp.Vault
*** Tasks ***
Identify document
${secrets}= Get Secret nanonets-auth
Set Authorization ${secrets}[apikey]
${result}= Predict File
... ${CURDIR}${/}files${/}eckero.jpg
... ${secrets}[receipts-model-id]
${fields}= Get Fields From Prediction Result ${result}
FOR ${field} IN @{fields}
Log To Console Label:${field}[label] Text:${field}[ocr_text]
END
${tables}= Get Tables From Prediction Result ${result}
FOR ${table} IN @{tables}
FOR ${rows} IN ${table}[rows]
FOR ${row} IN @{rows}
${cells}= Evaluate [cell['text'] for cell in $row]
Log To Console ROW:${{" | ".join($cells)}}
END
END
END
Python example usage
from RPA.DocumentAI.Nanonets import Nanonets
from RPA.Robocorp.Vault import Vault
secrets = Vault().get_secret("nanonets-auth")
nanolib = Nanonets()
nanolib.set_authorization(secrets["apikey"])
result = nanolib.predict_file(file_to_scan, secrets["receipts-model-id"])
fields = nanolib.get_fields_from_prediction_result(result)
for field in fields:
print(f"Label: {field['label']} Text: {field['ocr_text']}")
tables = nanolib.get_tables_from_prediction_result(result)
for table in tables:
rpatable = Tables().create_table(table["rows"])
for row in table["rows"]:
cells = [cell["text"] for cell in row]
print(f"ROW: {' | '.join(cells)}")