From 9d75d3d04c91a4cd2fd8e4d2606add7ad4600803 Mon Sep 17 00:00:00 2001 From: hjlarry Date: Fri, 12 Sep 2025 10:43:15 +0800 Subject: [PATCH] fix bug --- api/controllers/console/workspace/model_providers.py | 4 ++-- api/core/entities/provider_configuration.py | 10 +++++++--- api/models/provider.py | 7 ++++--- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/api/controllers/console/workspace/model_providers.py b/api/controllers/console/workspace/model_providers.py index 154a90d2dc..2d89b52c0c 100644 --- a/api/controllers/console/workspace/model_providers.py +++ b/api/controllers/console/workspace/model_providers.py @@ -189,8 +189,8 @@ class ModelProviderCredentialCancelApi(Resource): provider=provider, ) return {"result": "success"} - - + + class ModelProviderValidateApi(Resource): @setup_required @login_required diff --git a/api/core/entities/provider_configuration.py b/api/core/entities/provider_configuration.py index 9ea659d1d4..cc7d78fbd2 100644 --- a/api/core/entities/provider_configuration.py +++ b/api/core/entities/provider_configuration.py @@ -190,7 +190,7 @@ class ProviderConfiguration(BaseModel): if current_quota_configuration.is_valid else SystemConfigurationStatus.QUOTA_EXCEEDED ) - + def get_custom_configuration_status(self) -> Optional[CustomConfigurationStatus]: """ Get custom configuration status. @@ -198,8 +198,12 @@ class ProviderConfiguration(BaseModel): """ if not self.is_custom_configuration_available(): return CustomConfigurationStatus.NO_CONFIGURE - elif self.custom_configuration.provider.current_credential_status: - return self.custom_configuration.provider.current_credential_status + + provider = self.custom_configuration.provider + if provider and hasattr(provider, "current_credential_status"): + status = provider.current_credential_status + if status: + return status return CustomConfigurationStatus.ACTIVE diff --git a/api/models/provider.py b/api/models/provider.py index b897a3bd4b..579b18c7c0 100644 --- a/api/models/provider.py +++ b/api/models/provider.py @@ -40,7 +40,8 @@ class ProviderQuotaType(Enum): if member.value == value: return member raise ValueError(f"No matching enum found for value '{value}'") - + + class CredentialStatus(StrEnum): ACTIVE = "active" CANCELED = "canceled" @@ -71,8 +72,8 @@ class Provider(Base): last_used: Mapped[Optional[datetime]] = mapped_column(DateTime, nullable=True) credential_id: Mapped[Optional[str]] = mapped_column(StringUUID, nullable=True) credential_status: Mapped[Optional[str]] = mapped_column( - String(20), nullable=True, server_default=text("'active'::character varying") - ) + String(20), nullable=True, server_default=text("'active'::character varying") + ) quota_type: Mapped[Optional[str]] = mapped_column( String(40), nullable=True, server_default=text("''::character varying")