[Bug]: After Raptor run, created chunks have wrong docnm_kwd

用户在 RAGFlow v0.24.0(commit 61209ff)中上传了多份文件,在执行了 embedding 和 Raptor 处理后查看文件的 chunk 列表。在常规 chunk 之后,发现了由 Raptor 生成的 chunk,其 docnm_kwd 字段的值是同一数据集中另一份文件的

快速结论:该问题通常发生在 RAGFlow 中对文档执行 Raptor 处理后,生成的 Raptor 相关 chunk 的 docnm_kwd 字段错误地指向了同一数据集中的另一份文件。优先排查 rag/svr/task_executor.pyrun_raptor_for_kb 函数内的 generate() 嵌套函数是否仍然使用了 fake_doc_id 占位符。

问题场景

用户在 RAGFlow v0.24.0(commit 61209ff)中上传了多份文件,在执行了 embedding 和 Raptor 处理后查看文件的 chunk 列表。在常规 chunk 之后,发现了由 Raptor 生成的 chunk,其 docnm_kwd 字段的值是同一数据集中另一份文件的文件名,而非当前文件自身的文件名。所有与当前文件相关的 Raptor chunk 都具有相同的错误文件名。

报错原文

GET v1/chunk/get?chunk_id=13f4efc15cc1f231
{
    "code": 0,
    "data": {
        "content_with_weight": "The document outlines the tendering procedures for a procurement process...",
        "create_time": "2026-02-27 17:20:58",
        "create_timestamp_flt": 1772184058.484981,
        "doc_id": "5ebdc7dc138e11f1acb887a726a6b8c0",
        "docnm_kwd": "Interim Operational Directive on Procurement Instruction for Recipient(1).pdf",
        "id": "13f4efc15cc1f231",
        "kb_id": "133cb36007f211f1ae5b0aab8091b101",
        "raptor_kwd": "raptor"
    },
    "message": "success"
}

注意:上例中 docnm_kwd 的值为 “Interim Operational Directive on Procurement Instruction for Recipient(1).pdf”,但实际期望值为当前文件的文件名。所有 Raptor chunk 的 docnm_kwd 都指向了同一份错误文件。

原因分析

该问题曾被报告并修复(参见 Issue #8538 和 PR #11175)。根本原因是 run_raptor_for_kb 函数中的嵌套 generate() 函数使用了占位符 fake_doc_id 替代实际的文档 ID,导致 Raptor 生成的 chunk 关联到了错误的文档。在 v0.24.0(commit 61209ff)上仍然出现,可能是回归(regression)或一个相关但略有区别的问题。具体原因需要确认该修复在 rag/svr/task_executor.py(约第 789-808 行)中是否仍然生效。

环境排查

  • RAGFlow 版本:v0.24.0(commit 61209ff)
  • 检查 task_executor.pyrun_raptor_for_kb 函数(约第 789-808 行)的实现,确认是否还在使用 fake_doc_id
  • 确认该问题是否可稳定复现,以及是否仅出现在部分文件上。

解决步骤

  1. 可优先尝试:检查 rag/svr/task_executor.py 文件,定位 run_raptor_for_kb 函数中嵌套的 generate() 函数(大约在 789-808 行)。确保生成的 Raptor chunk 使用了正确的文档 ID(doc_id),而不是 fake_doc_id 占位符。
  2. 如果发现 fake_doc_id 仍被使用,参考 PR #11175 的修复逻辑,将其替换为实际文档的 ID。
  3. 重启 RAGFlow 服务,并在一个干净的数据集上重新执行 embedding 和 Raptor 处理。
  4. 如果问题依旧,考虑将此问题作为回归 bug 报告到 RAGFlow 仓库。

验证方法

在修复后,重新上传多个文件,执行 embedding 和 Raptor 处理,然后通过 API(如 GET v1/chunk/get?chunk_id=...)逐一检查各文件的 Raptor chunk。确认每个文件的 Raptor chunk 的 docnm_kwd 字段都正确地指向了当前文件自身的文件名,而不是其他文件。

参考来源

infiniflow/ragflow #13393

infiniflow/ragflow #8538(原问题)

infiniflow/ragflow PR #11175(原修复)

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 16344

发表回复

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