Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from flask import Flask, jsonify,request,session
- from flask_pymongo import PyMongo
- from flask_cors import CORS
- from werkzeug.wrappers import response
- from chat import get_response
- import config,json,uuid,secrets
- config.setup_Api()
- import infermedica_api
- app = Flask(__name__)
- CORS(app) # very important!
- app.config["MONGO_URI"] = "mongodb://localhost:27017/test_DB"
- app.secret_key =secrets.token_bytes(8)
- mongodb_client = PyMongo(app)
- db = mongodb_client.db
- @app.post("/initial") ### initial endpoint for a user to use symptom checker
- def initial_setup():
- ''' Example payload
- {
- "age":"25",
- "age_unit":"year",
- "sex":"male"
- }'''
- payload = request.json
- session['interviewID']=uuid.uuid4().hex
- session["age"] = int(payload["age"])
- session["age_unit"] = payload["age_unit"]
- session["sex"] =payload["sex"]
- return session['interviewID']
- @app.post("/diagnosis_start") ### start diagonosis symptom checker
- def diagnosis_start():
- ''' Example payload
- {
- "message":"i am feeling headache and vomiting",
- "extras":""
- }'''
- payload = request.json
- api: infermedica_api.APIv3Connector = infermedica_api.get_api()
- # interview_id=payload["interviewID"]
- extras=payload["extras"]
- message=payload["message"]
- ParseData=api.parse(message,session["age"])
- ParseDump=json.dumps(ParseData)
- loadParseDump = json.loads(ParseDump)
- mentions = loadParseDump["mentions"]
- evidence = []
- for key, value in enumerate(mentions):
- data_set = {}
- #data_set = {"id": value['id'], "common_name": value['common_name'], "choice_id": value['choice_id']}
- data_set = {"id": value['id'],"choice_id": value['choice_id'],"source":"initial"}
- evidence.insert(key, data_set)
- # call diagnosis
- diagnosis_start = api.diagnosis(evidence,session["sex"],session["age"],session["age_unit"],extras,session['interviewID'])
- return json.dumps(diagnosis_start)
- @app.post("/interview")
- def interview():
- payload = request.json
- @app.post("/healthbuddy")
- def bot():
- text = request.json
- #TODO: check the text validity
- response = get_response(text["message"])
- reply = {"response": response}
- return reply
- if __name__=="__main__":
- app.run(host='0.0.0.0',port=4567)
Add Comment
Please, Sign In to add comment