code: def test_infer_colspec_type():
      data = {
          "role": "system",
          "content": "Translate every message you receive to French.",
      }
      dtype = _infer_colspec_type(data)
      assert dtype == Object(
          [
              Property("role", DataType.string),
              Property("content", DataType.string),
          ]
      )
  
      data = {
          "messages": [
              {
                  "role": "system",
                  "content": "Translate every message you receive to French.",
              },
              {
                  "role": "user",
                  "content": "I like machine learning",
                  "name": "John Doe",
              },
          ],
      }
      dtype = _infer_colspec_type(data)
      assert dtype == Object(
          [
              Property(
                  "messages",
                  Array(
                      Object(
                          [
                              Property("role", DataType.string),
                              Property("content", DataType.string),
                              Property(
                                  "name",
                                  DataType.string,
                                  required=False,
                              ),
                          ]
                      )
                  ),
              )
          ]
      )
  
      data = [
          {
              "messages": [
                  {
                      "role": "system",
                      "content": "Translate every message you receive to French.",
                  },
                  {
                      "role": "user",
                      "content": "I like machine learning",
                  },
              ],
          },
          {
              "messages": [
                  {
                      "role": "user",
                      "content": "Summarize the following document ...",
                      "name": "jeff",
                  },
              ]
          },
      ]
      dtype = _infer_colspec_type(data)
      assert dtype == Array(
          Object(
              [
                  Property(
                      "messages",
                      Array(
                          Object(
                              [
                                  Property("role", DataType.string),
                                  Property("content", DataType.string),
                                  Property(
                                      "name",
                                      DataType.string,
                                      required=False,
                                  ),
                              ]
                          )
                      ),
                  )
              ]
          )
      )
  
imports: import datetime
  import json
  import math
  import re
  import numpy
  import pandas
  import pyspark
  import pyspark.sql.types
  import pytest
  from scipy.sparse import csc_matrix, csr_matrix
  from mlflow.exceptions import MlflowException
  from mlflow.models.utils import _enforce_tensor_spec
  from mlflow.pyfunc import _parse_spark_datatype
  from mlflow.types import DataType
  from mlflow.types.schema import Array, ColSpec, Object, ParamSchema, ParamSpec, Property, Schema, TensorSpec
  from mlflow.types.utils import _get_tensor_shape, _infer_colspec_type, _infer_param_schema, _infer_schema, _validate_input_dictionary_contains_only_strings_and_lists_of_strings
label_desc: Use image node_id 44 for calling a global function with example usage: test_infer_colspec_type() without return types