trade-mind / fetch_plot_data.py
nafisneehal's picture
Update fetch_plot_data.py
6a56fb4 verified
raw
history blame
3.52 kB
import pprint
from dotenv import load_dotenv
import yaml
from pathlib import Path
from Trainer import Trainer # Assuming Trainer.py is in the same directory
import requests
import os
import json
import warnings
import pandas as pd
import hsml
warnings.filterwarnings('ignore')
load_dotenv()
# Hopsworks API configuration
# Or replace with your actual API key
HOPSWORKS_API_KEY = os.getenv("HOPSWORKS_API_KEY")
# Define the base directory as the project root
BASE_DIR = Path(__file__).resolve().parent.parent.parent
# Use BASE_DIR to dynamically load the config file
# CONFIG_FILE = BASE_DIR / "src" / "config.yml"
with open("config.yml", 'r') as file:
configs = yaml.safe_load(file)
# Initialize Trainer instance with Hopsworks project configurations
symbol = configs['stock_api_params']['symbol']
# Initialize Trainer with relevant project details
trainer = Trainer(
project_name=configs['hopsworks']['project_name'],
feature_group_name=f"{symbol.split('/')[0].lower()}_features",
model_registry_name=f"{symbol.split('/')[0].lower()}_regressor_model",
api_key=os.getenv("HOPSWORKS_API_KEY")
)
def return_plot_data(hours):
# Create or retrieve feature view
trainer.create_feature_view()
# Get the plot data from the feature view
input_df = trainer.get_plot_data_from_feature_view(hours)
# get the datetime column from the input_df
datetime_column = input_df['datetime']
input_features, input_labels = trainer.get_features_labels(input_df)
return input_features, input_labels, datetime_column
def return_plot_data_prediction(input_features):
# Get the prediction
prediction = trainer.predict_with_hopsworks_api(input_features)
return prediction
def get_plot_data(hours):
# Get the plot data
input_features, input_labels, datetime_column = return_plot_data(
hours)
prediction = return_plot_data_prediction(input_features)
return {"features": input_features, "labels": input_labels,
"prediction": prediction['predictions'], "datetime": datetime_column}
# f, l, d = return_plot_data()
# print(f)
# print(l)
# print(trainer.predict_with_hopsworks_api(f))
# # Example input data (replace with your actual input structure)
# input_ls = [76480.91, 76648.94, 76390.51, 76541.99, 76330.78, 76339.94, 76312.67, 76319.28, 76246.58, 76413.26, 76206.41, 76333.14, 76396.64, 76732.32, 76151.9, 76244.62, 76279.09, 76429.21, 76222.1, 76396.63, 76122.3, 76283.43, 75758.58,
# 76272.1, 76349.99, 76366.2, 76093.0, 76117.98, 76395.53, 76456.16, 76319.87, 76348.18, 76461.01, 76481.48, 76300.38, 76395.53, 76330.91, 76517.26, 76323.53, 76461.02, 76532.39, 76583.19, 76319.32, 76330.91, 76509.82, 76570.6, 76415.72, 76534.61]
# input_columns = ["open_lag_1", "high_lag_1", "low_lag_1", "close_lag_1", "open_lag_2", "high_lag_2", "low_lag_2", "close_lag_2", "open_lag_3", "high_lag_3", "low_lag_3", "close_lag_3", "open_lag_4", "high_lag_4", "low_lag_4", "close_lag_4", "open_lag_5", "high_lag_5", "low_lag_5", "close_lag_5", "open_lag_6", "high_lag_6", "low_lag_6", "close_lag_6",
# "open_lag_7", "high_lag_7", "low_lag_7", "close_lag_7", "open_lag_8", "high_lag_8", "low_lag_8", "close_lag_8", "open_lag_9", "high_lag_9", "low_lag_9", "close_lag_9", "open_lag_10", "high_lag_10", "low_lag_10", "close_lag_10", "open_lag_11", "high_lag_11", "low_lag_11", "close_lag_11", "open_lag_12", "high_lag_12", "low_lag_12", "close_lag_12"]
# input_df = pd.DataFrame([input_ls], columns=input_columns)