From 4ee70d6c2c9bdf9dbe558c16a1aa3c1fde9c831e Mon Sep 17 00:00:00 2001 From: iyoubee Date: Sun, 9 Jun 2024 06:10:33 +0700 Subject: [PATCH 1/2] change to method post --- .github/workflows/deploy.yml | 31 ------------------------------- app.py | 17 ++++++++++++----- 2 files changed, 12 insertions(+), 36 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 61dbf98..e340b5a 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -57,34 +57,3 @@ jobs: run: | docker build -t $GCP_REGION-docker.pkg.dev/$GCP_PROJECT_ID/ulascan/$APP_NAME:latest . docker push $GCP_REGION-docker.pkg.dev/$GCP_PROJECT_ID/ulascan/$APP_NAME:latest - - deploy: - needs: build - runs-on: ubuntu-latest - - steps: - - name: Install SSH client - run: sudo apt-get install -y ssh - - - name: Set up SSH - run: | - echo "$SSH_PRIVATE_KEY" > ssh_key - chmod 600 ssh_key - - - name: Deploy to GCE - run: | - ssh -o StrictHostKeyChecking=no \ - -i ssh_key \ - ulascan@$GCE_INSTANCE_IP \ - "gcloud --quiet auth configure-docker $GCP_REGION-docker.pkg.dev \ - && docker pull $GCP_REGION-docker.pkg.dev/$GCP_PROJECT_ID/ulascan/$APP_NAME:latest \ - && docker stop $APP_NAME || true \ - && docker rm --force $APP_NAME || true \ - && docker run -d \ - --name $APP_NAME \ - -p 5000:5000 \ - $GCP_REGION-docker.pkg.dev/$GCP_PROJECT_ID/ulascan/$APP_NAME:latest \ - && docker image prune -f" - - - name: Cleanup SSH key - run: rm ssh_key diff --git a/app.py b/app.py index 03f67dc..fa4fb6f 100644 --- a/app.py +++ b/app.py @@ -1,4 +1,4 @@ -from flask import Flask, request +from flask import Flask, request, jsonify from utils import get_model, get_tokenizer, predict_sentiment app = Flask(__name__) @@ -10,15 +10,22 @@ tokenizer = get_tokenizer(MODEL_NAME) model = get_model(PRETRAINED_PATH) -@app.route("/predict/", methods=['GET']) +@app.route("/predict/", methods=['POST']) def predict(): - statements = request.json.get("statements") + data = request.json + if data is None: + return jsonify({"error": "Invalid JSON"}), 400 + + statements = data.get("statements") + if statements is None: + return jsonify({"error": "No statements provided"}), 400 + # statements: list of reviews report = {'Positive': 0, 'Negative': 0} for statement in statements: sentiment = predict_sentiment(statement, tokenizer, model, MAX_LENGTH) report[sentiment] += 1 - return report + return jsonify(report) if __name__ == "__main__": - app.run(host='0.0.0.0', port=5000) \ No newline at end of file + app.run(host='0.0.0.0', port=5000) From 47a78190e3bbdd679c9eaa0cf26a1cc07575364a Mon Sep 17 00:00:00 2001 From: iyoubee Date: Sun, 9 Jun 2024 06:13:47 +0700 Subject: [PATCH 2/2] delete unecesary slash --- app.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app.py b/app.py index fa4fb6f..a78e55d 100644 --- a/app.py +++ b/app.py @@ -10,7 +10,7 @@ tokenizer = get_tokenizer(MODEL_NAME) model = get_model(PRETRAINED_PATH) -@app.route("/predict/", methods=['POST']) +@app.route("/predict", methods=['POST']) def predict(): data = request.json if data is None: