Model provider inputs not reset when switching to unconfigured provider

使用 LobeChat 桌面客户端 (Electron) 时,在设置 → 模型提供商页面,先后切换不同的 AI 服务提供商。本 Issue 中用户使用了 Google 和 DeepSeek 两个提供商。

Model provider inputs not reset when switching to unconfigured provider

Model provider inputs not reset when switching to unconfigured provider

快速结论:该 Bug 发生在 LobeChat 模型提供商设置页面,当从一个已配置 API Key 的提供商切换到另一个未配置的提供商时,输入框依然显示之前提供商的值,未正确清空。优先排查 form.setFieldsValueundefined 值的行为。

问题场景

使用 LobeChat 桌面客户端 (Electron) 时,在设置 → 模型提供商页面,先后切换不同的 AI 服务提供商。本 Issue 中用户使用了 Google 和 DeepSeek 两个提供商。

报错原文

When switching from A to B, the input box is normally changed to the value of B, but when switching back from B to A, the input box still retains the value of B instead of being emptied (because the value of A is empty).

原因分析

这是 ProviderConfig 组件中的表单重置问题。当切换提供商时,组件通过 form.setFieldsValue(mergedData) 来更新表单值。但如果目标提供商的关键字段(如 apiKeybaseURL)为空或为 undefined,Ant Design 的 setFieldsValue 不会用 undefined 覆盖已有字段值——现有字段值将被保留(即上一个提供商的值)。

可能原因: mergedData 中空的关键字段值为 undefined,而 setFieldsValue({ keyVaults: { apiKey: undefined, baseURL: undefined } }) 并不会真正清空这些字段。此前 PR #14192 修复了搜索关键词不重置的问题,方法是将非受控输入改为受控组件并在提供商切换时显式清理,但该修复针对的是搜索关键词而非 keyVaults 表单字段。

环境排查

  • 确认 LobeChat 版本是否为 v2.2.10-canary.45 或更早版本(此版本已确认存在该 Bug)
  • 运行平台:桌面客户端 (Electron) / 官方云平台
  • 操作系统:Windows(Edge 浏览器)
  • 使用启用并配置多个模型提供商,且至少有一个提供商的 API Key 和 Host 为空

解决步骤

  1. 复现问题:启用两个模型提供商(如 Google 和 DeepSeek),将两者的 API Key 和 Host 都留空。先填写 DeepSeek 的 API Key 和 Host(任意值),然后切换到 Google 页面——正常情况下 Google 的输入框应为空,但实际会显示 DeepSeek 的值。
  2. 可能的修复策略(可优先尝试):
    • 在切换提供商时先调用 form.resetFields(),再执行 form.setFieldsValue(mergedData),以确保所有字段被重置为初始值。
    • 或将 mergedData 中空字段的 undefined 值改为空字符串 "",因为 setFieldsValue 对空字符串会执行清空操作。
  3. 社区修复参考:可查看 PR #14192 中对搜索关键词重置的实现方式,将其类似逻辑应用到 keyVaults 字段上。

验证方法

按照“解决步骤”中复现问题的流程操作:

  • 切换回未配置的提供商时,API Key 和 Host 输入框应正确显示为空,而非保留上一个提供商的值。
  • 检查是否有其他表单字段(如自定义模型名称等)也存在类似的不重置问题。

参考来源

lobehub/lobe-chat #16833

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

celebrityanime
celebrityanime
文章: 14892

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注