Itssuman1808

updated_app.py

Jan 7th, 2022 (edited)
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.30 KB | None | 0 0
  1. from flask import Flask, jsonify,request,session
  2. from flask_pymongo import PyMongo
  3. from flask_cors import CORS
  4. from werkzeug.wrappers import response
  5. from chat import get_response
  6. import config,json,uuid,secrets
  7. config.setup_Api()
  8. import infermedica_api
  9.  
  10. app = Flask(__name__)
  11. CORS(app) # very important!
  12. app.config["MONGO_URI"] = "mongodb://localhost:27017/test_DB"
  13. app.secret_key =secrets.token_bytes(8)
  14.  
  15. mongodb_client = PyMongo(app)
  16. db = mongodb_client.db
  17.  
  18. @app.post("/initial") ### initial endpoint for a user to use symptom checker
  19. def initial_setup():
  20.  
  21.     ''' Example payload
  22.    {
  23.    "age":"25",
  24.    "age_unit":"year",
  25.    "sex":"male"
  26.    }'''
  27.  
  28.     payload = request.json
  29.     session['interviewID']=uuid.uuid4().hex
  30.     session["age"] = int(payload["age"])
  31.     session["age_unit"] = payload["age_unit"]
  32.     session["sex"] =payload["sex"]
  33.     return session['interviewID']
  34.  
  35. @app.post("/diagnosis_start")  ### start diagonosis symptom checker
  36. def diagnosis_start():
  37.  
  38.     ''' Example payload
  39.    {
  40.    "message":"i am feeling headache and vomiting",
  41.    "extras":""
  42.    }'''
  43.     payload = request.json
  44.     api: infermedica_api.APIv3Connector = infermedica_api.get_api()
  45.     # interview_id=payload["interviewID"]
  46.     extras=payload["extras"]
  47.     message=payload["message"]
  48.     ParseData=api.parse(message,session["age"])
  49.     ParseDump=json.dumps(ParseData)
  50.     loadParseDump = json.loads(ParseDump)
  51.     mentions = loadParseDump["mentions"]
  52.     evidence = []
  53.     for key, value in enumerate(mentions):
  54.      data_set = {}
  55.      #data_set = {"id": value['id'],  "common_name": value['common_name'],  "choice_id": value['choice_id']}
  56.      data_set = {"id": value['id'],"choice_id": value['choice_id'],"source":"initial"}
  57.      evidence.insert(key, data_set)
  58.     # call diagnosis
  59.     diagnosis_start = api.diagnosis(evidence,session["sex"],session["age"],session["age_unit"],extras,session['interviewID'])
  60.     return  json.dumps(diagnosis_start)
  61.  
  62. @app.post("/interview")
  63. def interview():
  64.     payload = request.json
  65.  
  66.  
  67. @app.post("/healthbuddy")
  68. def bot():
  69.     text = request.json
  70.     #TODO: check the text validity
  71.     response = get_response(text["message"])
  72.     reply = {"response": response}
  73.     return reply
  74.  
  75.  
  76. if __name__=="__main__":
  77.    app.run(host='0.0.0.0',port=4567)    
  78.  
  79.  
Add Comment
Please, Sign In to add comment