in sdk/python/foundation-models/system/inference/text-generation/llama-files/score/default/score.py [0:0]
def _validate_input_dictionary_contains_only_strings_and_lists_of_strings(data):
invalid_keys = []
invalid_values = []
value_type = None
for key, value in data.items():
if not value_type:
value_type = type(value)
if isinstance(key, bool):
invalid_keys.append(key)
elif not isinstance(key, (str, int)):
invalid_keys.append(key)
if isinstance(value, list) and not all(
isinstance(item, (str, bytes)) for item in value
):
invalid_values.append(key)
elif not isinstance(value, (np.ndarray, list, str, bytes)):
invalid_values.append(key)
elif isinstance(value, np.ndarray) or value_type == np.ndarray:
if not isinstance(value, value_type):
invalid_values.append(key)
if invalid_values:
from mlflow.protos.databricks_pb2 import INVALID_PARAMETER_VALUE
raise MlflowException(
"Invalid values in dictionary. If passing a dictionary containing strings, all "
"values must be either strings or lists of strings. If passing a dictionary containing "
"numeric values, the data must be enclosed in a numpy.ndarray. The following keys "
f"in the input dictionary are invalid: {invalid_values}",
error_code=INVALID_PARAMETER_VALUE,
)
if invalid_keys:
raise MlflowException(
f"The dictionary keys are not all strings or indexes. Invalid keys: {invalid_keys}"
)