728x90
반응형
SMALL
pyenv
pyenv로 파이썬 3.11.9 버전을 활성화시킨다.
pyenv activate py3_11_9
초기 디렉토리에서 flaskapp 디렉토리를 생성한다.
mkdir flaskapp
flask
vim 에디터로 main 파이썬 파일을 생성한다.
vim main.py
import numpy as np
from sklearn.linear_model import LinearRegression
import psycopg2
from flask import Flask, request, jsonify
app = Flask(__name__)
np.random.seed(0)
X = np.random.rand(10, 1)
y = 2 * X + 1 + 0.1 * np.random.randn(10, 1)
model = LinearRegression()
model.fit(X, y)
@app.route('/')
def welcome():
return 'HELLO, ML API SERVER'
@app.route('/predict', methods=['POST'])
def predict():
data = request.json
new_X = data['input']
new_X_val = float(new_X[0])
input_X = np.array(new_X_val).reshape(1, -1)
y_pred = model.predict(input_X)
y_pred_list = y_pred.tolist()
y_pred_val = round(y_pred_list[0][0], 5)
conn = psycopg2.connect(dbname='ml', user='postgres', password='postgres', host='127.0.0.1', port=5432)
cur = conn.cursor()
query = "INSERT INTO pred_result (input, output) VALUES (%s, %s)"
values = (new_X_val, y_pred_val)
cur.execute(query, values)
conn.commit()
cur.close()
conn.close()
res = jsonify({'input': new_X_val, 'predicted_output': y_pred_val})
return res
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
포트 설정
flask 서버를 위해 5000번 포트를 열어준다.
python main.py
predict 수행
curl -d "{""input"":[""0.8""]}" -H "Content-Type: application/json" -X POST http://{퍼블릭 IPv4 주소}:5000/predict
728x90
반응형
LIST
'App Programming > AWS' 카테고리의 다른 글
[AWS] 도커 컨테이너 nginx 배포 (0) | 2024.06.11 |
---|---|
[AWS] 도커 컨테이너 배포 (0) | 2024.06.11 |
[AWS] PostgreSQL 설치 (0) | 2024.05.31 |
[AWS] 도커 설치 (0) | 2024.05.30 |
[AWS] EC2 Jupyter 서버 (0) | 2024.05.21 |