Skip to content

a2i2/threshy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published