[Question]: [ERROR]Generate embedding error:SILICONFLOWEmbed.encode got invalid response from https://api.siliconflow.cn/v1/embeddings

该报错发生在 RAGFlow 调用 Siliconflow Embedding API 时返回了无效响应,常见原因是 API 服务不可用、模型名称注册错误、API Key 或配额异常,或 API 返回格式与 RAGFlow 预期不匹配。优先排查 Siliconflow API 的状态以及模型配置是否

快速结论:该报错发生在 RAGFlow 调用 Siliconflow Embedding API 时返回了无效响应,常见原因是 API 服务不可用、模型名称注册错误、API Key 或配额异常,或 API 返回格式与 RAGFlow 预期不匹配。优先排查 Siliconflow API 的状态以及模型配置是否正确(如 BAAI/bge-large-en-v1.5@SILICONFLOW)。

适用环境:RAGFlow(Issue 中提及 v0.19 存在已知兼容问题,但未限定具体版本;无明确的操作系统、Python、CUDA、显卡信息,请勿补充)。

最快修复方案:暂无确认的一步修复方案,但以下步骤可优先尝试:确认模型注册名是否为 BAAI/bge-large-en-v1.5@SILICONFLOW,并检查 API Key 和端点有效性;若使用 RAGFlow v0.19,可临时切换为默认模型 BAAI/bge-large-zh-v1.5@BAAI

注意事项:切换为中文默认模型可能不满足英文 embedding 需求,需根据业务选择;目前无法确定是否是 Siliconflow 服务端偶发故障,建议在 RAGFlow 外部单独测试 API。

问题场景

用户在 RAGFlow 中配置 Siliconflow 的 embedding 模型 BAAI/bge-large-en-v1.5,进行文件解析(生成 embedding)时触发错误,即使多次重试依然失败。

报错原文

[Question]: [ERROR]Generate embedding error:SILICONFLOWEmbed.encode got invalid response from https://api.siliconflow.cn/v1/embeddings

原因分析

RAGFlow 的 SILICONFLOWEmbed.encode 方法期望 API 返回包含 "data" 字段且 embeddings 列表长度与输入批次一致的 JSON 响应。当 API 返回格式异常、缺失该字段,或返回了非 JSON 内容(如错误页面、超时等)时,会触发此错误。可能原因包括:

  • Siliconflow API 服务暂时不可用或响应超时。
  • 注册的模型名称不正确(应为 BAAI/bge-large-en-v1.5@SILICONFLOW)。
  • API Key 无效或超出调用配额。
  • API 端点 URL 可访问但返回了意料之外的错误信息(如模型不存在、参数错误等)。
  • RAGFlow v0.19 对自定义 embedding 模型的支持存在已知问题(确认中)。
  • 知识库配置中使用的 embedding 模型与当前设置不匹配。

环境排查

  • RAGFlow 版本:确认是否为 v0.19 或其他版本(v0.19 存在已知兼容问题,但非绝对)。
  • 模型注册名称:在配置文件中检查 embedding 模型是否已正确注册为 BAAI/bge-large-en-v1.5@SILICONFLOW(参考 conf/llm_factories.json)。
  • API Key 与端点:确认所使用的 API Key 未过期、配额充足,且端点 https://api.siliconflow.cn/v1/embeddings 可正常访问。
  • 知识库配置:进入对应知识库的设置页面,确认 embedding 模型是否已显式指定为 BAAI/bge-large-en-v1.5@SILICONFLOW,而非留空使用默认值。

解决步骤

  1. 检查模型注册:在 RAGFlow 设置中,确认 BAAI/bge-large-en-v1.5 已正确绑定到 Siliconflow 厂商,且注册名包含 @SILICONFLOW 后缀。
  2. 验证 API 连通性:使用 curl 或 Python 脚本直接调用 Siliconflow Embedding API,检查返回结构是否为有效的 JSON 且包含 data 字段。例如:
    curl https://api.siliconflow.cn/v1/embeddings \
      -H "Authorization: Bearer 你的API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"model":"BAAI/bge-large-en-v1.5","input":"test"}'
  3. 切换默认模型(临时方案):如果使用 RAGFlow v0.19 且上述步骤无误,建议暂时将 embedding 模型改为默认的 BAAI/bge-large-zh-v1.5@BAAI,观察问题是否消失。
  4. 检查知识库配置:进入报错知识库的设置,确保“Embedding 模型”字段已正确选择到目标模型,而不是全局默认模型。
  5. 升级 RAGFlow:如果以上均无效且版本为 v0.19,可考虑升级到最新版本,以获得更完善的自定义模型支持。

验证方法

重新对目标知识库发起文件解析或测试 embedding 生成操作,观察是否不再出现 SILICONFLOWEmbed.encode got invalid response 错误。也可以查看 RAGFlow 的日志(如 rag/llm/embedding_model.py

参考来源

infiniflow/ragflow #8183

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 15145

发表回复

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