[Bug]: use_sql Markdown separator adds extra column when Source is enabled

用户在 RAGFlow 中启用了 Source 列(即文档 ID 和文档名称列),并通过 use_sql 功能生成 Markdown 格式的表格时,发现分隔符行(separator line)多出一个空列,导致 GFM(GitHub Flavored Markdown)表格渲染异常。

[Bug]: use_sql Markdown separator adds extra column when Source is enabled

[Bug]: use_sql Markdown separator adds extra column when Source is enabled

快速结论:该问题发生在 RAGFlow 使用 use_sql 构建 Markdown 表格并开启 Source 列时。优先排查 api/db/services/dialog_service.py 文件中第 1307 行的分隔符构建逻辑,确认是否存在 docid_idx 被重复检查的复制粘贴错误。

问题场景

用户在 RAGFlow 中启用了 Source 列(即文档 ID 和文档名称列),并通过 use_sql 功能生成 Markdown 格式的表格时,发现分隔符行(separator line)多出一个空列,导致 GFM(GitHub Flavored Markdown)表格渲染异常。

报错原文

Markdown table separator has extra column when Source is enabled
The separator line uses docid_idx and docid_idx instead of docid_idx and doc_name_idx, producing malformed GFM tables.

原因分析

这是一个已确认的复制粘贴错误。在 api/db/services/dialog_service.py 第 1307 行,分隔符构建代码中的条件判断重复检查了 docid_idx 两次(即 docid_idx and docid_idx),而不是正确检查 docid_idx and doc_name_idx。此外,该行代码在条件成立时仅添加一个 |------| 段,而添加 Source 列(文档 ID 和文档名称)时应该添加两个 |------| 段,与表头的构建逻辑保持一致。

环境排查

  • 检查 RAGFlow 版本:确认是否使用了受影响的分支(例如 1fc02606ea9df6645169f495db207172d0d2cab8 或相近版本)。
  • 确认 api/db/services/dialog_service.py 文件是否存在,以及第 1305-1323 行的代码逻辑。
  • 确认是否在 use_sql 功能中启用了 Source 列。

解决步骤

  1. 定位到 api/db/services/dialog_service.py 文件的第 1307 行。
  2. 找到分隔符构建代码:
    line = "|" + "|".join(["------" for _ in range(len(column_idx))]) + ("|------|" if docid_idx and docid_idx else "")
  3. 修复为正确的逻辑:
    line = "|" + "|".join(["------" for _ in range(len(column_idx))]) + ("|------|------|" if docid_idx and doc_name_idx else "")

    主要修改包括:

    • 将条件判断中的重复 docid_idx 改为 docid_idx and doc_name_idx
    • 将条件满足时添加的单个 |------| 改为两个 |------|------|,以匹配 Source 列的两列。
  4. 保存文件并重启 RAGFlow 服务。

验证方法

重新执行 use_sql 查询并启用 Source 列,检查生成的 Markdown 表格分隔符行是否与表头列数一致,且 GFM 表格渲染无额外空列。

参考来源

infiniflow/ragflow #16312

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

celebrityanime
celebrityanime
文章: 10060

发表回复

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