ValueError: Could not find either of model.onnx, model_optimized.onnx in /var/folders/zn/0_np64n96r50prt1m5mlm7fr0000gn/T/fastembed_cache/fast-bge-small-en

该报错通常出现在 AutoGen 的 Qdrant RetrieveChat 笔记本示例中,原因是 FastEmbed 依赖下载 ONNX 模型时中断或缓存不完整。优先尝试将 fastembed 升级到最新版,并确认 pyautogen 版本已更新到官方修复版本。

快速结论:该报错通常出现在 AutoGen 的 Qdrant RetrieveChat 笔记本示例中,原因是 FastEmbed 依赖下载 ONNX 模型时中断或缓存不完整。优先尝试将 fastembed 升级到最新版,并确认 pyautogen 版本已更新到官方修复版本。

适用环境:AutoGen 笔记本示例 notebook/agentchat_qdrant_RetrieveChat.ipynb,Python 3.12.2,macOS 本机执行(非 Docker),模型为 gpt-3.5-turbo,依赖 pyautogen[retrievechat]qdrant_client[fastembed]

最快修复方案:升级 pyautogen 到 v0.2.19 或更高版本(Issue 确认该版本可正常工作)。若单独遇到模型文件缺失报错,可优先尝试更新 fastembed 到 0.2.2 或最新版。

注意事项:“升级 fastembed”由维护者提出作为模型下载中断的解决办法,但 Issue 作者反馈其环境中已提示“Requirement already satisfied”,因此该方案可能受限于本地包缓存状态,并非一定有效。

问题场景

用户在全新虚拟环境中运行 AutoGen 官方仓库提供的 notebook/agentchat_qdrant_RetrieveChat.ipynb 笔记本示例,已按说明安装依赖并指定 gpt-3.5-turbo 模型。执行过程中出现两类错误:先是 No module named 'fastembed';单独安装 fastembed 后,运行时模型下载缓存缺失导致失败;同时,示例代码中的 message_generator 参数也触发属性错误。

报错原文

locate_model_file
    raise ValueError(f"Could not find either of {', '.join(file_names)} in {model_dir}")
ValueError: Could not find either of model.onnx, model_optimized.onnx in /var/folders/zn/0_np64n96r50prt1m5mlm7fr0000gn/T/fastembed_cache/fast-bge-small-en

原因分析

根据维护者回复,该报错可能原因是 FastEmbed 下载 ONNX 模型文件时中断,导致缓存目录 /var/folders/.../fastembed_cache/fast-bge-small-en 中缺少 model.onnxmodel_optimized.onnx 文件。新版 fastembed 已改进下载中断的处理逻辑。此外,笔记本中的 message_generator 调用方式与已发布的 pyautogen 版本不兼容,属于示例代码领先于正式发布版本导致的 API 变更问题。

环境排查

  • 确认 Python 版本(Issue 中为 3.12.2)。
  • 确认 pyautogen 版本是否为 v0.2.19 或更高(该版本已修复示例兼容性)。
  • 确认 fastembed 版本是否为 0.2.2 或最新版。
  • 确认本机 fastembed_cache 目录下模型文件是否完整。
  • 确认是否通过 Docker 运行——该 Issue 确认在本机环境复现,Docker 环境未验证。

解决步骤

  1. 升级 pyautogen 到 v0.2.19 或更高版本,然后重新运行笔记本中的原始代码。
  2. 若仍遇到模型文件缺失报错,可优先尝试更新 fastembed 到 0.2.2 或最新版:pip install fastembed==0.2.2
  3. 如升级 fastembed 后提示“Requirement already satisfied”,可考虑删除本地 fastembed_cache 目录后重新运行,强制触发模型重新下载(该操作属于推断建议,Issue 中未明确验证)。
  4. 若使用旧版 pyautogen,可将 ragproxyagent.initiate_chat(assistant, message=ragproxyagent.message_generator, problem=qa_problem) 临时改为 ragproxyagent.initiate_chat(assistant, problem=qa_problem) 以绕过 API 不兼容错误(Issue 作者验证此写法可行,但属临时方案)。

验证方法

重新运行完整笔记本,确认不再抛出 ValueErrorAttributeError,且能正常创建 Qdrant 集合、检索分块并完成问答流程,输出结果与笔记本预期一致。

参考来源

microsoft/autogen #1889

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 19090

发表回复

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