快速结论:该报错通常出现在 Langfuse Topics 设置流程中配置多个 LLM 连接(或后续新增 embedding 连接)时:已保存模型会被错误注入到所有 provider 的模型列表,且新增连接后为空的 draft 模型槽位不会自动填充。优先排查 topicProviderGroups 的 savedModel 作用域和 TopicSetupSession 的 key 刷新逻辑。
适用环境:Langfuse Cloud(v4.70.0 Cloud / main),涉及 web/src/features/topics/topic-setup-flow.ts 与 TopicSetupFlowController.tsx。Issue 未提供操作系统、Python、CUDA 或显卡环境信息。
最快修复方案:暂无确认的一步修复方案。Issue 中提到已提交带单元测试的修复 PR #19359,但维护者以功能仍在活跃开发、处于 closed beta 阶段为由关闭了 Issue,未确认合并状态。
注意事项:该 Issue 被标记为 unconfirmed bug 且已关闭,相关结论来自 Issue 描述与作者 PR,不代表官方已修复;功能仍在活跃开发中,行为可能随版本变化。未验证的修复请勿直接视为稳定方案。
问题场景
用户在 Langfuse Topics 设置流程中配置至少两个 LLM 连接,并希望其一使用已保存的自定义模型时,JudgeModelPicker 会把同一个 savedModel 列到所有 provider 的模型组下。用户若在另一个 provider 下选中该模型,提交时会提示模型不属于当前项目连接。另一种场景是:项目已有 1 个仅聊天连接(如 Anthropic,connections.length === 1 且 draft.embedding 初始为 null),用户在另一个标签页新增一个 embedding 连接后返回,draft.embedding 仍为 null,没有自动选择推荐的 embedding 模型。
报错原文
bug(topics): topicProviderGroups injects savedModel into all connections and TopicSetupSession doesn't fill null slots when adding a second connection
"Choose a model from a connection in this project."
原因分析
可能原因有两个:其一,topic-setup-flow.ts 中的 topicProviderGroups(connections, kind, savedModel) 对 connections 中每个连接都调用 topicModelsFor 并传入 savedModel,没有像 ConfigureTopicsDialogController.tsx 那样用 connection.id === storedSlot?.llmApiKeyId 做归属判断,导致 savedModel 被注入到其他 provider 的模型组;当用户在其他 provider 下选中它时,resolveTopicModelSlot 返回 null 并触发上述报错。同时 TopicSetupFlowController.tsx 只传入 settings.stored.summary?.model 给 providerGroups,遗漏了 settings.stored.clustering?.model。其二,TopicSetupSession 的 key 根据 settings.connections.length > 0 在 "ready" 与 "none" 间切换;当连接数从 1 变为 2 时 key 仍为 "ready",组件不会重新挂载,新增连接到达后为空的 draft 模型槽位不会被回填。
环境排查
- 确认 Langfuse 版本:Issue 报告为 v4.70.0(Cloud / main),请核对当前实例版本。
- 确认是否为 Langfuse Cloud 还是自托管,自托管需记录实际部署版本。
- 检查项目中的 LLM 连接数量与类型(chat-only 连接、embedding 连接)。
- 检查是否存在已保存的 summary 或 clustering 自定义模型,以及其所属
llmApiKeyId。 - 确认新增连接是在另一个标签页完成,返回后
draft.embedding是否仍为null。
解决步骤
- 在
topic-setup-flow.ts中,将savedModel的作用域限定到匹配的连接,可优先尝试按connection.id === storedSlot?.llmApiKeyId判断后再传给topicModelsFor,避免注入到其他 provider 的模型组。 - 在
TopicSetupFlowController.tsx中补全传给providerGroups的已保存模型来源,可优先尝试同时传入settings.stored.summary?.model和settings.stored.clustering?.model。 - 检查
TopicSetupSession的key逻辑:当前仅根据connections.length > 0切换;可优先尝试让 key 随连接数量或连接集合变化,使新增连接后组件重新挂载。 - 在重新挂载或焦点返回时,为仍为
null的 draft 模型槽位填充推荐模型(例如新增 embedding 连接后回填draft.embedding)。 - 若需要直接获得修复,可关注或试用 Issue 中提到的 PR #19359,其包含上述两处修复及单元测试;合并状态需另行确认。
验证方法
配置两个 LLM 连接并只在其中一个上保存自定义模型,打开 JudgeModelPicker,确认 savedModel 只出现在其所属 provider 的模型组下;在另一个 provider 下不再可选该模型,提交时也不应出现 “Choose a model from a connection in this project.”。另一项验证:以 1 个 chat-only 连接开始 Topics 设置,在另一标签页新增 embedding 连接后返回,确认组件重新挂载且 draft.embedding 被填充为推荐 embedding 模型,而非保持 null。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。
![[BUG]: Proxy Connection Issues: AnythingLLM Fails with HTTP/SOCKS5 Proxies Due to Missing Explicit Proxy Agent Handling](https://www.chat-gpts.plus/wp-content/uploads/2026/11/3841-eb8186b8-768x403.jpg)

![[v2] Expose request cancellation on MCPServer tool Context](https://www.chat-gpts.plus/wp-content/uploads/2026/11/3389-9eebc666-768x403.jpg)