[BUG]: ollama fetch failed

用户在 AnythingLLM 桌面版中配置使用了 Ollama 模型(如 qwen2.5vl:7b),但在对话或推理时遇到报错。用户反馈直接通过 curl 调用 Ollama(无额外上下文)可以正常工作,但在 AnythingLLM 中失败。

[BUG]: ollama fetch failed

[BUG]: ollama fetch failed

快速结论:该报错通常出现在 AnythingLLM 桌面版调用 Ollama 模型时,可能原因是 Ollama 模型设置的上下文窗口(context window)过小,导致输出 token 溢出(context overflow),Ollama 后端崩溃。优先排查模型配置中的上下文大小。

问题场景

用户在 AnythingLLM 桌面版中配置使用了 Ollama 模型(如 qwen2.5vl:7b),但在对话或推理时遇到报错。用户反馈直接通过 curl 调用 Ollama(无额外上下文)可以正常工作,但在 AnythingLLM 中失败。

报错原文

[anythingllm-ollama-fetch-failed-report.md]   # 附件日志中核心行
{"level":"info","message":"[Ollama] model qwen2.5vl:7b is using a max context window of 4096/4096 tokens.","service":"backend"}
# 后续 Ollama 无错误码崩溃,AnythingLLM 表现为 ollama fetch failed

原因分析

根据日志,模型 qwen2.5vl:7b 的上下文窗口被设置为 4096/4096 tokens(输入+输出共用)。Ollama 在 AnythingLLM 中发送请求时,输入 context(系统提示词、对话历史等)可能已占用大部分窗口,导致没有“空间”生成输出 token,从而引发 Ollama runner 崩溃且不返回错误代码。用户通过 curl 测试有效是因为缺少上下文输入,窗口压力小。这可能是在 AnythingLLM UI 中手动设置了低上下文值,或者在模型的 Modelfile 中直接指定了 4096。

环境排查

  • 确认 AnythingLLM 版本(桌面版)。
  • 确认 Ollama 版本及模型(qwen2.5vl:7b 或其他模型)。
  • 检查 AnytingLLM 中该模型的“LLM Provider”设置,重点查看“Context Window Size”或类似选项。
  • 检查模型本身的 Modelfile(ollama show qwen2.5vl:7b),确认是否有 num_ctx 参数。

解决步骤

  1. 增大上下文窗口(可优先尝试):在 AnythingLLM UI 中,找到对应 Ollama 模型的设置,将上下文窗口从 4096 调高(例如 8192 或更高,需根据硬件能力)。
  2. 更换小模型:如果硬件资源有限导致无法提高上下文,考虑更换更小参数量的模型(例如 qwen2.5:3b 或类似),其默认上下文可能更兼容。
  3. 检查 Modelfile:通过命令行执行 ollama show qwen2.5vl:7b --modelfile,查看是否存在 PARAMETER num_ctx 4096,若有则修改或移除该行,之后 ollama create 重新创建模型。
  4. 重置设置:在 AnythingLLM 中删除并重新添加该 Ollama 模型,确保不手动设置过小的上下文。

验证方法

调整上下文后,在 AnythingLLM 中发送一条包含一定长度上下文的测试消息(例如要求模型生成较长回复),确保不再出现 ollama fetch failed 错误。同时检查日志是否显示更大的上下文窗口(如 8192/8192)。

参考来源

Mintplex-Labs/anything-llm #5888

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

celebrityanime
celebrityanime
文章: 9639

发表回复

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