fix: variable message

This commit is contained in:
Yeuoly 2024-12-27 22:56:39 +08:00
parent cbf405beea
commit 83fdb42520

View File

@ -4,7 +4,7 @@ from collections.abc import Mapping
from enum import Enum from enum import Enum
from typing import Any, Optional, Union from typing import Any, Optional, Union
from pydantic import BaseModel, ConfigDict, Field, ValidationInfo, field_serializer, field_validator from pydantic import BaseModel, ConfigDict, Field, ValidationInfo, field_serializer, field_validator, model_validator
from core.entities.provider_entities import ProviderConfig from core.entities.provider_entities import ProviderConfig
from core.plugin.entities.parameters import ( from core.plugin.entities.parameters import (
@ -128,12 +128,13 @@ class ToolInvokeMessage(BaseModel):
variable_value: str = Field(..., description="The value of the variable") variable_value: str = Field(..., description="The value of the variable")
stream: bool = Field(default=False, description="Whether the variable is streamed") stream: bool = Field(default=False, description="Whether the variable is streamed")
@field_validator("variable_value", mode="before") @model_validator(mode="before")
@classmethod @classmethod
def transform_variable_value(cls, value, values) -> Any: def transform_variable_value(cls, values) -> Any:
""" """
Only basic types and lists are allowed. Only basic types and lists are allowed.
""" """
value = values.get("variable_value")
if not isinstance(value, dict | list | str | int | float | bool): if not isinstance(value, dict | list | str | int | float | bool):
raise ValueError("Only basic types and lists are allowed.") raise ValueError("Only basic types and lists are allowed.")
@ -142,7 +143,7 @@ class ToolInvokeMessage(BaseModel):
if not isinstance(value, str): if not isinstance(value, str):
raise ValueError("When 'stream' is True, 'variable_value' must be a string.") raise ValueError("When 'stream' is True, 'variable_value' must be a string.")
return value return values
@field_validator("variable_name", mode="before") @field_validator("variable_name", mode="before")
@classmethod @classmethod