Aiviro CLI

Aiviro comes with few CLI commands for creating, managing and inspecting your Aiviro scripts. For detailed information about available commands and theirs arguments, see:

$ aiviro-cli --help

Create Project & Scenarios

To create a new Aiviro project, we predefined a repository structure how such a project should look like. This can be initialize by aiviro-cli create project. To add new scenario into already existing project, use aiviro-cli create scenario command:

$ aiviro-cli create project --help
$ aiviro-cli create project --context path/to/project/folder
$ aiviro-cli create scenario --help
$ aiviro-cli create scenario --prefect-project Aiviro --prefect-flow "Invoice Processing" --prefect-env rdp

Logs Management

See Explorer section for web application to explore logs and metadata.

Process Metadata Logs

As mentioned in the section Generate Images, you can generate images from Aiviro metadata.

This is done by aiviro-cli log generate command, see the example of it’s usage:

$ aiviro-cli log generate --help
$ aiviro-cli log generate --input logs/runs/run-demo_test/images_metadata/ \\
    --output logs/run-demo_test/log_img/ \\
    --number 20
$ aiviro-cli log generate --input logs/runs/run-demo_test/images_metadata/ \\
    --output logs/run-demo_test/log_img/ \\
    --since 1955.11.12-6:38
$ aiviro-cli log generate --input logs/runs/run-demo_test/images_metadata/ \\
    --output logs/run-demo_test/log_img/ \\
    --before 2015.10.21-7:28
$ aiviro-cli log generate --input logs/runs/run-demo_test/images_metadata/ \\
    --output logs/run-demo_test/log_img/ \\
    --since 1955.11.12-6:38 \\
    --before 2015.10.21-7:28 \\
    --number 100

Analyze Errors

Sometimes your scripts may encounter some errors, to find the exact error-message and corresponding images, in long running scripts may be time demanding. Therefore we created a helpful script, which automatically detects errors in the text logs and selects appropriate metadata based on the time the error occurred, which are then copied into separate sub-folders.

This is done by aiviro-cli log analyze command, see the example of it’s usage:

$ aiviro-cli log analyze --help
$ aiviro-cli log analyze --run logs/runs/run-2021-02-10_10-25-456-main/ --window 0:30:00
$ aiviro-cli log analyze --logs logs/ --video

Generating Video

To generate a video from the metadata logs, use aiviro-cli log video command.

$ aiviro-cli log video --help
$ aiviro-cli log video --input logs/runs/run-demo_test/images_metadata/ --output logs/runs/run-demo_test/videos/

Connectivity Testing

Using aiviro-cli test-connection --help command, you can run tests for various Aiviro components. For example to test and select the best configuration for Aiviro email module, use a following command:

# Test IMAP email module
$ aiviro-cli test-connection imap --host <imap.server.com> --username <username> --password <password>

# Test SMTP email module
$ aiviro-cli test-connection smtp --host <smtp.server.com> --username <username> --password <password>

# Test RDP module
$ aiviro-cli test-connection rdp --host <rdp.server.com> --username <username> --password <password>

Statistics Calculation

To facilitate performance monitoring and gain insights into your automation scenarios, Aiviro CLI offers several commands for calculating statistics based on different sources, including local logs and Prefect logs. This allows users to assess key metrics such as success rates, execution times, error frequencies, and more.

Local Logs

Use aiviro-cli log stats local --help command to calculate statistics based on local stats. Check the section Log Structure for more information about where to find local logs and stats.

# Calculate statistics based on all local stats
$ aiviro-cli log stats local --input path/to/logs/stats/

# Split statistics into months and select only 'main_story01' scenario
$ aiviro-cli log stats local --input path/to/logs/stats/ --name main_story01 --monthly

Prefect Logs

To retrieve data from Prefect GraphQL API, you can use aiviro-cli log stats prefect --help command.

# Calculate statistics based on all Prefect logs in the specified time range
$ aiviro-cli log stats prefect --endpoint <prefect_endpoint> --start-date 01-01-2024 --end-date 01-03-2024

# Split the statistics into months and include also markdown reports
$ aiviro-cli log stats prefect --endpoint <prefect_endpoint> --start-date 01-01-2024 --end-date 01-03-2024 --monthly --markdown

# Store the statistics with the raw data into excel file
$ aiviro-cli log stats prefect --endpoint <prefect_endpoint> --start-date 01-01-2024 --end-date 01-03-2024 --output path/to/folder/

Deployment as Web App

Note

It’s required to install deploy from Optional dependencies section.

To test certain Aiviro functionality you can deploy it as a web application.

$ aiviro-cli deploy --help

Explorer

Explorer allows you to list all available logs and metadata. You can easily download text, image or video logs. It can also analyze these logs and detect errors.

# to deploy explorer locally as a web-app without docker container
$ aiviro-cli deploy explorer local --logs path/to/logs/

# to deploy explorer as a docker container
$ aiviro-cli deploy explorer start --logs path/to/logs/ --detach

# to stop docker deployment
$ aiviro-cli deploy explorer stop
../_images/deploy_explorer_logs.png

List of available logs in Aiviro Explorer.

../_images/deploy_explorer_overview.png

Overview of selected log in Aiviro Explorer.

../_images/deploy_explorer_errors.png

Errors detection in Aiviro Explorer.

Reader

Reader allows you to extract data from PDF files and calculate the accuracy of the extracted data.

$ aiviro-cli deploy reader
../_images/deploy_reader.png

Deployed Aiviro Reader as an interactive web application.

Recognition

Recognition allows you to recognize text and elements in images, it shows you how Aiviro sees your application.

$ aiviro-cli deploy recognition
../_images/deploy_recognition.png

Deployed Aiviro Recognition as an interactive web application.

Reader Scripts

Note

It’s required to install reader and pdf from Optional dependencies section.

See section Reader below for web application to extract data from PDF files.

There are several scripts under aiviro-cli reader --help command, which can be used to extract data from the provided PDF files. Other example is to calculate an accuracy of Aiviro Reader based on your ground-truth data export. For extraction and additional information about supported items, see Invoice Processing section.

To extract all supported items from pdf files, use a following command:

$ aiviro-cli reader extract --help
$ aiviro-cli reader extract --input folder/pdfs/ --output output/folder/

To calculate reader’s accuracy, see its example below. This calculation can be configured (this is optional) by providing a configuration file, see example of it below. Download reader_config.yaml

required_column:
  - supplier_vat_number
  - invoice_number
  - order_number

map_column:
  supplier_vat_number: "DIČ DPH"
  primary_total_amount_without_vat: "Č.celk. bez DPH d."
  invoice_date: "Datum případu (DMR)"
  invoice_number: "Dodavatelská faktura"
  primary_currency: "Měna"
  tax_date: "DUZP"
  file_name: "Párovací znak"
  order_number: "Číslo objednávky"

export_value:
  - supplier_vat_number
  - invoice_date
  - invoice_number
  - primary_currency
  - order_number
  • required_column - columns which must be contained in both input csv files

  • map_column - used for renaming ground-truth csv file columns to standard name format

  • export_value - [optional] values to export from pdf-files, if not specified all values are exported

$ aiviro-cli reader stats --help
$ aiviro-cli reader stats --input export_data.csv --ground-truth gt_data.csv --output folder/ --config path/reader_config.yaml

To check whether the exported data is also present in corresponding pdf files, use reader find.

$ aiviro-cli reader find --help
$ aiviro-cli reader find --input pdf-folder/ --ground-truth gt_data.csv --output folder/ --config path/reader_config.yaml