code: def predict(
      ctx: Context,
      role: Role,
      test_data: cpn.dataframe_input(roles=[GUEST, HOST])
      | cpn.data_directory_input(),
      predict_model_input: cpn.model_directory_input(
          roles=[GUEST, HOST]
      ),
      predict_data_output: cpn.dataframe_output(
          roles=[GUEST, HOST], optional=True
      ),
  ):
      predict_procedure(
          ctx, role, test_data, predict_model_input, predict_data_output
      )
  
imports: import logging
  from fate.arch import Context
  from fate.components.core import GUEST, HOST, Role, cpn
  from fate.components.components.nn.component_utils import train_procedure, predict_procedure
label_desc: Use image node_id 3 for calling a global function with example usage: predict(ctx, role, test_data, predict_model_input, predict_data_output) without return types