配置管理器
文件: utils/config_manager.py(约 1500 行)
ConfigManager 是一个单例类,集中处理所有配置的加载、验证和持久化。
访问方式
python
from utils.config_manager import get_config_manager
config = get_config_manager()关键方法
角色数据
python
config.get_character_data() # 获取所有角色
config.load_characters() # 从磁盘重新加载
config.save_characters(data) # 持久化全部角色(同步,会阻塞事件循环)
config.asave_characters(data) # 异步版本(async 路径用此方法)API 配置
python
config.get_core_config() # API 密钥、提供商、端点
config.get_model_api_config(model_type) # 特定模型角色的配置文件系统
python
config.get_workshop_path() # Steam 创意工坊目录
config.ensure_live2d_directory() # 创建 Live2D 模型目录
config.ensure_vrm_directory() # 创建 VRM 模型目录配置解析
配置管理器实现了优先级链:
- 检查环境变量(
NEKO_*) - 检查用户配置文件(
core_config.json) - 检查 API 提供商定义(
api_providers.json) - 回退到代码默认值(
config/__init__.py)
文件发现
管理器按以下顺序搜索运行时数据根目录(其中存放 config/、memory/ 等):
- 当前平台的标准应用数据目录:
- Windows:
%LOCALAPPDATA%\N.E.K.O\(例如C:\Users\<你>\AppData\Local\N.E.K.O\) - macOS:
~/Library/Application Support/N.E.K.O/ - Linux:
$XDG_DATA_HOME/N.E.K.O/(未设置时为~/.local/share/N.E.K.O/)
- Windows:
- 历史遗留位置(仅用于一次性数据导入 / 最后兜底):用户文档目录(
~/Documents/N.E.K.O/,在 Windows 上通过 Windows APISHGetFolderPath解析)、可执行文件所在目录(冻结打包构建)以及当前工作目录。 - 若均无可用项,则在应用数据目录下创建默认文件。
源码模式下随源码树附带的项目 config/ 文件仍相对仓库根目录解析。
