Threshy is a visualisation tool designed for software engineers to set decision thresholds when integrating their apps with machine-learnt components.
Below is a walkthrough about Threshy and how to use it:
For a live demo of Threshy, click here. Please note that Threshy is currently not supported using Safari.
You can read more about the foundations behind Threshy in our associated paper on arXiv.
Threshy was presented at Demonstrations Track of the 2020 ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE).
Please cite Threshy if you use it in your own work:
@inproceedings{Cummaudo:2020fse-demo,
address = {Virtual Event, USA},
author = {Cummaudo, Alex and Barnett, Scott and Vasa, Rajesh and Grundy, John},
booktitle = {Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering},
doi = {10.1145/3368089.3417919},
month = {nov},
pages = {5},
publisher = {ACM},
title = {{Threshy: Supporting Safe Usage of Intelligent Web Services}},
year = {2020}
}
First install Surround if you have not already:
$ pip3 install surround
Now you can run the tool using (production version):
$ surround run prod
-
Create a Google Cloud Platform (GCP) project.
-
Via the GCP Console:
- Enable the Cloud Run API, Cloud Storage API, and Google Container Registry API
- Create a Service Account with permissions for the above
- Download the JSON credentials file and store in the root of the project as
credentials.json
- Create a cloud bucket (e.g.
threshy-storage
)
-
Then build an image using Surround:
$ surround run build
-
Tag the new image with the Google Container Registry URI using your GCP project name:
$ docker tag a2i2/threshy:latest gcr.io/[PROJECT_NAME_HERE]/a2i2/threshy:latest
-
Authenticate Docker with the Google credentials so we can push the image to Google:
$ cat credentials.json | docker login -u _json_key --password-stdin https://gcr.io
-
Now we can push the container to the Google Container Registry:
docker push gcr.io/[PROJECT_NAME_HERE]/a2i2/threshy:latest
-
Create a new Google Cloud Run service with the following settings:
- Image URI:
gcr.io/[PROJECT_NAME_HERE]/a2i2/threshy:latest
- Environment variable:
BUCKET_URI=gs://[BUCKET_NAME_HERE]
- Image URI:
-
Deploy!