app.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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. log_.info(f"server start...")
  18. @app.route('/healthcheck')
  19. def health_check():
  20. return 'ok!'
  21. @app.route('/ad/predict/getAdIdeaId', methods=['GET', 'POST'])
  22. def get_ad_idea_id():
  23. start_time = time.time()
  24. try:
  25. request_data = json.loads(request.get_data())
  26. mid = request_data.get('mid')
  27. ad_idea_id_list = request_data.get('adIdeaIdList')
  28. thompson_result = get_ad_idea_id_with_thompson(mid=mid, ad_idea_id_list=ad_idea_id_list)
  29. result = {'code': 200, 'message': 'success', 'data': {'mid': mid, 'adIdeaId': thompson_result['ad_idea_id']}}
  30. log_message = {
  31. 'requestUri': '/ad/predict/getAdIdeaId',
  32. 'logTimestamp': int(time.time() * 1000),
  33. 'requestData': request_data,
  34. 'thompsonResult': thompson_result,
  35. 'result': result,
  36. 'executeTime': (time.time() - start_time) * 1000
  37. }
  38. log_.info(log_message)
  39. return json.dumps(result)
  40. except Exception as e:
  41. log_.error(traceback.format_exc())
  42. result = {'code': -1, 'message': 'fail'}
  43. return json.dumps(result)
  44. if __name__ == '__main__':
  45. app.run()