Skip to content

Latest commit

 

History

History
84 lines (68 loc) · 3.07 KB

README.md

File metadata and controls

84 lines (68 loc) · 3.07 KB

Threshy

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:

Walkthrough

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.

Citing Threshy

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}
}

Installing Threshy

Prerequisites

Run locally

First install Surround if you have not already:

$ pip3 install surround

Now you can run the tool using (production version):

$ surround run prod

Deployment to Google Cloud Run

  • 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]
  • Deploy!