A package to support Indico IPA development
Project description
Indico-Toolkit
A library to assist Indico IPA development
Available Functionality
The indico-toolkit provides classes and functions to help achieve the following:
- Easy batch workflow submission and retrieval.
- Classes that simplify dataset/doc-extraction functionality.
- Row and line item association.
- Highlighting extraction predictions on source PDFs.
- Staggered loop learning retrieval and reformatting.
- Train a document classification model without labeling.
- Train a first page classification model (for bundle splitting) without labeling.
- Helpful Scripted/Auto Review processing and submission.
- Common manipulation of prediction/workflow results.
- Objects to simplify parsing OCR responses.
- Finder class to quicky obtain associated model/dataset/workflow Ids.
- Snapshot merging and manipulation
- Class to spoof a human reviewer.
Example Useage
For scripted examples on how to use the toolkit, see the examples directory
Tests
To run the test suite you will need to set the following environment variables: HOST_URL, API_TOKEN_PATH. You can also set WORKFLOW_ID (workflow w/ single extraction model), MODEL_NAME (extraction model name) and DATASET_ID (uploaded dataset). If you don't set these 3 env variables, test configuration will upload a dataset and create a workflow.
pytest
To see test coverage
coverage run --omit 'venv/*' -m pytest
coverage report -m
Example
How to get prediction results and write the results to CSV
from indico_toolkit.indico_wrapper import Workflow
from indico_toolkit.pipelines import FileProcessing
from indico_toolkit import create_client
WORKFLOW_ID = 1418
HOST = "app.indico.io"
API_TOKEN_PATH = "./indico_api_token.txt"
# Instantiate the workflow class
client = create_client(HOST, API_TOKEN_PATH)
wflow = Workflow(client)
# Collect files to submit
fp = FileProcessing()
fp.get_file_paths_from_dir("./datasets/disclosures/")
# Submit documents, await the results and write the results to CSV in batches of 10
for paths in fp.batch_files(batch_size=10):
submission_ids = wflow.submit_documents_to_workflow(WORKFLOW_ID, paths)
submission_results = wflow.get_submission_results_from_ids(submission_ids)
for filename, result in zip(paths, submission_results):
result.predictions.to_csv("./results.csv", filename=filename, append_if_exists=True)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file indico_toolkit-1.0.1.tar.gz
.
File metadata
- Download URL: indico_toolkit-1.0.1.tar.gz
- Upload date:
- Size: 9.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.25.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 59f6e79ed9d7bbdf1e27f0ced1bd255c675ca271f7b5383bf587a3ae13c5a23d |
|
MD5 | 569b7a2fbe504668a1060ae6fc445a78 |
|
BLAKE2b-256 | 26e3400280e7f1593264fbc722c265deb6a0187f50244a102cca337f709a40cb |
File details
Details for the file indico_toolkit-1.0.1-py2.py3-none-any.whl
.
File metadata
- Download URL: indico_toolkit-1.0.1-py2.py3-none-any.whl
- Upload date:
- Size: 35.6 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.25.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17e1157389478805102cc9c2928fb597236c6a0d0d94de5277ca2d711249a34a |
|
MD5 | 8a97a8224111c8c8e78556cbddc8a2b3 |
|
BLAKE2b-256 | c4688f4d6c19ab01758c38d80f20844134242b7085ef360749b1565951d0a71e |