chore(api/core): apply ruff reformatting (#7624)

This commit is contained in:
Bowen Liang
2024-09-10 17:00:20 +08:00
committed by GitHub
parent 178730266d
commit 2cf1187b32
724 changed files with 21180 additions and 21123 deletions

View File

@@ -35,15 +35,16 @@ class Tool(BaseModel, ABC):
# pydantic configs
model_config = ConfigDict(protected_namespaces=())
@field_validator('parameters', mode='before')
@field_validator("parameters", mode="before")
@classmethod
def set_parameters(cls, v, validation_info: ValidationInfo) -> list[ToolParameter]:
return v or []
class Runtime(BaseModel):
"""
Meta data of a tool call processing
Meta data of a tool call processing
"""
def __init__(self, **data: Any):
super().__init__(**data)
if not self.runtime_parameters:
@@ -63,14 +64,14 @@ class Tool(BaseModel, ABC):
super().__init__(**data)
class VARIABLE_KEY(Enum):
IMAGE = 'image'
IMAGE = "image"
def fork_tool_runtime(self, runtime: dict[str, Any]) -> 'Tool':
def fork_tool_runtime(self, runtime: dict[str, Any]) -> "Tool":
"""
fork a new tool with meta data
fork a new tool with meta data
:param meta: the meta data of a tool call processing, tenant_id is required
:return: the new tool
:param meta: the meta data of a tool call processing, tenant_id is required
:return: the new tool
"""
return self.__class__(
identity=self.identity.model_copy() if self.identity else None,
@@ -82,22 +83,22 @@ class Tool(BaseModel, ABC):
@abstractmethod
def tool_provider_type(self) -> ToolProviderType:
"""
get the tool provider type
get the tool provider type
:return: the tool provider type
:return: the tool provider type
"""
def load_variables(self, variables: ToolRuntimeVariablePool):
"""
load variables from database
load variables from database
:param conversation_id: the conversation id
:param conversation_id: the conversation id
"""
self.variables = variables
def set_image_variable(self, variable_name: str, image_key: str) -> None:
"""
set an image variable
set an image variable
"""
if not self.variables:
return
@@ -106,7 +107,7 @@ class Tool(BaseModel, ABC):
def set_text_variable(self, variable_name: str, text: str) -> None:
"""
set a text variable
set a text variable
"""
if not self.variables:
return
@@ -115,10 +116,10 @@ class Tool(BaseModel, ABC):
def get_variable(self, name: Union[str, Enum]) -> Optional[ToolRuntimeVariable]:
"""
get a variable
get a variable
:param name: the name of the variable
:return: the variable
:param name: the name of the variable
:return: the variable
"""
if not self.variables:
return None
@@ -134,9 +135,9 @@ class Tool(BaseModel, ABC):
def get_default_image_variable(self) -> Optional[ToolRuntimeVariable]:
"""
get the default image variable
get the default image variable
:return: the image variable
:return: the image variable
"""
if not self.variables:
return None
@@ -145,10 +146,10 @@ class Tool(BaseModel, ABC):
def get_variable_file(self, name: Union[str, Enum]) -> Optional[bytes]:
"""
get a variable file
get a variable file
:param name: the name of the variable
:return: the variable file
:param name: the name of the variable
:return: the variable file
"""
variable = self.get_variable(name)
if not variable:
@@ -167,9 +168,9 @@ class Tool(BaseModel, ABC):
def list_variables(self) -> list[ToolRuntimeVariable]:
"""
list all variables
list all variables
:return: the variables
:return: the variables
"""
if not self.variables:
return []
@@ -178,9 +179,9 @@ class Tool(BaseModel, ABC):
def list_default_image_variables(self) -> list[ToolRuntimeVariable]:
"""
list all image variables
list all image variables
:return: the image variables
:return: the image variables
"""
if not self.variables:
return []
@@ -220,38 +221,42 @@ class Tool(BaseModel, ABC):
result = deepcopy(tool_parameters)
for parameter in self.parameters or []:
if parameter.name in tool_parameters:
result[parameter.name] = ToolParameterConverter.cast_parameter_by_type(tool_parameters[parameter.name], parameter.type)
result[parameter.name] = ToolParameterConverter.cast_parameter_by_type(
tool_parameters[parameter.name], parameter.type
)
return result
@abstractmethod
def _invoke(self, user_id: str, tool_parameters: dict[str, Any]) -> Union[ToolInvokeMessage, list[ToolInvokeMessage]]:
def _invoke(
self, user_id: str, tool_parameters: dict[str, Any]
) -> Union[ToolInvokeMessage, list[ToolInvokeMessage]]:
pass
def validate_credentials(self, credentials: dict[str, Any], parameters: dict[str, Any]) -> None:
"""
validate the credentials
validate the credentials
:param credentials: the credentials
:param parameters: the parameters
:param credentials: the credentials
:param parameters: the parameters
"""
pass
def get_runtime_parameters(self) -> list[ToolParameter]:
"""
get the runtime parameters
get the runtime parameters
interface for developer to dynamic change the parameters of a tool depends on the variables pool
interface for developer to dynamic change the parameters of a tool depends on the variables pool
:return: the runtime parameters
:return: the runtime parameters
"""
return self.parameters or []
def get_all_runtime_parameters(self) -> list[ToolParameter]:
"""
get all runtime parameters
get all runtime parameters
:return: all runtime parameters
:return: all runtime parameters
"""
parameters = self.parameters or []
parameters = parameters.copy()
@@ -281,67 +286,49 @@ class Tool(BaseModel, ABC):
return parameters
def create_image_message(self, image: str, save_as: str = '') -> ToolInvokeMessage:
def create_image_message(self, image: str, save_as: str = "") -> ToolInvokeMessage:
"""
create an image message
create an image message
:param image: the url of the image
:return: the image message
:param image: the url of the image
:return: the image message
"""
return ToolInvokeMessage(type=ToolInvokeMessage.MessageType.IMAGE,
message=image,
save_as=save_as)
return ToolInvokeMessage(type=ToolInvokeMessage.MessageType.IMAGE, message=image, save_as=save_as)
def create_file_var_message(self, file_var: "FileVar") -> ToolInvokeMessage:
return ToolInvokeMessage(type=ToolInvokeMessage.MessageType.FILE_VAR,
message='',
meta={
'file_var': file_var
},
save_as='')
def create_link_message(self, link: str, save_as: str = '') -> ToolInvokeMessage:
"""
create a link message
:param link: the url of the link
:return: the link message
"""
return ToolInvokeMessage(type=ToolInvokeMessage.MessageType.LINK,
message=link,
save_as=save_as)
def create_text_message(self, text: str, save_as: str = '') -> ToolInvokeMessage:
"""
create a text message
:param text: the text
:return: the text message
"""
return ToolInvokeMessage(
type=ToolInvokeMessage.MessageType.TEXT,
message=text,
save_as=save_as
type=ToolInvokeMessage.MessageType.FILE_VAR, message="", meta={"file_var": file_var}, save_as=""
)
def create_blob_message(self, blob: bytes, meta: dict = None, save_as: str = '') -> ToolInvokeMessage:
def create_link_message(self, link: str, save_as: str = "") -> ToolInvokeMessage:
"""
create a blob message
create a link message
:param blob: the blob
:return: the blob message
:param link: the url of the link
:return: the link message
"""
return ToolInvokeMessage(
type=ToolInvokeMessage.MessageType.BLOB,
message=blob, meta=meta,
save_as=save_as
)
return ToolInvokeMessage(type=ToolInvokeMessage.MessageType.LINK, message=link, save_as=save_as)
def create_text_message(self, text: str, save_as: str = "") -> ToolInvokeMessage:
"""
create a text message
:param text: the text
:return: the text message
"""
return ToolInvokeMessage(type=ToolInvokeMessage.MessageType.TEXT, message=text, save_as=save_as)
def create_blob_message(self, blob: bytes, meta: dict = None, save_as: str = "") -> ToolInvokeMessage:
"""
create a blob message
:param blob: the blob
:return: the blob message
"""
return ToolInvokeMessage(type=ToolInvokeMessage.MessageType.BLOB, message=blob, meta=meta, save_as=save_as)
def create_json_message(self, object: dict) -> ToolInvokeMessage:
"""
create a json message
create a json message
"""
return ToolInvokeMessage(
type=ToolInvokeMessage.MessageType.JSON,
message=object
)
return ToolInvokeMessage(type=ToolInvokeMessage.MessageType.JSON, message=object)