diff --git a/libs/chatchat-server/chatchat/config_work_space.py b/libs/chatchat-server/chatchat/config_work_space.py new file mode 100644 index 00000000..7539356f --- /dev/null +++ b/libs/chatchat-server/chatchat/config_work_space.py @@ -0,0 +1,48 @@ +from chatchat.configs import config_workspace as workspace + + +def main(): + import argparse + + parser = argparse.ArgumentParser(description="chatchat工作空间配置") + # 只能选择true或false + parser.add_argument( + "-v", + "--verbose", + default="false", + choices=["true", "false"], + help="是否开启详细日志" + ) + parser.add_argument( + "-d", + "--data", + help="数据存放路径" + ) + parser.add_argument( + "-f", + "--format", + help="日志格式" + ) + parser.add_argument( + "--clear", + action="store_true", + help="清除配置" + ) + args = parser.parse_args() + + if args.verbose: + if args.verbose.lower() == "true": + workspace.set_log_verbose(True) + else: + workspace.set_log_verbose(False) + if args.data: + workspace.set_data_path(args.data) + if args.format: + workspace.set_log_format(args.format) + if args.clear: + workspace.clear() + print(workspace.get_config()) + + +if __name__ == "__main__": + main() diff --git a/libs/chatchat-server/chatchat/configs/__init__.py b/libs/chatchat-server/chatchat/configs/__init__.py index 5f23f5ab..c1191b08 100644 --- a/libs/chatchat-server/chatchat/configs/__init__.py +++ b/libs/chatchat-server/chatchat/configs/__init__.py @@ -120,6 +120,12 @@ def _import_ConfigWorkSpace() -> Any: return ConfigWorkSpace +def _import_config_workspace() -> Any: + basic_config_load = CONFIG_IMPORTS.get("_basic_config.py") + load_mod = basic_config_load.get("load_mod") + config_workspace = load_mod(basic_config_load.get("module"), "config_workspace") + return config_workspace + def _import_log_verbose() -> Any: basic_config_load = CONFIG_IMPORTS.get("_basic_config.py") load_mod = basic_config_load.get("load_mod") @@ -513,6 +519,8 @@ def __getattr__(name: str) -> Any: return _import_ConfigBasicFactory() elif name == "ConfigWorkSpace": return _import_ConfigWorkSpace() + elif name == "config_workspace": + return _import_config_workspace() elif name == "log_verbose": return _import_log_verbose() elif name == "CHATCHAT_ROOT": @@ -613,6 +621,7 @@ VERSION = "v0.3.0-preview" __all__ = [ "VERSION", + "config_workspace", "log_verbose", "CHATCHAT_ROOT", "DATA_PATH", diff --git a/libs/chatchat-server/chatchat/configs/_basic_config.py b/libs/chatchat-server/chatchat/configs/_basic_config.py index 03655ce2..61108bde 100644 --- a/libs/chatchat-server/chatchat/configs/_basic_config.py +++ b/libs/chatchat-server/chatchat/configs/_basic_config.py @@ -26,6 +26,9 @@ class ConfigBasic: BASE_TEMP_DIR: str """临时文件目录,主要用于文件对话""" + def __str__(self): + return f"ConfigBasic(log_verbose={self.log_verbose}, CHATCHAT_ROOT={self.CHATCHAT_ROOT}, DATA_PATH={self.DATA_PATH}, IMG_DIR={self.IMG_DIR}, NLTK_DATA_PATH={self.NLTK_DATA_PATH}, LOG_FORMAT={self.LOG_FORMAT}, LOG_PATH={self.LOG_PATH}, MEDIA_PATH={self.MEDIA_PATH}, BASE_TEMP_DIR={self.BASE_TEMP_DIR})" + class ConfigBasicFactory: """Basic config for ChatChat """ diff --git a/libs/chatchat-server/pyproject.toml b/libs/chatchat-server/pyproject.toml index f9adff8d..e105db24 100644 --- a/libs/chatchat-server/pyproject.toml +++ b/libs/chatchat-server/pyproject.toml @@ -11,6 +11,7 @@ packages = [ [tool.poetry.scripts] chatchat = 'chatchat.startup:main' chatchat-kb = 'chatchat.init_database:main' +chatchat-config = 'chatchat.config_work_space:main' [tool.poetry.dependencies] python = ">=3.8.1,<3.12,!=3.9.7"