36 lines
1.6 KiB
Markdown
36 lines
1.6 KiB
Markdown
|
|
## 项目配置项使用说明
|
||
|
|
|
||
|
|
项目所有配置项由 `chatchat.settings.Settings` 统一管理,代替原来通过 `chatchat/configs/*.py` 配置的方式。
|
||
|
|
|
||
|
|
绝大部分配置项沿用了原来的名字和分组,少数进行了整合。
|
||
|
|
|
||
|
|
### 改进后的优点:
|
||
|
|
- 配置项与 py 代码分离,减少代码升级带来的麻烦,更改配置更方便
|
||
|
|
- 切换不同的 yaml 文件即可加载不同的配置,方便多环境管理和测试
|
||
|
|
- 配置项通过 `pydantic` 模型定义,加强了数据验证,简化了环境变量的读取,可以使用 `yaml/json/toml` 不同的文件后端
|
||
|
|
- 可以自动生成 yaml 文件模板,添加配置说明
|
||
|
|
- 所有配置项进行了缓存减少文件读取,当 .yaml/.env 文件被修改时可以自动刷新缓存
|
||
|
|
|
||
|
|
### 使用方式:
|
||
|
|
|
||
|
|
```python3
|
||
|
|
from chatchat.settings import Settings
|
||
|
|
|
||
|
|
print(Settings.basic_settings) # 基本配置信息,包括数据目录、服务器配置等
|
||
|
|
print(Settings.kb_settings) # 知识库相关配置项
|
||
|
|
print(Settings.model_settings) # 模型相关配置项
|
||
|
|
print(Settings.tool_settings) # 工具相关配置项
|
||
|
|
print(Settings.prompt_settings) # prompt 模板
|
||
|
|
|
||
|
|
```
|
||
|
|
|
||
|
|
** 注意 **:如果使用 `Settings.xx_settings.XX` 这种方式,配置项会自动跟踪配置文件的修改而刷新;如果使用 `s = Settings.xx_settings; s.XX` 这种方式,配置项不会自动刷新。
|
||
|
|
|
||
|
|
### 添加或更改配置项:
|
||
|
|
|
||
|
|
第一步:直接在 `chatchat/settings.py` 对应的 XXSettings 类中添加字段,建议:
|
||
|
|
- 每个字段都设定默认值
|
||
|
|
- 给字段添加必要的说明
|
||
|
|
|
||
|
|
第二步:执行 `CHATCHAT_ROOT=/path/to/data chatchat init --gen-config` 更新配置模板
|