|
|
|
|
|
|
|
|
from sqlalchemy.exc import IntegrityError |
|
|
from sqlalchemy.exc import IntegrityError |
|
|
|
|
|
|
|
|
from configs import dify_config |
|
|
from configs import dify_config |
|
|
|
|
|
from core.entities import DEFAULT_PLUGIN_ID |
|
|
from core.entities.model_entities import DefaultModelEntity, DefaultModelProviderEntity |
|
|
from core.entities.model_entities import DefaultModelEntity, DefaultModelProviderEntity |
|
|
from core.entities.provider_configuration import ProviderConfiguration, ProviderConfigurations, ProviderModelBundle |
|
|
from core.entities.provider_configuration import ProviderConfiguration, ProviderConfigurations, ProviderModelBundle |
|
|
from core.entities.provider_entities import ( |
|
|
from core.entities.provider_entities import ( |
|
|
|
|
|
|
|
|
if quota.quota_type == ProviderQuotaType.TRIAL: |
|
|
if quota.quota_type == ProviderQuotaType.TRIAL: |
|
|
# Init trial provider records if not exists |
|
|
# Init trial provider records if not exists |
|
|
if ProviderQuotaType.TRIAL not in provider_quota_to_provider_record_dict: |
|
|
if ProviderQuotaType.TRIAL not in provider_quota_to_provider_record_dict: |
|
|
|
|
|
if not provider_name.startswith(DEFAULT_PLUGIN_ID): |
|
|
|
|
|
continue |
|
|
|
|
|
hosting_provider_name = provider_name.split("/")[-1] |
|
|
try: |
|
|
try: |
|
|
# FIXME ignore the type errork, onyl TrialHostingQuota has limit need to change the logic |
|
|
# FIXME ignore the type errork, onyl TrialHostingQuota has limit need to change the logic |
|
|
provider_record = Provider( |
|
|
provider_record = Provider( |
|
|
tenant_id=tenant_id, |
|
|
tenant_id=tenant_id, |
|
|
provider_name=provider_name, |
|
|
|
|
|
|
|
|
provider_name=hosting_provider_name, |
|
|
provider_type=ProviderType.SYSTEM.value, |
|
|
provider_type=ProviderType.SYSTEM.value, |
|
|
quota_type=ProviderQuotaType.TRIAL.value, |
|
|
quota_type=ProviderQuotaType.TRIAL.value, |
|
|
quota_limit=quota.quota_limit, # type: ignore |
|
|
quota_limit=quota.quota_limit, # type: ignore |
|
|
|
|
|
|
|
|
db.session.query(Provider) |
|
|
db.session.query(Provider) |
|
|
.filter( |
|
|
.filter( |
|
|
Provider.tenant_id == tenant_id, |
|
|
Provider.tenant_id == tenant_id, |
|
|
Provider.provider_name == provider_name, |
|
|
|
|
|
|
|
|
Provider.provider_name == hosting_provider_name, |
|
|
Provider.provider_type == ProviderType.SYSTEM.value, |
|
|
Provider.provider_type == ProviderType.SYSTEM.value, |
|
|
Provider.quota_type == ProviderQuotaType.TRIAL.value, |
|
|
Provider.quota_type == ProviderQuotaType.TRIAL.value, |
|
|
) |
|
|
) |