diff --git a/api/core/plugin/entities/marketplace.py b/api/core/plugin/entities/marketplace.py index 6745e29d16..a19a44aa3c 100644 --- a/api/core/plugin/entities/marketplace.py +++ b/api/core/plugin/entities/marketplace.py @@ -1,6 +1,6 @@ from typing import Optional -from pydantic import BaseModel, Field +from pydantic import BaseModel, Field, model_validator from core.model_runtime.entities.provider_entities import ProviderEntity from core.plugin.entities.endpoint import EndpointProviderDeclaration @@ -32,3 +32,14 @@ class MarketplacePluginDeclaration(BaseModel): latest_package_identifier: str = Field( ..., description="Unique identifier for the latest package release of the plugin" ) + + @model_validator(mode="before") + @classmethod + def transform_declaration(cls, data: dict): + if "endpoint" in data and not data["endpoint"]: + del data["endpoint"] + if "model" in data and not data["model"]: + del data["model"] + if "tool" in data and not data["tool"]: + del data["tool"] + return data