配置管理
Configuration Management
环境变量驱动的分层配置系统,支持运行时动态更新
子问题
1.环境变量与默认值管理
2.配置分组与层级组织
3.运行时配置热更新
4.向后兼容与废弃警告
5.配置验证与类型安全
6.大 Config 到小 Config 的桥接映射
7.配置自省与敏感信息过滤
各项目的解法1 solutions
Signals
横向对比
| 维度 | RAG-Anything |
|---|---|
| 配置载体 | 单 @dataclass,18 字段按 6 组注释分隔 |
| 环境变量集成 | get_env_value(key, default, type) 模块导入时求值 |
| 运行时更新 | update_config + update_context_config 级联刷新处理器 |
| 向后兼容 | __post_init__ legacy 检测 + @property DeprecationWarning |
| 配置透传 | lightrag_kwargs: Dict 透传下游 LightRAG 全量参数 |
| 配置自省 | get_config_info() 分组结构化输出,过滤 callable 和敏感字段 |
最佳实践
1.使用 dataclass + field(default_factory) 定义配置
2.通过 get_env_value 统一环境变量读取
3.提供 deprecated 属性保持向后兼容
4.用 _create_context_config 实现大 Config → 小 Config 关注点分离
5.get_config_info 过滤 callable 和敏感 kwargs 后输出配置快照
6.Mixin 用 TYPE_CHECKING 导入配置类避免循环依赖