app.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import random
  2. import os
  3. import logging
  4. import json
  5. import time
  6. import traceback
  7. import ast
  8. from gevent import monkey
  9. monkey.patch_all()
  10. from flask import Flask, request
  11. from log import Log
  12. from config import set_config
  13. from ad_predict import get_ad_idea_id_with_thompson
  14. app = Flask(__name__)
  15. log_ = Log()
  16. config_ = set_config()
  17. @app.route('/healthcheck')
  18. def health_check():
  19. return 'ok!'
  20. @app.route('/ad/predict/getAdIdeaId', methods=['GET', 'POST'])
  21. def get_ad_idea_id():
  22. start_time = time.time()
  23. try:
  24. request_data = json.loads(request.get_data())
  25. mid = request_data.get('mid')
  26. ad_idea_id_list = request_data.get('adIdeaIdList')
  27. thompson_result = get_ad_idea_id_with_thompson(mid=mid, ad_idea_id_list=ad_idea_id_list)
  28. result = {'code': 200, 'message': 'success', 'data': {'mid': mid, 'adIdeaId': thompson_result['ad_idea_id']}}
  29. log_message = {
  30. 'requestUri': '/ad/predict/getAdIdeaId',
  31. 'logTimestamp': int(time.time() * 1000),
  32. 'requestData': request_data,
  33. 'thompsonResult': thompson_result,
  34. 'result': result,
  35. 'executeTime': (time.time() - start_time) * 1000
  36. }
  37. log_.info(log_message)
  38. return json.dumps(result)
  39. except Exception as e:
  40. log_.error(traceback.format_exc())
  41. result = {'code': -1, 'message': 'fail'}
  42. return json.dumps(result)
  43. if __name__ == '__main__':
  44. app.run()