diff --git a/api/core/entities/model_entities.py b/api/core/entities/model_entities.py index 8290fc217e..ac64a8e3a0 100644 --- a/api/core/entities/model_entities.py +++ b/api/core/entities/model_entities.py @@ -19,6 +19,7 @@ class ModelStatus(Enum): QUOTA_EXCEEDED = "quota-exceeded" NO_PERMISSION = "no-permission" DISABLED = "disabled" + CREDENTIAL_REMOVED = "credential-removed" class SimpleModelProviderEntity(BaseModel): diff --git a/api/core/entities/provider_configuration.py b/api/core/entities/provider_configuration.py index 1f5f1b8c3e..d35ce9bf89 100644 --- a/api/core/entities/provider_configuration.py +++ b/api/core/entities/provider_configuration.py @@ -1598,6 +1598,9 @@ class ProviderConfiguration(BaseModel): if len(model_setting.load_balancing_configs) > 1: load_balancing_enabled = True + if len(model_configuration.available_model_credentials) > 0 and not model_configuration.credentials: + status = ModelStatus.CREDENTIAL_REMOVED + provider_models.append( ModelWithProviderEntity( model=custom_model_schema.model, diff --git a/api/core/entities/provider_entities.py b/api/core/entities/provider_entities.py index 00b9039610..63115b720a 100644 --- a/api/core/entities/provider_entities.py +++ b/api/core/entities/provider_entities.py @@ -107,7 +107,7 @@ class CustomModelConfiguration(BaseModel): model: str model_type: ModelType - credentials: dict + credentials: dict | None current_credential_id: Optional[str] = None available_model_credentials: list[CredentialConfiguration] = [] diff --git a/api/core/provider_manager.py b/api/core/provider_manager.py index c3de77d1d6..8502cbd92b 100644 --- a/api/core/provider_manager.py +++ b/api/core/provider_manager.py @@ -726,7 +726,7 @@ class ProviderManager: # Get cached provider model credentials cached_provider_model_credentials = provider_model_credentials_cache.get() - if not cached_provider_model_credentials: + if not cached_provider_model_credentials and provider_model_record.encrypted_config: try: provider_model_credentials = json.loads(provider_model_record.encrypted_config) except JSONDecodeError: