Mercurial > repos > kls286 > chap_test_20230328
diff MLaaS/demo.sh @ 0:cbbe42422d56 draft
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
author | kls286 |
---|---|
date | Tue, 28 Mar 2023 15:07:30 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MLaaS/demo.sh Tue Mar 28 15:07:30 2023 +0000 @@ -0,0 +1,179 @@ +#!/bin/bash +# TFaaS host name +turl=http://localhost:8083 +# location of files +tdir=/home/vk/chess/TFaaS/models +# we need the following files +model_tarball=$tdir/model.tar.gz +params_json=$tdir/vk/params.json +input_json=$tdir/vk/input.json +upload_json=$tdir/vk/upload.json +model_pb=$tdir/vk/model.pb +labels_txt=$tdir/vk/labels.txt +tfaas_client=$tdir/tfaas_client.py +hey=$tdir/hey-tools/hey_amd64 + +echo "### obtain any existing ML model" +echo +echo "$tfaas_client --url=$turl --models" +echo +$tfaas_client --url=$turl --models +sleep 1 +echo + +echo "### upload new ML model" +echo +echo "cat $upload_json" +echo +cat $upload_json +echo +echo "$tfaas_client --url=$turl --upload=$upload_json" +$tfaas_client --url=$turl --upload=$upload_json +echo + +echo "### view if our model exists" +echo +echo "$tfaas_client --url=$turl --models" +echo +$tfaas_client --url=$turl --models +sleep 2 +echo + +echo "### view if our model exists, but use jq tool to get better view over JSON" +echo +echo "$tfaas_client --url=$turl --models | jq" +echo +$tfaas_client --url=$turl --models | jq +sleep 2 +echo + +echo "### let's obtain some prediction" +echo +echo "cat $input_json" +echo +cat $input_json +echo +echo "$tfaas_client --url=$turl --predict=$input_json" +echo +$tfaas_client --url=$turl --predict=$input_json +sleep 2 +echo + +echo "### let's delete our ML model named vk" +echo +echo "$tfaas_client --url=$turl --delete=vk" +echo +$tfaas_client --url=$turl --delete=vk +sleep 1 +echo + +echo "### lets view again available models" +echo +echo "$tfaas_client --url=$turl --models" +echo +$tfaas_client --url=$turl --models +sleep 2 +echo + +echo "### now let's use curl as CLI tool to communicate with TFaaS" +echo +sleep 5 + +echo "### Let's view our models" +echo +echo "curl -s $turl/models" +echo +curl -s $turl/models +sleep 1 +echo + +echo "### let's send POST HTTP request with our parameters to upload ML model" +echo "### we provide $params_json" +echo +cat $params_json +echo +echo "### we provide $model_pb TF model" +echo +ls -al $model_pb +echo +echo "### and we provide our labels in $labels_txt file" +echo +cat $labels_txt +echo +echo "### now we make curl call" +echo +echo "curl -s -X POST $turl/upload -F 'name=vk' -F 'params=@$params_json' -F 'model=@$model_pb' -F 'labels=@$labels_txt'" +echo +curl -s -X POST $turl/upload -F 'name=vk' -F "params=@$params_json" -F "model=@$model_pb" -F "labels=@$labels_txt" +sleep 1 +echo + +echo "### Now we can view our models" +echo +echo "curl -s $turl/models | jq" +echo +curl -s $turl/models | jq +echo +sleep 2 + +echo "### And we can obtain our predictions using /json API" +echo +echo "curl -s -X POST $turl/json -H "Content-type: application/json" -d@$input_json" +echo +curl -s -X POST $turl/json -H "Content-type: application/json" -d@$input_json +sleep 1 +echo + +echo "### Now we can delete ML model using /delete end-point" +echo +echo "curl -s -X DELETE $turl/delete -F 'model=vk'" +echo +curl -s -X DELETE $turl/delete -F 'model=vk' +sleep 1 +echo + +echo "### Now we can view our models" +echo +echo "curl -s $turl/models" +echo +curl -s $turl/models +echo +sleep 1 + +$tfaas_client --url=$turl --upload=$upload_json + +echo +echo "### now let's use tar ball and upload it" +echo +ls -al $model_tarball +tar tvfz $model_tarball +sleep 5 + +echo "curl -v -X POST -H \"Content-Encoding: gzip\" -H \"content-type: application/octet-stream\" --data-binary @$model_tarball $turl/upload" +curl -v -X POST -H"Content-Encoding: gzip" -H"content-type: application/octet-stream" --data-binary @$model_tarball $turl/upload +sleep 1 +echo + +echo "### Now we can view our models" +echo +echo "curl -s $turl/models | jq" +echo +curl -s $turl/models | jq +echo +sleep 2 + +echo "### And we can obtain our predictions using /json API" +echo +echo "curl -s -X POST $turl/json -H "Content-type: application/json" -d@$input_json" +echo +curl -s -X POST $turl/json -H "Content-type: application/json" -d@$input_json +sleep 1 +echo + +if [ -f $hey ]; then +echo "### Now let's perform some stress tests" +echo "### for that we'll use hey tool which will send number of concurrent requests to tfaas service" +echo +echo "$hey -m POST -H "Content-type: application/json" -D $input_json $turl/json" +$hey -m POST -H "Content-type: application/json" -D $input_json $turl/json +fi