code: def test_infer_signature_on_nested_array():
      signature = infer_signature(
          model_input=[{"queries": [["a", "b", "c"], ["d", "e"], []]}],
          model_output=[{"answers": [["f", "g"], ["h"]]}],
      )
      assert signature.inputs == Schema(
          [ColSpec(Array(Array(DataType.string)), name="queries")]
      )
      assert signature.outputs == Schema(
          [ColSpec(Array(Array(DataType.string)), name="answers")]
      )
  
      signature = infer_signature(
          model_input=[
              {
                  "inputs": [
                      np.array([["a", "b"], ["c", "d"]]),
                      np.array([["e", "f"], ["g", "h"]]),
                  ]
              }
          ],
          model_output=[{"outputs": [np.int32(5), np.int32(6)]}],
      )
      assert signature.inputs == Schema(
          [ColSpec(Array(Array(Array(DataType.string))), name="inputs")]
      )
      assert signature.outputs == Schema(
          [ColSpec(Array(DataType.integer), name="outputs")]
      )
  
imports: import json
  import numpy
  import pandas
  import pyspark
  import pytest
  from sklearn.ensemble import RandomForestRegressor
  import mlflow
  from mlflow.exceptions import MlflowException
  from mlflow.models import Model, ModelSignature, infer_signature, set_signature
  from mlflow.models.model import get_model_info
  from mlflow.types import DataType
  from mlflow.types.schema import Array, ColSpec, ParamSchema, ParamSpec, Schema, TensorSpec
label_desc: Use image node_id 5 for calling a global function with example usage: test_infer_signature_on_nested_array() without return types