Compare commits

...

9 Commits

Author SHA1 Message Date
Yansong Zhang
360a7b6c4f fix const 2026-01-21 14:15:51 +08:00
Yansong Zhang
8140a950c2 Merge branch 'feat/add-trial-model-list' of github.com:langgenius/dify into feat/add-trial-model-list 2026-01-21 14:07:32 +08:00
Yansong Zhang
782fc332e1 fix const 2026-01-21 14:07:11 +08:00
hj24
267e656f93 Merge branch 'main' into feat/add-trial-model-list 2026-01-21 10:39:33 +08:00
Yansong Zhang
317884ead4 Merge branch 'feat/add-trial-model-list' of github.com:langgenius/dify into feat/add-trial-model-list 2026-01-21 10:20:36 +08:00
Yansong Zhang
fc65cfbc3f linter 2026-01-21 10:20:03 +08:00
Yansong Zhang
ee0e646e39 Standardization function 2026-01-21 10:19:48 +08:00
autofix-ci[bot]
95345bfb17 [autofix.ci] apply automated fixes 2026-01-21 02:16:21 +00:00
Yansong Zhang
8a345bd27d add trial model list in system features 2026-01-21 10:13:54 +08:00
2 changed files with 35 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
from enum import StrEnum
class HostedTrialProvider(StrEnum):
"""
Enum representing hosted model provider names for trial access.
"""
ANTHROPIC = "langgenius/anthropic/anthropic"
OPENAI = "langgenius/openai/openai"
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

View File

@@ -4,6 +4,7 @@ from pydantic import BaseModel, ConfigDict, Field
from configs import dify_config
from enums.cloud_plan import CloudPlan
from enums.hosted_provider import HostedTrialProvider
from services.billing_service import BillingService
from services.enterprise.enterprise_service import EnterpriseService
@@ -170,6 +171,7 @@ class SystemFeatureModel(BaseModel):
plugin_installation_permission: PluginInstallationPermissionModel = PluginInstallationPermissionModel()
enable_change_email: bool = True
plugin_manager: PluginManagerModel = PluginManagerModel()
trial_models: list[str] = []
class FeatureService:
@@ -225,6 +227,18 @@ class FeatureService:
system_features.is_allow_register = dify_config.ALLOW_REGISTER
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.trial_models = cls._fulfill_trial_models_from_env()
@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
def _fulfill_params_from_env(cls, features: FeatureModel):