FastGPT 表格文档切片问题,带有分隔符CUSTOM_SPLIT_SIGN的文档会重复切片,

olhwl3o2  于 7个月前  发布在  其他
关注(0)|答案(1)|浏览(111)

例行检查

  • 我已确认目前没有类似 issue
  • 我已完整查看过项目 README,以及 项目文档
  • 我使用了自己的 key,并确认我的 key 是可正常使用的
  • 我理解并愿意跟进此 issue,协助测试和提供反馈
  • 我理解并认可上述内容,并理解项目维护者精力有限,不遵循规则的 issue 可能会被无视或直接关闭

你的版本

  • 公有云版本
  • 私有部署版本, 具体版本号:

问题描述, 日志截图
这是一个关于算法逻辑错误的问题。packages\global\common\stringtextSplitter.ts中splitText2Chunks会根据CUSTOM_SPLIT_SIGN对md文档进行分割,但在遍历过程中对全量props反复切片,尽管在最后会进行去重,但这似乎是一个潜在的bug。

export const splitText2Chunks = (props: SplitProps): SplitResponse => {
  let { text = '' } = props;
  const start = Date.now();
  const splitWithCustomSign = text.split(CUSTOM_SPLIT_SIGN);

  const splitResult = splitWithCustomSign.map((item) => {
   **在遍历中传递的是整个请求参数props,而不是item**                     问题在这里
    if (strIsMdTable(item)) {
      return markdownTableSplit(props);
    }

    return commonSplit(props);
  });

  return {
    chunks: splitResult.map((item) => item.chunks).flat(),
    chars: splitResult.reduce((sum, item) => sum + item.chars, 0)
  };
};

复现步骤
模拟含有多个CUSTOM_SPLIT_SIGN分隔符的表格,比如多个sheet的excel,每个sheet用CUSTOM_SPLIT_SIGN拼接,观察切片结果,日志中会有大量的重复切片被删除。

**预期结果**
  const splitResult = splitWithCustomSign.map((item) => {
   **在遍历中传递的是整个请求参数props,而不是item**                     问题在这里
    if (strIsMdTable(item)) {
      return markdownTableSplit({text:item,chunkLen:chunkLen,overlapRatio:overlapRatio,customReg:customReg});
    }

    return commonSplit({text:item,chunkLen:chunkLen,overlapRatio:overlapRatio,customReg:customReg});
  });

相关截图

相关问题