-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmodel_ns.py
85 lines (70 loc) · 3.38 KB
/
model_ns.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
from flask import request, jsonify
from flask_restx import Resource, Api, Namespace, fields
import numpy as np
import pandas as pd
import os
import os.path as path
from PIL import Image
import requests
def predict_result(data):
#예측 수행 라벨 값 출력 -> 문자열로 처리 필요
output = (0)
return output
def output_process(output):
#라벨링 된 값을 문자열로 변환
df = pd.read_csv("travel_dataset.csv")
unique_lodAddress = df["LOTNO_ADDR"].unique()
# output_processed = ("충북 영동군 영동읍 계산리 653-12")
output_processed = unique_lodAddress
print(output_processed)
return output_processed
Recommend_Model = Namespace(
name="Recommend Model",
description="RecommendATION APP에서 사용할 추천 모델 API.",
)
RM_Input = Recommend_Model.model('Recommend Model Input', { # Model 객체 생성
'input_data' : fields.List(fields.Integer, required=True\
,default=[0, 0, 0, 0,0,0, 0, 0,0,0, 0, 0]\
,description='[성별(AGE), \
여행동반자관계(TCR), \
동반자연령대(AGE), \
여행동기(TMT)1~3, \
여행스타일(TSY), \
미션(MIS)1~3, \
소득(INC), \
숙소유형(HTY),]'\
,example="[0, 0, 0, 0,0,0, 0, 0,0,0, 0, 0]")
})
RM_Recommend = Recommend_Model.model('RM Recommend output', {
'output_data': fields.List(fields.String, description='추천도에 따른 내림차순 방문지주소 배열',
required=True,
example="[충북 영동군 영동읍 계산리 653-12,...]",
default=["충북 영동군 영동읍 계산리 653-12"])
})
# RM_Recommend = Recommend_Model.inherit('RM Recommend output', RM_Input, {
# 'output_data': fields.Raw(description='tuple : (방문지명, \
# 방문지주소, \
# 방문지유형)',
# required=True,
# example="3000냥밥집, \
# 충북 영동군 영동읍 계산리 653-12, 식당")
# })
# @Recommend_Model.route('/', methods=['GET','POST'])
@Recommend_Model.route('/Recommend', methods=['GET','POST'])
class RMPost(Resource):
@Recommend_Model.expect(RM_Input)
@Recommend_Model.response(201,"Success", RM_Recommend)
def post(self):
"""Model이 예측을 수행하고 output을 처리과정을 거쳐서 다른 서버로 전송."""
if request.method == 'POST':
# received_data = request.json.get('input_data')
# received_data = Recommend_Model.payload['input_data']
received_data = request.json
prediction_result = predict_result(received_data)
# 예측을 수행
# output라벨링된 값이므로 라벨링값을 실제 명칭으로 변환
processed_output = output_process(prediction_result)
# 데이터를 명칭값으로 변환
print(type(processed_output))
return jsonify(processed_output.tolist())
# return processed_output