|
@@ -4,6 +4,7 @@ from flask import Flask
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
from configs import dify_config
|
|
|
+from core.entities import DEFAULT_PLUGIN_ID
|
|
|
from core.entities.provider_entities import ProviderQuotaType, QuotaUnit, RestrictModel
|
|
|
from core.model_runtime.entities.model_entities import ModelType
|
|
|
|
|
@@ -41,18 +42,18 @@ class HostedModerationConfig(BaseModel):
|
|
|
|
|
|
class HostingConfiguration:
|
|
|
provider_map: dict[str, HostingProvider] = {}
|
|
|
- moderation_config: HostedModerationConfig = None
|
|
|
+ moderation_config: Optional[HostedModerationConfig] = None
|
|
|
|
|
|
def init_app(self, app: Flask) -> None:
|
|
|
if dify_config.EDITION != "CLOUD":
|
|
|
return
|
|
|
|
|
|
- self.provider_map["azure_openai"] = self.init_azure_openai()
|
|
|
- self.provider_map["openai"] = self.init_openai()
|
|
|
- self.provider_map["anthropic"] = self.init_anthropic()
|
|
|
- self.provider_map["minimax"] = self.init_minimax()
|
|
|
- self.provider_map["spark"] = self.init_spark()
|
|
|
- self.provider_map["zhipuai"] = self.init_zhipuai()
|
|
|
+ self.provider_map[f"{DEFAULT_PLUGIN_ID}/azure_openai/azure_openai"] = self.init_azure_openai()
|
|
|
+ self.provider_map[f"{DEFAULT_PLUGIN_ID}/openai/openai"] = self.init_openai()
|
|
|
+ self.provider_map[f"{DEFAULT_PLUGIN_ID}/anthropic/anthropic"] = self.init_anthropic()
|
|
|
+ self.provider_map[f"{DEFAULT_PLUGIN_ID}/minimax/minimax"] = self.init_minimax()
|
|
|
+ self.provider_map[f"{DEFAULT_PLUGIN_ID}/spark/spark"] = self.init_spark()
|
|
|
+ self.provider_map[f"{DEFAULT_PLUGIN_ID}/zhipuai/zhipuai"] = self.init_zhipuai()
|
|
|
|
|
|
self.moderation_config = self.init_moderation_config()
|
|
|
|
|
@@ -239,7 +240,14 @@ class HostingConfiguration:
|
|
|
@staticmethod
|
|
|
def init_moderation_config() -> HostedModerationConfig:
|
|
|
if dify_config.HOSTED_MODERATION_ENABLED and dify_config.HOSTED_MODERATION_PROVIDERS:
|
|
|
- return HostedModerationConfig(enabled=True, providers=dify_config.HOSTED_MODERATION_PROVIDERS.split(","))
|
|
|
+ providers = dify_config.HOSTED_MODERATION_PROVIDERS.split(",")
|
|
|
+ hosted_providers = []
|
|
|
+ for provider in providers:
|
|
|
+ if "/" not in provider:
|
|
|
+ provider = f"{DEFAULT_PLUGIN_ID}/{provider}/{provider}"
|
|
|
+ hosted_providers.append(provider)
|
|
|
+
|
|
|
+ return HostedModerationConfig(enabled=True, providers=hosted_providers)
|
|
|
|
|
|
return HostedModerationConfig(enabled=False)
|
|
|
|