在“选择本书世界来源”的界面中有三个选项,第一个是“根据本书生成”,选择后有一个“生成本书世界”的按钮。这个按钮按了会报错:未配置 DeepSeek 的 API Key。问题是,我只配置了局域网的ollama模型来源,这在此AI助手的其他各个地方都可以生效,只有这里不生效,它似乎会强制检查deepseek。
然后是Codex看了源代码后提出的意见,请作者参考:
原因
按钮只提交了 saveToLibrary,没有携带当前 Ollama 模型配置:NovelWorldSourcePanel.tsx (line 166)
对应 hook 原样转发请求,没有像“刷新世界切片”那样补充 llm.provider/model/temperature:useNovelWorldSlice.ts (line 105)
服务端收到空 provider 后,明确回退到 deepseek:NovelWorldInstanceService.ts (line 449)
因此最终触发 DeepSeek API Key 检查。Ollama 配置本身没有问题,自定义本地 provider 本来也不要求 API Key:providers.ts (line 215)
建议修复
在 useNovelWorldSlice.ts 生成请求中补充当前选择:
mutationFn: (payload: NovelWorldGenerateInput) =>
generateNovelWorldFromTheme(novelId, {
...payload,
provider: llm.provider,
model: llm.model,
temperature: llm.temperature,
}),
共享 Schema 和后端路由已经支持这三个字段,不需要修改接口或数据库。
最好再移除服务端该功能专属的 "deepseek" 硬编码,避免其他调用方漏传时再次出现同类问题。总体是一个很小的局部修复。
在“选择本书世界来源”的界面中有三个选项,第一个是“根据本书生成”,选择后有一个“生成本书世界”的按钮。这个按钮按了会报错:未配置 DeepSeek 的 API Key。问题是,我只配置了局域网的ollama模型来源,这在此AI助手的其他各个地方都可以生效,只有这里不生效,它似乎会强制检查deepseek。
然后是Codex看了源代码后提出的意见,请作者参考:
原因
按钮只提交了 saveToLibrary,没有携带当前 Ollama 模型配置:NovelWorldSourcePanel.tsx (line 166)
对应 hook 原样转发请求,没有像“刷新世界切片”那样补充 llm.provider/model/temperature:useNovelWorldSlice.ts (line 105)
服务端收到空 provider 后,明确回退到 deepseek:NovelWorldInstanceService.ts (line 449)
因此最终触发 DeepSeek API Key 检查。Ollama 配置本身没有问题,自定义本地 provider 本来也不要求 API Key:providers.ts (line 215)
建议修复
在 useNovelWorldSlice.ts 生成请求中补充当前选择:
mutationFn: (payload: NovelWorldGenerateInput) =>
generateNovelWorldFromTheme(novelId, {
...payload,
provider: llm.provider,
model: llm.model,
temperature: llm.temperature,
}),
共享 Schema 和后端路由已经支持这三个字段,不需要修改接口或数据库。
最好再移除服务端该功能专属的 "deepseek" 硬编码,避免其他调用方漏传时再次出现同类问题。总体是一个很小的局部修复。