feat(web): 持久化 LLM 模型配置 / Persist LLM config across browser sessions - #96
feat(web): 持久化 LLM 模型配置 / Persist LLM config across browser sessions#96WenhuaXia wants to merge 1 commit into
Conversation
|
配置持久化这个痛点是真的 —— 每次重开标签页都回到默认 MiniMax,确实烦。 但这个 PR 里有一部分改动不在标题和描述里,我不能直接合。 描述外的改动diff 里除了配置持久化,还改了三处 UI 行为: - "开始分析" if not is_busy else "停止中..." if is_stopping else "分析进行中...",
+ "分析中..." if is_busy else ("重新生成" if _already_done else "生成复盘"),
这些都是产品交互决策,跟"持久化模型配置"是两件事。合进来的话,用户会发现按钮突然改名了,而 changelog 里只写了配置持久化 —— 这种"顺手改掉"的东西最难排查。 顺带两个小点:
建议把这个 PR 收敛回只做配置持久化(就是你描述里写的那些),我这边验完就合。UI 文案和历史点击行为如果你觉得确实该改,另开一个 PR,我们单独讨论 —— 「生成复盘」这个叫法其实我不反对,只是它得自己走一遍讨论。 另外提醒一下:#99 也实现了 Web 配置持久化(那个 PR 是火山方舟 + 配置持久化 + 锁超时三合一,目前处于 CONFLICTING)。你这个更专注,收敛后我优先合你的,到时候会请 #99 那边 rebase 掉重复部分。 |
Web UI 的 st.session_state 在标签页关闭后丢失,每次打开都回到默认 MiniMax。 本次修改在开始分析前自动保存 provider + quick/deep 模型选择到 .llm_config.json, 下次打开时恢复。 Persist LLM model selection (provider, quick/deep models, base URL) to a JSON file so it survives browser tab close/reopen. Previously st.session_state was lost, always resetting to the default MiniMax provider.
a1d1ad7 to
4e5b95a
Compare
|
已按意见修改并 rebase 到最新 main(v0.5.15),现在 PR 只有 1 个 commit: 1. 收敛范围 — 删掉了「按钮文案动态切换 + 历史记录一键重新生成」那个 commit(按钮改名 / 2. 3. 验证: 麻烦再看一下,谢谢! |
问题 / Problem
Web UI 使用
st.session_state存储模型配置(provider、quick/deep 模型、base URL),但 session state 在浏览器标签页关闭后丢失。每次重新打开页面,配置都回到默认的 MiniMax。The Web UI stores model config (provider, quick/deep models, base URL) in
st.session_state, which is lost when the browser tab is closed. Every revisit resets to the default MiniMax provider.修复 / Fix
在点击"开始分析"前自动将配置写入项目目录下的
.llm_config.json页面加载时从该文件恢复上次的选择(
setdefault保证不覆盖用户当次修改)持久化字段:provider、quick_model_idx、deep_model_idx、llm_base_url、subscription_scope、agent_sdk_model、custom 模型输入
Auto-save config to
.llm_config.jsonbefore analysis startsRestore saved selection on page load via
setdefault(user can still change in-session)Persisted fields: provider, quick/deep model indices, base URL, subscription scope, agent_sdk_model, custom model inputs
改动 / Changes
web/components/sidebar.py— 新增_load_saved_llm_config()+_save_llm_config(),分别在render_sidebar()和"开始分析"按钮触发时调用。No new dependencies. Pure stdlib (
json+pathlib).skipped: 独立的保存按钮,自动保存更可靠且不需要额外 UI。