[Bug]: An 500 error when add jina-embeddings-v4 with xinference

用户在 RAGFlow v0.21.1 slim(commit de24e74b4c90ec154965c1bc7dc7a0fe79e669a1 )的 Model Providers 页面 ,通过 Xinference 添加 jina-embeddings-v4 模型时,页面返回 500 错误。Xi

[Bug]: An 500 error when add jina-embeddings-v4 with xinference

[Bug]: An 500 error when add jina-embeddings-v4 with xinference

快速结论:在 RAGFlow 的 Model Providers 页面添加 jina-embeddings-v4(通过 Xinference 部署)时,因为后端未在请求中自动传入 task 参数导致 500 错误。优先升级到包含 PR #11628 修复的版本,或手动在 Embedding 实现中设置 task='retrieval'

问题场景

用户在 RAGFlow v0.21.1 slim(commit de24e74b4c90ec154965c1bc7dc7a0fe79e669a1)的 Model Providers 页面,通过 Xinference 添加 jina-embeddings-v4 模型时,页面返回 500 错误。Xinference 后端日志显示模型加载成功,但编码(encode)时缺少必要参数。

报错原文

Fail to access embedding model(jina-embeddings-v4).Error code: 500 - {'detail': "[address=0.0.0.0:43011, pid=42482] Task must be specified before encoding data. You can set it either during loading the model (e.g., model_kwargs={'default_task': 'retrieval'}) or pass it as an argument to the encode method (e.g., model.encode(texts, task='retrieval'))."}

原因分析

可能原因: jina-embeddings-v4 模型在 Xinference 中要求在执行 encode 时必须明确指定 task 参数(如 task='retrieval'),但 RAGFlow 后端在调用 Xinference 的 Embedding 模型时,未在请求负载(payload)中包含该参数。该问题与前端无关,属于后端 Embedding 实现层的缺失。

环境排查

  • RAGFlow 版本:v0.21.1 slim(commit: de24e74b4c90ec154965c1bc7dc7a0fe79e669a1)
  • Xinference 版本:未明确,建议确认 Xinference 版本是否支持 jina-embeddings-v4 的 task 参数要求
  • RAGFlow 镜像 tag:v0.21.1 slim
  • 检查是否使用了自定义 Embedding 类或代码覆盖逻辑,可能覆盖了修复后的默认行为

解决步骤

  1. 方法一(可优先尝试):升级 RAGFlow 版本
    Issue 中明确提到修复已在 PR #11628 中合并,请升级到包含该 PR 的 RAGFlow 版本(v0.21.1 之后的版本)。升级后,后端会自动在 jina-embeddings-v4 和 v3 模型的 encode 请求中加入 task 参数。
  2. 方法二:手动打补丁(如无法升级)
    找到 RAGFlow 中调用 Embedding encode 的源代码(通常在 deepdocapi 模块中),在调用 model.encode(texts) 前,确保传入 task='retrieval' 参数,例如:
    model.encode(texts, task='retrieval')
  3. 方法三:加载模型时设置默认 task
    在 Xinference 中重新加载 jina-embeddings-v4 模型时,可以通过 model_kwargs 传递默认 task,避免每次 encode 都需要显式声明:
    model_kwargs={'default_task': 'retrieval'}。但需注意,此方法需在 Xinference 侧配置,且 RAGFlow 的调用方式可能仍无法正确传递。

验证方法

在 RAGFlow 的 Model Providers 页面,重新添加 jina-embeddings-v4 模型(通过 Xinference)。如果成功添加且无 500 错误,即可认为问题已解决。随后可以尝试在 RAGFlow 中使用该嵌入模型处理文档或知识库,进一步验证 encode 功能正常。

参考来源

infiniflow/ragflow #12145

相关修复 PR:infiniflow/ragflow #11628

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

celebrityanime
celebrityanime
文章: 11055

发表回复

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