mirror of
https://github.com/langgenius/dify.git
synced 2024-11-16 11:42:29 +08:00
refactor: extract hosted service configs into dify config (#5504)
This commit is contained in:
parent
57063095c1
commit
5217f7cf69
|
@ -3,20 +3,6 @@ import os
|
||||||
import dotenv
|
import dotenv
|
||||||
|
|
||||||
DEFAULTS = {
|
DEFAULTS = {
|
||||||
'HOSTED_OPENAI_QUOTA_LIMIT': 200,
|
|
||||||
'HOSTED_OPENAI_TRIAL_ENABLED': 'False',
|
|
||||||
'HOSTED_OPENAI_TRIAL_MODELS': 'gpt-3.5-turbo,gpt-3.5-turbo-1106,gpt-3.5-turbo-instruct,gpt-3.5-turbo-16k,gpt-3.5-turbo-16k-0613,gpt-3.5-turbo-0613,gpt-3.5-turbo-0125,text-davinci-003',
|
|
||||||
'HOSTED_OPENAI_PAID_ENABLED': 'False',
|
|
||||||
'HOSTED_OPENAI_PAID_MODELS': 'gpt-4,gpt-4-turbo-preview,gpt-4-turbo-2024-04-09,gpt-4-1106-preview,gpt-4-0125-preview,gpt-3.5-turbo,gpt-3.5-turbo-16k,gpt-3.5-turbo-16k-0613,gpt-3.5-turbo-1106,gpt-3.5-turbo-0613,gpt-3.5-turbo-0125,gpt-3.5-turbo-instruct,text-davinci-003',
|
|
||||||
'HOSTED_AZURE_OPENAI_ENABLED': 'False',
|
|
||||||
'HOSTED_AZURE_OPENAI_QUOTA_LIMIT': 200,
|
|
||||||
'HOSTED_ANTHROPIC_QUOTA_LIMIT': 600000,
|
|
||||||
'HOSTED_ANTHROPIC_TRIAL_ENABLED': 'False',
|
|
||||||
'HOSTED_ANTHROPIC_PAID_ENABLED': 'False',
|
|
||||||
'HOSTED_MODERATION_ENABLED': 'False',
|
|
||||||
'HOSTED_MODERATION_PROVIDERS': '',
|
|
||||||
'HOSTED_FETCH_APP_TEMPLATES_MODE': 'remote',
|
|
||||||
'HOSTED_FETCH_APP_TEMPLATES_REMOTE_DOMAIN': 'https://tmpl.dify.ai',
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -53,37 +39,3 @@ class Config:
|
||||||
'CONSOLE_CORS_ALLOW_ORIGINS', get_env('CONSOLE_WEB_URL'))
|
'CONSOLE_CORS_ALLOW_ORIGINS', get_env('CONSOLE_WEB_URL'))
|
||||||
self.WEB_API_CORS_ALLOW_ORIGINS = get_cors_allow_origins(
|
self.WEB_API_CORS_ALLOW_ORIGINS = get_cors_allow_origins(
|
||||||
'WEB_API_CORS_ALLOW_ORIGINS', '*')
|
'WEB_API_CORS_ALLOW_ORIGINS', '*')
|
||||||
|
|
||||||
# ------------------------
|
|
||||||
# Platform Configurations.
|
|
||||||
# ------------------------
|
|
||||||
self.HOSTED_OPENAI_API_KEY = get_env('HOSTED_OPENAI_API_KEY')
|
|
||||||
self.HOSTED_OPENAI_API_BASE = get_env('HOSTED_OPENAI_API_BASE')
|
|
||||||
self.HOSTED_OPENAI_API_ORGANIZATION = get_env('HOSTED_OPENAI_API_ORGANIZATION')
|
|
||||||
self.HOSTED_OPENAI_TRIAL_ENABLED = get_bool_env('HOSTED_OPENAI_TRIAL_ENABLED')
|
|
||||||
self.HOSTED_OPENAI_TRIAL_MODELS = get_env('HOSTED_OPENAI_TRIAL_MODELS')
|
|
||||||
self.HOSTED_OPENAI_QUOTA_LIMIT = int(get_env('HOSTED_OPENAI_QUOTA_LIMIT'))
|
|
||||||
self.HOSTED_OPENAI_PAID_ENABLED = get_bool_env('HOSTED_OPENAI_PAID_ENABLED')
|
|
||||||
self.HOSTED_OPENAI_PAID_MODELS = get_env('HOSTED_OPENAI_PAID_MODELS')
|
|
||||||
|
|
||||||
self.HOSTED_AZURE_OPENAI_ENABLED = get_bool_env('HOSTED_AZURE_OPENAI_ENABLED')
|
|
||||||
self.HOSTED_AZURE_OPENAI_API_KEY = get_env('HOSTED_AZURE_OPENAI_API_KEY')
|
|
||||||
self.HOSTED_AZURE_OPENAI_API_BASE = get_env('HOSTED_AZURE_OPENAI_API_BASE')
|
|
||||||
self.HOSTED_AZURE_OPENAI_QUOTA_LIMIT = int(get_env('HOSTED_AZURE_OPENAI_QUOTA_LIMIT'))
|
|
||||||
|
|
||||||
self.HOSTED_ANTHROPIC_API_BASE = get_env('HOSTED_ANTHROPIC_API_BASE')
|
|
||||||
self.HOSTED_ANTHROPIC_API_KEY = get_env('HOSTED_ANTHROPIC_API_KEY')
|
|
||||||
self.HOSTED_ANTHROPIC_TRIAL_ENABLED = get_bool_env('HOSTED_ANTHROPIC_TRIAL_ENABLED')
|
|
||||||
self.HOSTED_ANTHROPIC_QUOTA_LIMIT = int(get_env('HOSTED_ANTHROPIC_QUOTA_LIMIT'))
|
|
||||||
self.HOSTED_ANTHROPIC_PAID_ENABLED = get_bool_env('HOSTED_ANTHROPIC_PAID_ENABLED')
|
|
||||||
|
|
||||||
self.HOSTED_MINIMAX_ENABLED = get_bool_env('HOSTED_MINIMAX_ENABLED')
|
|
||||||
self.HOSTED_SPARK_ENABLED = get_bool_env('HOSTED_SPARK_ENABLED')
|
|
||||||
self.HOSTED_ZHIPUAI_ENABLED = get_bool_env('HOSTED_ZHIPUAI_ENABLED')
|
|
||||||
|
|
||||||
self.HOSTED_MODERATION_ENABLED = get_bool_env('HOSTED_MODERATION_ENABLED')
|
|
||||||
self.HOSTED_MODERATION_PROVIDERS = get_env('HOSTED_MODERATION_PROVIDERS')
|
|
||||||
|
|
||||||
# fetch app templates mode, remote, builtin, db(only for dify SaaS), default: remote
|
|
||||||
self.HOSTED_FETCH_APP_TEMPLATES_MODE = get_env('HOSTED_FETCH_APP_TEMPLATES_MODE')
|
|
||||||
self.HOSTED_FETCH_APP_TEMPLATES_REMOTE_DOMAIN = get_env('HOSTED_FETCH_APP_TEMPLATES_REMOTE_DOMAIN')
|
|
||||||
|
|
|
@ -2,6 +2,8 @@ from typing import Optional
|
||||||
|
|
||||||
from pydantic import AliasChoices, BaseModel, Field, NonNegativeInt, PositiveInt
|
from pydantic import AliasChoices, BaseModel, Field, NonNegativeInt, PositiveInt
|
||||||
|
|
||||||
|
from configs.feature.hosted_service import HostedServiceConfig
|
||||||
|
|
||||||
|
|
||||||
class SecurityConfig(BaseModel):
|
class SecurityConfig(BaseModel):
|
||||||
"""
|
"""
|
||||||
|
@ -421,5 +423,8 @@ class FeatureConfig(
|
||||||
UpdateConfig,
|
UpdateConfig,
|
||||||
WorkflowConfig,
|
WorkflowConfig,
|
||||||
WorkspaceConfig,
|
WorkspaceConfig,
|
||||||
|
|
||||||
|
# hosted services config
|
||||||
|
HostedServiceConfig,
|
||||||
):
|
):
|
||||||
pass
|
pass
|
||||||
|
|
208
api/configs/feature/hosted_service/__init__.py
Normal file
208
api/configs/feature/hosted_service/__init__.py
Normal file
|
@ -0,0 +1,208 @@
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
|
from pydantic import BaseModel, Field, NonNegativeInt
|
||||||
|
|
||||||
|
|
||||||
|
class HostedOpenAiConfig(BaseModel):
|
||||||
|
"""
|
||||||
|
Hosted OpenAI service config
|
||||||
|
"""
|
||||||
|
|
||||||
|
HOSTED_OPENAI_API_KEY: Optional[str] = Field(
|
||||||
|
description='',
|
||||||
|
default=None,
|
||||||
|
)
|
||||||
|
|
||||||
|
HOSTED_OPENAI_API_BASE: Optional[str] = Field(
|
||||||
|
description='',
|
||||||
|
default=None,
|
||||||
|
)
|
||||||
|
|
||||||
|
HOSTED_OPENAI_API_ORGANIZATION: Optional[str] = Field(
|
||||||
|
description='',
|
||||||
|
default=None,
|
||||||
|
)
|
||||||
|
|
||||||
|
HOSTED_OPENAI_TRIAL_ENABLED: bool = Field(
|
||||||
|
description='',
|
||||||
|
default=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
HOSTED_OPENAI_TRIAL_MODELS: str = Field(
|
||||||
|
description='',
|
||||||
|
default='gpt-3.5-turbo,'
|
||||||
|
'gpt-3.5-turbo-1106,'
|
||||||
|
'gpt-3.5-turbo-instruct,'
|
||||||
|
'gpt-3.5-turbo-16k,'
|
||||||
|
'gpt-3.5-turbo-16k-0613,'
|
||||||
|
'gpt-3.5-turbo-0613,'
|
||||||
|
'gpt-3.5-turbo-0125,'
|
||||||
|
'text-davinci-003',
|
||||||
|
)
|
||||||
|
|
||||||
|
HOSTED_OPENAI_QUOTA_LIMIT: NonNegativeInt = Field(
|
||||||
|
description='',
|
||||||
|
default=200,
|
||||||
|
)
|
||||||
|
|
||||||
|
HOSTED_OPENAI_PAID_ENABLED: bool = Field(
|
||||||
|
description='',
|
||||||
|
default=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
HOSTED_OPENAI_PAID_MODELS: str = Field(
|
||||||
|
description='',
|
||||||
|
default='gpt-4,'
|
||||||
|
'gpt-4-turbo-preview,'
|
||||||
|
'gpt-4-turbo-2024-04-09,'
|
||||||
|
'gpt-4-1106-preview,'
|
||||||
|
'gpt-4-0125-preview,'
|
||||||
|
'gpt-3.5-turbo,'
|
||||||
|
'gpt-3.5-turbo-16k,'
|
||||||
|
'gpt-3.5-turbo-16k-0613,'
|
||||||
|
'gpt-3.5-turbo-1106,'
|
||||||
|
'gpt-3.5-turbo-0613,'
|
||||||
|
'gpt-3.5-turbo-0125,'
|
||||||
|
'gpt-3.5-turbo-instruct,'
|
||||||
|
'text-davinci-003',
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class HostedAzureOpenAiConfig(BaseModel):
|
||||||
|
"""
|
||||||
|
Hosted OpenAI service config
|
||||||
|
"""
|
||||||
|
|
||||||
|
HOSTED_AZURE_OPENAI_ENABLED: bool = Field(
|
||||||
|
description='',
|
||||||
|
default=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
HOSTED_OPENAI_API_KEY: Optional[str] = Field(
|
||||||
|
description='',
|
||||||
|
default=None,
|
||||||
|
)
|
||||||
|
|
||||||
|
HOSTED_AZURE_OPENAI_API_BASE: Optional[str] = Field(
|
||||||
|
description='',
|
||||||
|
default=None,
|
||||||
|
)
|
||||||
|
|
||||||
|
HOSTED_AZURE_OPENAI_QUOTA_LIMIT: NonNegativeInt = Field(
|
||||||
|
description='',
|
||||||
|
default=200,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class HostedAnthropicConfig(BaseModel):
|
||||||
|
"""
|
||||||
|
Hosted Azure OpenAI service config
|
||||||
|
"""
|
||||||
|
|
||||||
|
HOSTED_ANTHROPIC_API_BASE: Optional[str] = Field(
|
||||||
|
description='',
|
||||||
|
default=None,
|
||||||
|
)
|
||||||
|
|
||||||
|
HOSTED_ANTHROPIC_API_KEY: Optional[str] = Field(
|
||||||
|
description='',
|
||||||
|
default=None,
|
||||||
|
)
|
||||||
|
|
||||||
|
HOSTED_ANTHROPIC_TRIAL_ENABLED: bool = Field(
|
||||||
|
description='',
|
||||||
|
default=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
HOSTED_ANTHROPIC_QUOTA_LIMIT: NonNegativeInt = Field(
|
||||||
|
description='',
|
||||||
|
default=600000,
|
||||||
|
)
|
||||||
|
|
||||||
|
HOSTED_ANTHROPIC_PAID_ENABLED: bool = Field(
|
||||||
|
description='',
|
||||||
|
default=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class HostedMinmaxConfig(BaseModel):
|
||||||
|
"""
|
||||||
|
Hosted Minmax service config
|
||||||
|
"""
|
||||||
|
|
||||||
|
HOSTED_MINIMAX_ENABLED: bool = Field(
|
||||||
|
description='',
|
||||||
|
default=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class HostedSparkConfig(BaseModel):
|
||||||
|
"""
|
||||||
|
Hosted Spark service config
|
||||||
|
"""
|
||||||
|
|
||||||
|
HOSTED_SPARK_ENABLED: bool = Field(
|
||||||
|
description='',
|
||||||
|
default=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class HostedZhipuAIConfig(BaseModel):
|
||||||
|
"""
|
||||||
|
Hosted Minmax service config
|
||||||
|
"""
|
||||||
|
|
||||||
|
HOSTED_ZHIPUAI_ENABLED: bool = Field(
|
||||||
|
description='',
|
||||||
|
default=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class HostedModerationConfig(BaseModel):
|
||||||
|
"""
|
||||||
|
Hosted Moderation service config
|
||||||
|
"""
|
||||||
|
|
||||||
|
HOSTED_MODERATION_ENABLED: bool = Field(
|
||||||
|
description='',
|
||||||
|
default=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
HOSTED_MODERATION_PROVIDERS: str = Field(
|
||||||
|
description='',
|
||||||
|
default='',
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class HostedFetchAppTemplateConfig(BaseModel):
|
||||||
|
"""
|
||||||
|
Hosted Moderation service config
|
||||||
|
"""
|
||||||
|
|
||||||
|
HOSTED_FETCH_APP_TEMPLATES_MODE: str = Field(
|
||||||
|
description='the mode for fetching app templates,'
|
||||||
|
' default to remote,'
|
||||||
|
' available values: remote, db, builtin',
|
||||||
|
default='remote',
|
||||||
|
)
|
||||||
|
|
||||||
|
HOSTED_FETCH_APP_TEMPLATES_REMOTE_DOMAIN: str = Field(
|
||||||
|
description='the domain for fetching remote app templates',
|
||||||
|
default='https://tmpl.dify.ai',
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class HostedServiceConfig(
|
||||||
|
# place the configs in alphabet order
|
||||||
|
HostedAnthropicConfig,
|
||||||
|
HostedAzureOpenAiConfig,
|
||||||
|
HostedFetchAppTemplateConfig,
|
||||||
|
HostedMinmaxConfig,
|
||||||
|
HostedOpenAiConfig,
|
||||||
|
HostedSparkConfig,
|
||||||
|
HostedZhipuAIConfig,
|
||||||
|
|
||||||
|
# moderation
|
||||||
|
HostedModerationConfig,
|
||||||
|
):
|
||||||
|
pass
|
Loading…
Reference in New Issue
Block a user