diff --git a/python/semantic_kernel/functions/kernel_parameter_metadata.py b/python/semantic_kernel/functions/kernel_parameter_metadata.py index 1a487490e282..efe04475f66c 100644 --- a/python/semantic_kernel/functions/kernel_parameter_metadata.py +++ b/python/semantic_kernel/functions/kernel_parameter_metadata.py @@ -27,7 +27,9 @@ def form_schema(cls, data: Any) -> Any: """Create a schema for the parameter metadata.""" if isinstance(data, dict) and data.get("schema_data") is None: type_object = data.get("type_object", None) - type_ = data.get("type_", None) + type_ = data.get("type_") or data.get("type") + if type_ is None and type_object is None and "type_" not in data and "type" not in data: + type_ = "str" default_value = data.get("default_value", None) description = data.get("description", None) inferred_schema = cls.infer_schema(type_object, type_, default_value, description) diff --git a/python/tests/unit/functions/test_kernel_parameter_metadata.py b/python/tests/unit/functions/test_kernel_parameter_metadata.py index 8a1e232d9aaa..47621b19ff2a 100644 --- a/python/tests/unit/functions/test_kernel_parameter_metadata.py +++ b/python/tests/unit/functions/test_kernel_parameter_metadata.py @@ -20,6 +20,7 @@ def test_kernel_parameter_metadata_init(): assert metadata.description == "description" assert metadata.is_required is True assert metadata.default_value == "default" + assert metadata.schema_data == {"type": "string", "description": "description (default value: default)"} def test_kernel_parameter_metadata_valid(): @@ -65,3 +66,17 @@ def test_kernel_parameter_metadata_without_schema_data(): def test_kernel_parameter_metadata_with_partial_data(): metadata = KernelParameterMetadata(name="param5", type_="float", default_value=3.14) assert metadata.schema_data == {"type": "number", "description": "(default value: 3.14)"} + + +def test_kernel_parameter_metadata_infer_schema_with_type_alias(): + metadata = KernelParameterMetadata( + name="param_alias", type="int", default_value=42, description="An integer parameter" + ) + assert metadata.type_ == "int" + assert metadata.schema_data == {"type": "integer", "description": "An integer parameter (default value: 42)"} + + +def test_kernel_parameter_metadata_infer_schema_with_default_type(): + metadata = KernelParameterMetadata(name="param_default") + assert metadata.type_ == "str" + assert metadata.schema_data == {"type": "string"}