From 5fd82084f98994378e213acbf773fbd255231c4b Mon Sep 17 00:00:00 2001 From: Yeuoly Date: Mon, 11 Nov 2024 13:29:26 +0800 Subject: [PATCH] fix: avoid empty plugin entity --- api/core/plugin/entities/marketplace.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) 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