code: def forward(self, data) -> pd.DataFrame:
      log_str = ""
      if self.library == "statsforecast":
          forecast_df = self.model.predict(
              h=self.horizon, level=[self.conf]
          ).reset_index()
      else:
          forecast_df = self.model.predict().reset_index()
  
      # Feedback
      if len(data) == 0 or list(list(data.iloc[0]))[0] is True:
          # Suggestions
          suggestion_list = []
          # 1: Flat predictions
          if self.library == "statsforecast":
              for type_here in forecast_df["unique_id"].unique():
                  if (
                      forecast_df.loc[
                          forecast_df["unique_id"] == type_here
                      ][self.model_name].nunique()
                      == 1
                  ):
                      suggestion_list.append(1)
  
          for suggestion in set(suggestion_list):
              log_str += (
                  "\nSUGGESTION: " + self.suggestion_dict[suggestion]
              )
  
          # Metrics
          if self.rmse is not None:
              log_str += "\nMean normalized RMSE: " + str(self.rmse)
          if self.hypers is not None:
              log_str += "\nHyperparameters: " + self.hypers
  
          print(log_str)
  
      forecast_df = forecast_df.rename(
          columns={
              "unique_id": self.id_column_rename,
              "ds": self.time_column_rename,
              self.model_name
              if self.library == "statsforecast"
              else self.model_name
              + "-median": self.predict_column_rename,
              self.model_name
              + "-lo-"
              + str(self.conf): self.predict_column_rename
              + "-lo",
              self.model_name
              + "-hi-"
              + str(self.conf): self.predict_column_rename
              + "-hi",
          }
      )[: self.horizon * forecast_df["unique_id"].nunique()]
      return forecast_df
  
file_path: evadb/evadb/functions/forecast.py
imports: import os
  import pickle
  import pandas
  from evadb.functions.abstract.abstract_function import AbstractFunction
  from evadb.functions.decorators.decorators import setup
label_desc: Use image node_id 3 for calling the ForecastModel obj's underlying member method code with example usage: obj.forward(data) and returns: forecast_df