From d688c26d4c70b31d9d7c03189799bc1250148ff3 Mon Sep 17 00:00:00 2001 From: ***** Date: Tue, 5 Sep 2023 14:58:02 -0700 Subject: [PATCH] add basic flask app --- Dockerfile | 13 ------------- flask/flask_api.py | 33 +++++++++++++++++++++++++++++++++ flask/test_api.py | 27 +++++++++++++++++++++++++++ 3 files changed, 60 insertions(+), 13 deletions(-) delete mode 100644 Dockerfile create mode 100644 flask/flask_api.py create mode 100644 flask/test_api.py diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index fe180a5..0000000 --- a/Dockerfile +++ /dev/null @@ -1,13 +0,0 @@ -FROM python:3.11-slim - -COPY ./requirements.txt . - -RUN --mount=type=cache,target=/root/.cache \ - pip install -r requirements.txt -RUN pip install gradio - -ENV PYTHONUNBUFFERED 1 - -COPY . . - -CMD ["python", "gradio_app.py"] diff --git a/flask/flask_api.py b/flask/flask_api.py new file mode 100644 index 0000000..f69e63f --- /dev/null +++ b/flask/flask_api.py @@ -0,0 +1,33 @@ +from flask import Flask, request, jsonify +from naamkaran.generate import generate_names + +app = Flask(__name__) + +@app.route('/generate_names', methods=['POST']) +def generate_names_api(): + # Get request data as JSON + data = request.get_json() + + # Extract parameters from JSON data or set default values + start_letter = data.get('start_letter', 'a') + end_letter = data.get('end_letter', None) + how_many = data.get('how_many', 1) + max_length = data.get('max_length', 5) + gender = data.get('gender', 'M') + temperature = data.get('temperature', 0.5) + + # Generate names using the provided parameters + names = generate_names( + start_letter=start_letter, + end_letter=end_letter, + how_many=how_many, + max_length=max_length, + gender=gender, + temperature=temperature + ) + + # Return the generated names as JSON + return jsonify(names) + +if __name__ == '__main__': + app.run(debug=True) diff --git a/flask/test_api.py b/flask/test_api.py new file mode 100644 index 0000000..759b910 --- /dev/null +++ b/flask/test_api.py @@ -0,0 +1,27 @@ +import requests +import json + +# API endpoint URL +url = 'http://127.0.0.1:5000/generate_names' # Update with your actual URL if needed + +# Request payload (JSON data) +data = { + 'start_letter': 'A', + 'how_many': 10 +} + +# Send a POST request to the API +response = requests.post(url, json=data) + +# Check if the request was successful (HTTP status code 200) +if response.status_code == 200: + # Parse the JSON response + generated_names = response.json() + + # Print the generated names + print("Generated Names:") + for name in generated_names: + print(name) +else: + print(f"Request failed with status code {response.status_code}") + print(response.text)