code: def get_slice_node(
      gb, opset_version, context, input_names, axes, starts, ends, steps
  ):
      if opset_version < 11 and any([i != 1 for i in steps]):
          raise ValueError(
              "GetItem with n-step slicing is supported from opset11, "
              "opset{} is not supported".format(opset_version)
          )
  
      if opset_version < 10:
          return gb.op(
              "Slice", input_names, axes=axes, starts=starts, ends=ends
          )
      else:
          inputs = [("starts", starts), ("ends", ends), ("axes", axes)]
          if opset_version > 10:
              inputs.append(("steps", steps))
          for name, values in inputs:
              param_name = context.add_const(
                  np.asarray(list(values), dtype=np.int64), name
              )
              input_names.append(param_name)
          return gb.op("Slice", input_names)
  
imports: import warnings
  import chainer
  import numpy
  import onnx
  from onnx.mapping import NP_TYPE_TO_TENSOR_TYPE
  from onnx_chainer.functions.opset_version import support
  from onnx_chainer import onnx_helper
label_desc: Use image node_id 5 for calling a global function with example usage: get_slice_node(gb, opset_version, context, input_names, axes, starts, ends, steps) and returns: gb, gb