[BUG]: Embedder configuration not applied, still using default

该报错通常出现在 Docker 部署的 AnythingLLM 中修改了 Embedder 配置(例如切换为 Ollama 的 qwen3-embedding:0.6b)后,日志仍显示默认的 [NativeEmbedder] Initialized Xenova/all-MiniLM-L6-v2 。

快速结论:该报错通常出现在 Docker 部署的 AnythingLLM 中修改了 Embedder 配置(例如切换为 Ollama 的 qwen3-embedding:0.6b)后,日志仍显示默认的 [NativeEmbedder] Initialized Xenova/all-MiniLM-L6-v2。优先排查容器存储卷是否持久化,以及 Embedder 配置是否真正写入生效。

适用环境:AnythingLLM 运行在 Docker(远程机器),Embedder 由另一台服务器上的 Ollama 提供。Issue 中确认的相关版本:Ollama 0.32.1,镜像 mintplexlabs/anythingllm:latest,模型包括 qwen3-embedding:0.6b 和 qwen3.5:2b。

最快修复方案:暂无确认的一步修复方案。Issue 维护者在 Docker 中使用持久化存储卷时无法复现该问题,并指出非持久化启动会导致重启后配置被清空。可优先尝试检查是否正确挂载存储卷(如 /app/server/storage),并确认配置在重启后仍能保留。

注意事项:维护者的判断是在其他用户使用正确持久化存储卷启动命令时无法复现,因此“存储卷未持久化”是维护者的推测方向,并非该 Issue 中最终被验证修复的结论。日志中 [NativeEmbedder] Initialized Xenova/all-MiniLM-L6-v2 是否一定表示 Embedder 未切换,Issue 中未给出确认。

问题场景

用户在 Docker 中运行 AnythingLLM,希望把 Embedder 从默认的 Xenova/all-MiniLM-L6-v2 切换为另一台服务器上 Ollama 提供的 qwen3-embedding:0.6b。用户分别在工作区内部和工作区外部修改了配置(理解为全局配置),并重启了 Docker 容器,但后端日志仍显示正在初始化默认的 Xenova/all-MiniLM-L6-v2。用户确认 Ollama 服务连通性正常,同一台 Ollama 上还运行着 qwen3.5:2b

报错原文

[backend] info: [NativeEmbedder] Initialized Xenova/all-MiniLM-L6-v2
[backend] info: [Ollama] initialized with model: qwen3.5:2b
[backend] info: [AgentLLM - qwen3.5:2b] OllamaProvider.stream (tooled) - will process this chat completion.
[backend] info: [AgentLLM - qwen3.5:2b] qwen3.5:2b is using a max context window of 16384/262144 tokens.

原因分析

可能原因之一:Docker 容器启动命令没有绑定持久化存储卷,导致每次重启后配置被清空。维护者在回复中明确询问用户的 Docker 启动命令,并指出“on restarts you are blowing away your config by not binding a persistent storage volume”,同时说明在使用正确持久化存储卷的启动命令后无法复现该问题,配置在重启之间能够保留。

用户随后提供的配置显示已挂载 anythingllm-storage:/app/server/storage,并设置 STORAGE_DIR: /app/server/storage,且 anythingllm.env 中已包含 EMBEDDING_ENGINE='ollama'EMBEDDING_MODEL_PREF='qwen3-embedding:0.6b'EMBEDDING_BASE_PATH='http://11.1.33.827:11434' 等设置,但日志仍显示默认 Embedder。该 Thread 中未给出最终确认的根因。

环境排查

  • 确认 AnythingLLM 是否运行在 Docker(远程机器)中,以及使用的镜像标签(Issue 中为 mintplexlabs/anythingllm:latest)。
  • 检查 Docker 启动命令或 compose 配置中是否挂载了持久化存储卷,例如 /app/server/storage,以及 STORAGE_DIR 环境变量是否与挂载路径一致。
  • 检查 anythingllm.env 中是否写入 Embedder 相关配置,例如 EMBEDDING_ENGINEEMBEDDING_MODEL_PREFEMBEDDING_BASE_PATHEMBEDDING_MODEL_MAX_CHUNK_LENGTHOLLAMA_EMBEDDING_BATCH_SIZE
  • 确认另一台服务器上的 Ollama 版本(Issue 中为 0.32.1)以及 Embedding 模型是否可用(ollama list 中是否有 qwen3-embedding:0.6b)。
  • Issue 中未确认 Python、CUDA、PyTorch、显卡等版本,这些项目无需按本 Issue 结论排查。

解决步骤

  1. 在宿主机上查看 AnythingLLM 容器的实际启动命令或 compose 配置,确认是否存在持久化存储卷挂载,例如 -v anythingllm-storage:/app/server/storageSTORAGE_DIR=/app/server/storage
  2. 检查 anythingllm.env 中 Embedder 配置是否已修改为 Ollama 及目标模型,而不是保留默认值;Issue 中用户的配置已包含 EMBEDDING_ENGINE='ollama'EMBEDDING_MODEL_PREF='qwen3-embedding:0.6b'
  3. 重启容器后,再次查看后端日志,确认 Embedder 初始化信息是否仍为 Xenova/all-MiniLM-L6-v2,以及配置是否在容器重启后被保留。
  4. 如仍显示默认 Embedder,且配置与存储卷均正常,可在原 Issue 中补充完整的 Docker 启动命令和 anythingllm.env,以便进一步定位是否为该版本的行为或显示问题。

验证方法

重启 AnythingLLM 容器后,检查后端日志中的 Embedder 初始化行是否变为已配置的 Ollama 模型,而不是 [NativeEmbedder] Initialized Xenova/all-MiniLM-L6-v2。同时确认 anythingllm.env 或界面中的 Embedder 设置在多次重启之后仍然保留,没有因存储卷未持久化而被重置。

参考来源

Mintplex-Labs/anything-llm #6400

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 24237

发表回复

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