Advertisement
Guest User

Untitled

a guest
Apr 24th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.16 KB | None | 0 0
  1. import logging
  2. from datetime import datetime
  3. from flask import Flask, render_template
  4. from flask_ask import Ask, statement, question, session
  5. from chefboyrd.controllers import data_controller
  6. from chefboyrd.controllers import model_controller
  7. from chefboyrd.controllers import prediction_controller
  8.  
  9.  
  10. APP = Flask(__name__)
  11. ask = Ask(APP, "/")
  12. logging.getLogger("flask_ask").setLevel(logging.INFO)
  13.  
  14. def reprompt():
  15.     resp = statement('')
  16.     resp._response = {}
  17.     resp._response['directives'] = [{'type':'Dialog.Delegate'}]
  18.     return resp
  19.  
  20. @ask.launch
  21. def welcome():
  22.     welcome_msg = render_template('welcome')
  23.     return question(welcome_msg)
  24.  
  25. @ask.intent("AMAZON.StopIntent")
  26. def cancel():
  27.     return statement(render_template('stop'))
  28.  
  29. @ask.intent("AMAZON.CancelIntent")
  30. def stop():
  31.     return statement(render_template('stop'))
  32.  
  33. @ask.intent("CommandIntent", convert={'stat_type': str, 'start_date': datetime, 'end_date': datetime})
  34. def statistics(stat_type, start_date, end_date):
  35.     print("Stat Function Args: type: {}, start: {}, end: {}".format(stat_type, start_date, end_date))
  36.     if start_date is None:
  37.         return reprompt()
  38.  
  39.     return statement('I got all of your information')
  40.  
  41. @ask.intent("PredictionIntent", convert={'meal_type': str, 'start_date': datetime, 'end_date': datetime})
  42. def prediction(meal_type, start_date, end_date):
  43.  
  44.     if meal_type is None or start_date is None or end_date is None:
  45.         return reprompt()
  46.  
  47.     modelType = 'Polynomial'
  48.     orders = data_controller.get_orders_date_range()
  49.     processedOrders = model_controller.orders_to_list(orders)
  50.     params = model_controller.train_regression(processedOrders, modelType)
  51.     mealUsage = prediction_controller.predict_regression(params, modelType, start_date, end_date)
  52.     if mealUsage is None:
  53.         return statement(render_template('unsuited_prediction'))
  54.     for meal_key in mealUsage:
  55.         if meal_key == meal_type:
  56.             return statement(render_template('prediction', meal_type=meal_type, meal_count=mealUsage[meal_key]))
  57.     return statement(render_template('failed_prediction'))
  58.  
  59. if __name__ == '__main__':
  60.     APP.run(debug=True)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement