更新
This commit is contained in:
@@ -224,6 +224,33 @@ def save_settings():
|
||||
os.replace(tmp, _SETTINGS_FILE)
|
||||
|
||||
|
||||
def export_settings() -> dict:
|
||||
"""返回可下发给桌面端的 AI 配置副本。"""
|
||||
g = globals()
|
||||
return {key: g[key] for key in CONFIGURABLE_KEYS}
|
||||
|
||||
|
||||
def apply_settings(settings: dict, *, persist: bool = True) -> dict:
|
||||
"""应用后台下发配置,并可原子写入本地配置文件。
|
||||
|
||||
未知字段会被忽略,避免后台响应意外覆盖模块中的其他全局变量。
|
||||
返回实际应用的字段,便于同步客户端记录版本与诊断信息。
|
||||
"""
|
||||
global AI_SYSTEM_PROMPT
|
||||
if not isinstance(settings, dict):
|
||||
raise TypeError("AI 配置必须是 JSON 对象")
|
||||
g = globals()
|
||||
applied = {}
|
||||
for key in CONFIGURABLE_KEYS:
|
||||
if key in settings:
|
||||
g[key] = settings[key]
|
||||
applied[key] = settings[key]
|
||||
AI_SYSTEM_PROMPT = build_system_prompt()
|
||||
if persist:
|
||||
save_settings()
|
||||
return applied
|
||||
|
||||
|
||||
def load_settings():
|
||||
"""从 ai_settings.json 加载已保存的配置,覆盖本文件中的默认值。"""
|
||||
global AI_SYSTEM_PROMPT
|
||||
|
||||
Reference in New Issue
Block a user