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 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.plugin.entities.parameters import (
@ -128,12 +128,13 @@ class ToolInvokeMessage(BaseModel):
variable_value: str = Field(..., description="The value of the variable")
stream: bool = Field(default=False, description="Whether the variable is streamed")
@field_validator("variable_value", mode="before")
@model_validator(mode="before")
@classmethod
def transform_variable_value(cls, value, values) -> Any:
def transform_variable_value(cls, values) -> Any:
"""
Only basic types and lists are allowed.
"""
value = values.get("variable_value")
if not isinstance(value, dict | list | str | int | float | bool):
raise ValueError("Only basic types and lists are allowed.")
@ -142,7 +143,7 @@ class ToolInvokeMessage(BaseModel):
if not isinstance(value, str):
raise ValueError("When 'stream' is True, 'variable_value' must be a string.")
return value
return values
@field_validator("variable_name", mode="before")
@classmethod