Esempio n. 1
0
def create_fare(key, pickup_datetime, pickup_longitude, pickup_latitude,
                dropoff_longitude, dropoff_latitude, passenger_count):

    # key = "2013-07-06 17:18:00.000000119"
    # pickup_datetime = "2013-07-06 17:18:00 UTC"
    # pickup_longitude = "-73.950655"
    # pickup_latitude = "40.783282"
    # dropoff_longitude = "-73.984365"
    # dropoff_latitude = "40.769802"
    # passenger_count = "1"

    # build X ⚠️ beware to the order of the parameters ⚠️
    X = pd.DataFrame(
        dict(key=[key],
             pickup_datetime=[pickup_datetime],
             pickup_longitude=[float(pickup_longitude)],
             pickup_latitude=[float(pickup_latitude)],
             dropoff_longitude=[float(dropoff_longitude)],
             dropoff_latitude=[float(dropoff_latitude)],
             passenger_count=[int(passenger_count)]))

    # get model from GCP
    pipeline = download_model()
    # pipeline = joblib.load('../data/model.joblib')

    # make prediction
    results = pipeline.predict(X)

    # convert response from numpy to python type
    pred = float(results[0])

    return dict(prediction=pred)
Esempio n. 2
0
def set_model():
    # inputs = request.get_json()
    # model_dir = inputs["model_directory"]
    # pipeline_def["pipeline"] = download_model(model_directory=model_dir, rm=True)
    # pipeline_def["pipeline"] = download_model()
    # pipeline_def["from_gcp"] = True
    pipeline = download_model()
    return {"reponse": f"correctly updated  model GCP"}
Esempio n. 3
0
def set_model():
    inputs = request.get_json()
    # model_dir = FOLDER_MODEL_PATH
    # model_dir = inputs["model_directory"]
    # pipeline_def["pipeline"] = download_model(model_directory=model_dir, rm=True)
    pipeline_def["pipeline"] = download_model(rm=True)
    pipeline_def["from_gcp"] = True
    return {
        "reponse": f"correctly got model from {model_dir} directory on GCP"
    }
Esempio n. 4
0
        input.setdefault(k, v)
    formated_input = {
        "key": str(input["key"]),
        "pickup_datetime": str(input["pickup_datetime"]),
        "pickup_longitude": float(input["pickup_longitude"]),
        "pickup_latitude": float(input["pickup_latitude"]),
        "dropoff_longitude": float(input["dropoff_longitude"]),
        "dropoff_latitude": float(input["dropoff_latitude"]),
        "passenger_count": float(input["passenger_count"])
    }
    return formated_input


# pipeline_def = {'pipeline': download_model(),
#                 'from_gcp': Terue}
pipeline = download_model()


@app.route('/')
def index():
    return 'OK'


@app.route('/predict_fare', methods=['GET'])
def predict_fare():

    # get request arguments
    key = request.args.get('key')
    pickup_datetime = request.args.get('pickup_datetime')
    pickup_longitude = float(request.args.get('pickup_longitude'))
    pickup_latitude = float(request.args.get('pickup_latitude'))
Esempio n. 5
0
def set_model():
    inputs = request.get_json()
    estimator = inputs["estimator"]
    pipeline_def["pipeline"] = download_model(estimator="xgboost", rm=True)
    pipeline_def["from_gcp"] = True
    return {"reponse": f"correctly got model from {estimator} directory on GCP"}
Esempio n. 6
0
 def get_model(self):
     if self.local:
         pipeline = joblib.load(self.PATH_TO_LOCAL_MODEL)
     else:
         pipeline = download_model()
     return pipeline