From c472ea6c67e43e1d4001b5aef0edab85d8d2af55 Mon Sep 17 00:00:00 2001 From: Yeuoly Date: Thu, 19 Sep 2024 18:02:24 +0800 Subject: [PATCH] fix: pydantic --- api/core/plugin/entities/request.py | 3 ++- api/core/tools/entities/tool_entities.py | 6 ++++-- api/core/tools/tool_engine.py | 5 ++--- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/api/core/plugin/entities/request.py b/api/core/plugin/entities/request.py index 627b335225..2e87b76636 100644 --- a/api/core/plugin/entities/request.py +++ b/api/core/plugin/entities/request.py @@ -42,7 +42,8 @@ class RequestInvokeLLM(BaseRequestInvokeModel): stream: Optional[bool] = False @field_validator("prompt_messages", mode="before") - def convert_prompt_messages(self, v): + @classmethod + def convert_prompt_messages(cls, v): if not isinstance(v, list): raise ValueError("prompt_messages must be a list") diff --git a/api/core/tools/entities/tool_entities.py b/api/core/tools/entities/tool_entities.py index b764ac62ec..d8383539bb 100644 --- a/api/core/tools/entities/tool_entities.py +++ b/api/core/tools/entities/tool_entities.py @@ -114,7 +114,8 @@ class ToolInvokeMessage(BaseModel): stream: bool = Field(default=False, description="Whether the variable is streamed") @field_validator("variable_value", mode="before") - def transform_variable_value(self, value, values) -> Any: + @classmethod + def transform_variable_value(cls, value, values) -> Any: """ Only basic types and lists are allowed. """ @@ -129,7 +130,8 @@ class ToolInvokeMessage(BaseModel): return value @field_validator("variable_name", mode="before") - def transform_variable_name(self, value) -> str: + @classmethod + def transform_variable_name(cls, value) -> str: """ The variable name must be a string. """ diff --git a/api/core/tools/tool_engine.py b/api/core/tools/tool_engine.py index 8a4be51d28..469eea67a6 100644 --- a/api/core/tools/tool_engine.py +++ b/api/core/tools/tool_engine.py @@ -245,9 +245,8 @@ class ToolEngine: + "you do not need to create it, just tell the user to check it now." ) elif response.type == ToolInvokeMessage.MessageType.JSON: - result += f"tool response: { - json.dumps(cast(ToolInvokeMessage.JsonMessage, response.message).json_object, ensure_ascii=False) - }." + text = json.dumps(cast(ToolInvokeMessage.JsonMessage, response.message).json_object, ensure_ascii=False) + result += f"tool response: {text}." else: result += f"tool response: {response.message}."