code: def custom_artifact(eval_df, builtin_metrics, _artifacts_dir):
      example_np_arr = np.array([1, 2, 3])
      example_df = pd.DataFrame({"test": [2.2, 3.1], "test2": [3, 2]})
      example_dict = {"hello": "there", "test_list": [0.1, 0.3, 4]}
      example_dict.update(builtin_metrics)
      example_dict_2 = '{"a": 3, "b": [1, 2, 3]}'
      example_image = plt.figure()
      plt.scatter(eval_df["prediction"], eval_df["target"])
      plt.xlabel("Targets")
      plt.ylabel("Predictions")
      plt.title("Targets vs. Predictions")
      example_custom_class = ExampleClass(10)
  
      return {
          "example_np_arr_from_obj_saved_as_npy": example_np_arr,
          "example_df_from_obj_saved_as_csv": example_df,
          "example_dict_from_obj_saved_as_json": example_dict,
          "example_image_from_obj_saved_as_png": example_image,
          "example_dict_from_json_str_saved_as_json": example_dict_2,
          "example_class_from_obj_saved_as_pickle": example_custom_class,
      }
  
file_path: mlflow/examples/evaluation/evaluate_with_custom_metrics_comprehensive.py
imports: import matplotlib.pyplot
  import numpy
  import pandas
  from sklearn.datasets import fetch_california_housing
  from sklearn.linear_model import LinearRegression
  from sklearn.model_selection import train_test_split
  import mlflow
  from mlflow.models import infer_signature, make_metric
label_desc: Use image node_id 2 for calling a global function with example usage: custom_artifact(eval_df, builtin_metrics, _artifacts_dir) and returns: dict