britto224's picture
Upload 130 files
5669b22 verified
# config_manager/system.py
from pydantic import Field, model_validator
from typing import Dict, ClassVar
from .i18n import I18nMixin, Description
class SystemConfig(I18nMixin):
"""System configuration settings."""
conf_version: str = Field(..., alias="conf_version")
host: str = Field(..., alias="host")
port: int = Field(..., alias="port")
config_alts_dir: str = Field(..., alias="config_alts_dir")
tool_prompts: Dict[str, str] = Field(..., alias="tool_prompts")
enable_proxy: bool = Field(False, alias="enable_proxy")
DESCRIPTIONS: ClassVar[Dict[str, Description]] = {
"conf_version": Description(en="Configuration version", zh="配置文件版本"),
"host": Description(en="Server host address", zh="服务器主机地址"),
"port": Description(en="Server port number", zh="服务器端口号"),
"config_alts_dir": Description(
en="Directory for alternative configurations", zh="备用配置目录"
),
"tool_prompts": Description(
en="Tool prompts to be inserted into persona prompt",
zh="要插入到角色提示词中的工具提示词",
),
"enable_proxy": Description(
en="Enable proxy mode for multiple clients",
zh="启用代理模式以支持多个客户端使用一个 ws 连接",
),
}
@model_validator(mode="after")
def check_port(cls, values):
port = values.port
if port < 0 or port > 65535:
raise ValueError("Port must be between 0 and 65535")
return values