mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
import os
|
|
import urllib.parse
|
|
from predictions import prediction
|
|
|
|
RUNTIME_ENVIRONMENT = os.environ.get("RUNTIME_ENVIRONMENT", "dev")
|
|
|
|
|
|
def handler(event, context):
|
|
"""
|
|
Take in event and trigger the prediction pipeline
|
|
"""
|
|
|
|
# Assuming a file in a bucket landing for now?
|
|
# Assuming we have a model to use
|
|
|
|
# bucket = event["Records"][0]["s3"]["bucket"]["name"]
|
|
# key = urllib.parse.unquote_plus(
|
|
# event["Records"][0]["s3"]["bucket"]["key"], encoding="utf-8"
|
|
# )
|
|
payload = event["body"]
|
|
data_path = payload["file_location"]
|
|
property_id = payload["property_id"]
|
|
portfolio_id = payload["portfolio_id"]
|
|
created_at = payload["created_at"]
|
|
|
|
# prediction_file = bucket + "/" + key
|
|
|
|
# TODO: put a model into s3, both locally and in aws
|
|
# model_path = os.environ.get("MODEL_PATH", "http://minio:9000/data/model_directory/")
|
|
model_path = os.environ.get(
|
|
"MODEL_PATH",
|
|
f"s3://retrofit-model-directory-{RUNTIME_ENVIRONMENT}/RDSAP_CHANGE/autogluon/rdsap_change-medium_quality-30"
|
|
"-2023-08-30_11-43-41/deployment/",
|
|
)
|
|
|
|
try:
|
|
outputs = prediction(model_path=model_path, data_path=data_path)
|
|
# Store into s3, with key of {portfolio_id}-{property_id}
|
|
outputs.to_csv(
|
|
f"s3://retrofit-sap-prediction-{RUNTIME_ENVIRONMENT}/{portfolio_id}/{property_id}/{created_at}.csv"
|
|
)
|
|
|
|
except (Exception, KeyError, ValueError):
|
|
print("Prediction failed")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
handler()
|