| from typing import Optional | from typing import Optional | ||||
| from pydantic import BaseModel, ConfigDict | from pydantic import BaseModel, ConfigDict | ||||
| from sqlalchemy import or_ | |||||
| from constants import HIDDEN_VALUE | from constants import HIDDEN_VALUE | ||||
| from core.entities import DEFAULT_PLUGIN_ID | from core.entities import DEFAULT_PLUGIN_ID | ||||
| ) | ) | ||||
| from core.model_runtime.model_providers.__base.ai_model import AIModel | from core.model_runtime.model_providers.__base.ai_model import AIModel | ||||
| from core.model_runtime.model_providers.model_provider_factory import ModelProviderFactory | from core.model_runtime.model_providers.model_provider_factory import ModelProviderFactory | ||||
| from core.plugin.entities.plugin import ModelProviderID | |||||
| from extensions.ext_database import db | from extensions.ext_database import db | ||||
| from models.provider import ( | from models.provider import ( | ||||
| LoadBalancingModelConfig, | LoadBalancingModelConfig, | ||||
| db.session.query(Provider) | db.session.query(Provider) | ||||
| .filter( | .filter( | ||||
| Provider.tenant_id == self.tenant_id, | Provider.tenant_id == self.tenant_id, | ||||
| Provider.provider_name == self.provider.provider, | |||||
| Provider.provider_type == ProviderType.CUSTOM.value, | Provider.provider_type == ProviderType.CUSTOM.value, | ||||
| or_( | |||||
| Provider.provider_name == ModelProviderID(self.provider.provider).plugin_name, | |||||
| Provider.provider_name == self.provider.provider, | |||||
| ), | |||||
| ) | ) | ||||
| .first() | .first() | ||||
| ) | ) | ||||
| db.session.query(Provider) | db.session.query(Provider) | ||||
| .filter( | .filter( | ||||
| Provider.tenant_id == self.tenant_id, | Provider.tenant_id == self.tenant_id, | ||||
| Provider.provider_name == self.provider.provider, | |||||
| or_( | |||||
| Provider.provider_name == ModelProviderID(self.provider.provider).plugin_name, | |||||
| Provider.provider_name == self.provider.provider, | |||||
| ), | |||||
| Provider.provider_type == ProviderType.CUSTOM.value, | Provider.provider_type == ProviderType.CUSTOM.value, | ||||
| ) | ) | ||||
| .first() | .first() |