feat/enhance the multi-modal support (#8818)

This commit is contained in:
-LAN-
2024-10-21 10:43:49 +08:00
committed by GitHub
parent 7a1d6fe509
commit e61752bd3a
267 changed files with 6263 additions and 3523 deletions

View File

@@ -1,56 +0,0 @@
import pytest
from core.tools.entities.tool_entities import ToolParameter
from core.tools.utils.tool_parameter_converter import ToolParameterConverter
def test_get_parameter_type():
assert ToolParameterConverter.get_parameter_type(ToolParameter.ToolParameterType.STRING) == "string"
assert ToolParameterConverter.get_parameter_type(ToolParameter.ToolParameterType.SELECT) == "string"
assert ToolParameterConverter.get_parameter_type(ToolParameter.ToolParameterType.BOOLEAN) == "boolean"
assert ToolParameterConverter.get_parameter_type(ToolParameter.ToolParameterType.NUMBER) == "number"
with pytest.raises(ValueError):
ToolParameterConverter.get_parameter_type("unsupported_type")
def test_cast_parameter_by_type():
# string
assert ToolParameterConverter.cast_parameter_by_type("test", ToolParameter.ToolParameterType.STRING) == "test"
assert ToolParameterConverter.cast_parameter_by_type(1, ToolParameter.ToolParameterType.STRING) == "1"
assert ToolParameterConverter.cast_parameter_by_type(1.0, ToolParameter.ToolParameterType.STRING) == "1.0"
assert ToolParameterConverter.cast_parameter_by_type(None, ToolParameter.ToolParameterType.STRING) == ""
# secret input
assert ToolParameterConverter.cast_parameter_by_type("test", ToolParameter.ToolParameterType.SECRET_INPUT) == "test"
assert ToolParameterConverter.cast_parameter_by_type(1, ToolParameter.ToolParameterType.SECRET_INPUT) == "1"
assert ToolParameterConverter.cast_parameter_by_type(1.0, ToolParameter.ToolParameterType.SECRET_INPUT) == "1.0"
assert ToolParameterConverter.cast_parameter_by_type(None, ToolParameter.ToolParameterType.SECRET_INPUT) == ""
# select
assert ToolParameterConverter.cast_parameter_by_type("test", ToolParameter.ToolParameterType.SELECT) == "test"
assert ToolParameterConverter.cast_parameter_by_type(1, ToolParameter.ToolParameterType.SELECT) == "1"
assert ToolParameterConverter.cast_parameter_by_type(1.0, ToolParameter.ToolParameterType.SELECT) == "1.0"
assert ToolParameterConverter.cast_parameter_by_type(None, ToolParameter.ToolParameterType.SELECT) == ""
# boolean
true_values = [True, "True", "true", "1", "YES", "Yes", "yes", "y", "something"]
for value in true_values:
assert ToolParameterConverter.cast_parameter_by_type(value, ToolParameter.ToolParameterType.BOOLEAN) is True
false_values = [False, "False", "false", "0", "NO", "No", "no", "n", None, ""]
for value in false_values:
assert ToolParameterConverter.cast_parameter_by_type(value, ToolParameter.ToolParameterType.BOOLEAN) is False
# number
assert ToolParameterConverter.cast_parameter_by_type("1", ToolParameter.ToolParameterType.NUMBER) == 1
assert ToolParameterConverter.cast_parameter_by_type("1.0", ToolParameter.ToolParameterType.NUMBER) == 1.0
assert ToolParameterConverter.cast_parameter_by_type("-1.0", ToolParameter.ToolParameterType.NUMBER) == -1.0
assert ToolParameterConverter.cast_parameter_by_type(1, ToolParameter.ToolParameterType.NUMBER) == 1
assert ToolParameterConverter.cast_parameter_by_type(1.0, ToolParameter.ToolParameterType.NUMBER) == 1.0
assert ToolParameterConverter.cast_parameter_by_type(-1.0, ToolParameter.ToolParameterType.NUMBER) == -1.0
assert ToolParameterConverter.cast_parameter_by_type(None, ToolParameter.ToolParameterType.NUMBER) is None
# unknown
assert ToolParameterConverter.cast_parameter_by_type("1", "unknown_type") == "1"
assert ToolParameterConverter.cast_parameter_by_type(1, "unknown_type") == "1"
assert ToolParameterConverter.cast_parameter_by_type(None, ToolParameter.ToolParameterType.NUMBER) is None

View File

@@ -0,0 +1,49 @@
from core.tools.entities.tool_entities import ToolParameter
def test_get_parameter_type():
assert ToolParameter.ToolParameterType.STRING.as_normal_type() == "string"
assert ToolParameter.ToolParameterType.SELECT.as_normal_type() == "string"
assert ToolParameter.ToolParameterType.SECRET_INPUT.as_normal_type() == "string"
assert ToolParameter.ToolParameterType.BOOLEAN.as_normal_type() == "boolean"
assert ToolParameter.ToolParameterType.NUMBER.as_normal_type() == "number"
assert ToolParameter.ToolParameterType.FILE.as_normal_type() == "file"
assert ToolParameter.ToolParameterType.FILES.as_normal_type() == "files"
def test_cast_parameter_by_type():
# string
assert ToolParameter.ToolParameterType.STRING.cast_value("test") == "test"
assert ToolParameter.ToolParameterType.STRING.cast_value(1) == "1"
assert ToolParameter.ToolParameterType.STRING.cast_value(1.0) == "1.0"
assert ToolParameter.ToolParameterType.STRING.cast_value(None) == ""
# secret input
assert ToolParameter.ToolParameterType.SECRET_INPUT.cast_value("test") == "test"
assert ToolParameter.ToolParameterType.SECRET_INPUT.cast_value(1) == "1"
assert ToolParameter.ToolParameterType.SECRET_INPUT.cast_value(1.0) == "1.0"
assert ToolParameter.ToolParameterType.SECRET_INPUT.cast_value(None) == ""
# select
assert ToolParameter.ToolParameterType.SELECT.cast_value("test") == "test"
assert ToolParameter.ToolParameterType.SELECT.cast_value(1) == "1"
assert ToolParameter.ToolParameterType.SELECT.cast_value(1.0) == "1.0"
assert ToolParameter.ToolParameterType.SELECT.cast_value(None) == ""
# boolean
true_values = [True, "True", "true", "1", "YES", "Yes", "yes", "y", "something"]
for value in true_values:
assert ToolParameter.ToolParameterType.BOOLEAN.cast_value(value) is True
false_values = [False, "False", "false", "0", "NO", "No", "no", "n", None, ""]
for value in false_values:
assert ToolParameter.ToolParameterType.BOOLEAN.cast_value(value) is False
# number
assert ToolParameter.ToolParameterType.NUMBER.cast_value("1") == 1
assert ToolParameter.ToolParameterType.NUMBER.cast_value("1.0") == 1.0
assert ToolParameter.ToolParameterType.NUMBER.cast_value("-1.0") == -1.0
assert ToolParameter.ToolParameterType.NUMBER.cast_value(1) == 1
assert ToolParameter.ToolParameterType.NUMBER.cast_value(1.0) == 1.0
assert ToolParameter.ToolParameterType.NUMBER.cast_value(-1.0) == -1.0
assert ToolParameter.ToolParameterType.NUMBER.cast_value(None) is None