-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.py
121 lines (94 loc) · 3.34 KB
/
app.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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
from flask import Flask, request, jsonify
from YOLOdiagnose import *
from AI_chatbot import *
from flask_cors import CORS, cross_origin
from questionnaire import *
import base64
import cv2
app = Flask(__name__)
CORS(app)
@app.route('/')
def hello_world(): # put application's code here
return 'Hello World!'
@app.route('/predict/<disease>', methods=['POST'])
def predict_diagnosis(disease):
try:
image_data = request.json.get('imageData')
if not image_data:
return jsonify({'error': 'No image data provided'}), 400
# Debugging print statements
print("Received image data")
base64_data = image_data.split(',')[1]
image_data = base64.b64decode(base64_data)
upload_dir = 'uploaded_picture'
if not os.path.exists(upload_dir):
os.makedirs(upload_dir)
image_path = os.path.join(upload_dir, 'image.jpg')
# Debugging print statements
print(f"Saving image to: {image_path}")
with open(image_path, 'wb') as f:
f.write(image_data)
# Confirm that file was created
if not os.path.isfile(image_path):
raise FileNotFoundError(f"File was not created: {image_path}")
load_model() # Ensure YOLO model is loaded
prediction = predict(disease) # Pass the image path to predict
os.remove(image_path) # Clean up the uploaded image after prediction
return jsonify({'prediction': prediction})
except Exception as e:
# More detailed error reporting
print(f"Error in /predict endpoint: {e}")
return jsonify({'error': 'An error occurred processing the request.'}), 500
@app.route('/anxiety', methods=['POST'])
def anxiety_diagonsis():
data = request.json
message = data['message']
for i in range(len(message)):
if message[i] == 'Often':
message[i] = 4
elif message[i] == 'Sometimes':
message[i] = 3
elif message[i] == 'Rarely':
message[i] = 2
elif message[i] == 'Never':
message[i] = 1
analysis = get_anxiety(message)
return {'analysis': analysis}
@app.route('/depression', methods=['POST'])
def depression_diagonsis():
data = request.json
message = data['message']
for i in range(len(message)):
if message[i] == 'Often':
message[i] = 4
elif message[i] == 'Sometimes':
message[i] = 3
elif message[i] == 'Rarely':
message[i] = 2
elif message[i] == 'Never':
message[i] = 1
analysis = get_depression(message)
return {'analysis': analysis}
@app.route('/ptsd', methods=['POST'])
def ptsd_diagonsis():
data = request.json
message = data['message']
for i in range(len(message)):
if message[i] == 'Often':
message[i] = 4
elif message[i] == 'Sometimes':
message[i] = 3
elif message[i] == 'Rarely':
message[i] = 2
elif message[i] == 'Never':
message[i] = 1
analysis = get_ptsd(message)
return {'analysis': analysis}
@app.route('/chatbot', methods=['POST'])
def chatbot():
data = request.json
message = data['message']
output, meme = get_response(message)
return {'message': output, 'meme': meme}
if __name__ == '__main__':
app.run(debug=True)