mirror of
https://github.com/langgenius/dify.git
synced 2026-08-28 21:23:22 +08:00
feat: add trial model list in system features (#31313)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: hj24 <mambahj24@gmail.com>
This commit is contained in:
parent
b9f1d65d4f
commit
7c12e923b6
21
api/enums/hosted_provider.py
Normal file
21
api/enums/hosted_provider.py
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
from enum import StrEnum
|
||||||
|
|
||||||
|
|
||||||
|
class HostedTrialProvider(StrEnum):
|
||||||
|
"""
|
||||||
|
Enum representing hosted model provider names for trial access.
|
||||||
|
"""
|
||||||
|
|
||||||
|
OPENAI = "langgenius/openai/openai"
|
||||||
|
ANTHROPIC = "langgenius/anthropic/anthropic"
|
||||||
|
GEMINI = "langgenius/gemini/google"
|
||||||
|
X = "langgenius/x/x"
|
||||||
|
DEEPSEEK = "langgenius/deepseek/deepseek"
|
||||||
|
TONGYI = "langgenius/tongyi/tongyi"
|
||||||
|
|
||||||
|
@property
|
||||||
|
def config_key(self) -> str:
|
||||||
|
"""Return the config key used in dify_config (e.g., HOSTED_{config_key}_PAID_ENABLED)."""
|
||||||
|
if self == HostedTrialProvider.X:
|
||||||
|
return "XAI"
|
||||||
|
return self.name
|
||||||
@ -4,6 +4,7 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||||||
|
|
||||||
from configs import dify_config
|
from configs import dify_config
|
||||||
from enums.cloud_plan import CloudPlan
|
from enums.cloud_plan import CloudPlan
|
||||||
|
from enums.hosted_provider import HostedTrialProvider
|
||||||
from services.billing_service import BillingService
|
from services.billing_service import BillingService
|
||||||
from services.enterprise.enterprise_service import EnterpriseService
|
from services.enterprise.enterprise_service import EnterpriseService
|
||||||
|
|
||||||
@ -170,6 +171,7 @@ class SystemFeatureModel(BaseModel):
|
|||||||
plugin_installation_permission: PluginInstallationPermissionModel = PluginInstallationPermissionModel()
|
plugin_installation_permission: PluginInstallationPermissionModel = PluginInstallationPermissionModel()
|
||||||
enable_change_email: bool = True
|
enable_change_email: bool = True
|
||||||
plugin_manager: PluginManagerModel = PluginManagerModel()
|
plugin_manager: PluginManagerModel = PluginManagerModel()
|
||||||
|
trial_models: list[str] = []
|
||||||
enable_trial_app: bool = False
|
enable_trial_app: bool = False
|
||||||
enable_explore_banner: bool = False
|
enable_explore_banner: bool = False
|
||||||
|
|
||||||
@ -227,9 +229,21 @@ class FeatureService:
|
|||||||
system_features.is_allow_register = dify_config.ALLOW_REGISTER
|
system_features.is_allow_register = dify_config.ALLOW_REGISTER
|
||||||
system_features.is_allow_create_workspace = dify_config.ALLOW_CREATE_WORKSPACE
|
system_features.is_allow_create_workspace = dify_config.ALLOW_CREATE_WORKSPACE
|
||||||
system_features.is_email_setup = dify_config.MAIL_TYPE is not None and dify_config.MAIL_TYPE != ""
|
system_features.is_email_setup = dify_config.MAIL_TYPE is not None and dify_config.MAIL_TYPE != ""
|
||||||
|
system_features.trial_models = cls._fulfill_trial_models_from_env()
|
||||||
system_features.enable_trial_app = dify_config.ENABLE_TRIAL_APP
|
system_features.enable_trial_app = dify_config.ENABLE_TRIAL_APP
|
||||||
system_features.enable_explore_banner = dify_config.ENABLE_EXPLORE_BANNER
|
system_features.enable_explore_banner = dify_config.ENABLE_EXPLORE_BANNER
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def _fulfill_trial_models_from_env(cls) -> list[str]:
|
||||||
|
return [
|
||||||
|
provider.value
|
||||||
|
for provider in HostedTrialProvider
|
||||||
|
if (
|
||||||
|
getattr(dify_config, f"HOSTED_{provider.config_key}_PAID_ENABLED", False)
|
||||||
|
and getattr(dify_config, f"HOSTED_{provider.config_key}_TRIAL_ENABLED", False)
|
||||||
|
)
|
||||||
|
]
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def _fulfill_params_from_env(cls, features: FeatureModel):
|
def _fulfill_params_from_env(cls, features: FeatureModel):
|
||||||
features.can_replace_logo = dify_config.CAN_REPLACE_LOGO
|
features.can_replace_logo = dify_config.CAN_REPLACE_LOGO
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user