anvil.server.NoServerFunctionError: No server function matching "forecast" has been registered

I am quite new these technologies, I am just trying making a prediction on defined array to return the results on console at anvil. I have my trained and saved model at jupyter.

I have followed the tutorial for cat or dog ? My one is a time series issue, however it throws an error like
anvil.server.NoServerFunctionError: No server function matching “forecast” has been registered
I have added the code as below What could be the problem ?

import anvil.server

anvil.server.connect("<My uplink key>")

# Connecting to wss://anvil.works/uplink
# Anvil websocket open
# Connected to "Default environment (dev)" as SERVER

@anvil.server.callable
def forecast(data):
    publish_prediction = predict_model(saved_final_model, data=data_unseen)
    return publish_prediction
anvil.server.wait_forever()
import random
from plotly import graph_objects as go
from ._anvil_designer import Form1Template
from anvil import *
import anvil.server

class Form1(Form1Template):

  def __init__(self, **properties):
    # Set Form properties and Data Bindings.
    self.init_components(**properties)

    # Any code you write here will run when the form opens.

  def date_picker_1_change(self, **event_args):
    """This method is called when the selected date changes"""
    pass
  
  def button_1_click(self, **event_args):
    """This method is called when the button is clicked"""
   
    anvil.server.call(forecast)
        

Clone link:

The forecast function takes a data parameter. You are not providing a data parameter when you make your call from the client.

Also based on the code in the post, the code for calling the forecast function should be in quotation marks

anvil.server.call('forecast')