diff --git a/api/core/plugin/entities/parameters.py b/api/core/plugin/entities/parameters.py index ce5813a294..ba30569066 100644 --- a/api/core/plugin/entities/parameters.py +++ b/api/core/plugin/entities/parameters.py @@ -132,13 +132,14 @@ def cast_parameter_value(typ: StrEnum, value: Any, /): return value if isinstance(value, bool) else bool(value) case PluginParameterType.NUMBER: - if isinstance(value, int | float): - return value - elif isinstance(value, str) and value: - if "." in value: - return float(value) - else: - return int(value) + match value: + case int() | float(): + return value + case str() if value: + if "." in value: + return float(value) + else: + return int(value) case PluginParameterType.SYSTEM_FILES | PluginParameterType.FILES: if not isinstance(value, list): return [value] diff --git a/api/models/model.py b/api/models/model.py index 96ab7b0e6e..540cf0eeed 100644 --- a/api/models/model.py +++ b/api/models/model.py @@ -1178,12 +1178,12 @@ class Conversation(Base): def inputs(self, value: Mapping[str, Any]): inputs = dict(value) for k, v in inputs.items(): - if isinstance(v, File): - inputs[k] = v.model_dump() - elif isinstance(v, list): - v_list = v - if all(isinstance(item, File) for item in v_list): - inputs[k] = [item.model_dump() for item in v_list if isinstance(item, File)] + match v: + case File(): + inputs[k] = v.model_dump() + case list(): + if all(isinstance(item, File) for item in v): + inputs[k] = [item.model_dump() for item in v if isinstance(item, File)] self._inputs = inputs @property