llama_index [Bug]: ValueError: 获取到的块重叠大小(20)比块大小(100)大,应该更小,

kokeuurv  于 4个月前  发布在  其他
关注(0)|答案(2)|浏览(43)

Bug 描述

从llama_index.core.node_parser导入SentenceSplitter
SentenceSplitter(chunk_size=100, chunk_overlap=20, separator='
')
Splitter = SentenceSplitter(chunk_size=chunk_size, chunk_overlap=chunk_overlap, separator=separator)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: 获得了比块大小(100)更大的块重叠(20),应该是更小的。

版本

0.10.43

重现步骤

与bug描述相同。

相关日志/回溯

  • 无响应*
j91ykkif

j91ykkif1#

你好!我在这里帮助你解决任何错误、问题或贡献。让我们一起解决这些错误吧!
ValueError 的发生是因为 llama_index.core.node_parser 中的 SentenceSplitter 类有一个验证检查,确保 chunk_overlap 不大于 chunk_size 。相关的代码片段是:

if chunk_overlap > chunk_size:
    raise ValueError(
        f"Got a larger chunk overlap ({chunk_overlap}) than chunk size "
        f"({chunk_size}), should be smaller."
    )

在你的情况中,你使用了 chunk_size=100chunk_overlap=20 ,这不应该触发这个错误。然而,chunk_overlap 的默认值是 DEFAULT_CHUNK_OVERLAP ,它被设置为 200。如果你没有明确将 chunk_overlap 设置为 20,它将使用默认值 200,这比 chunk_size 的值 100 要大,从而导致错误。
要解决这个问题,确保在初始化 SentenceSplitter 时明确将 chunk_overlap 设置为 20:

splitter = SentenceSplitter(chunk_size=100, chunk_overlap=20, separator='\n')

这样可以防止 ValueError 被引发 1(https://github.com/run-llama/llama_index/blob/main/llama-index-core/llama_index/core/node_parser/text/sentence.py)2(https://github.com/run-llama/llama_index/blob/main/llama-index-legacy/llama_index/legacy/node_parser/text/sentence.py)。

  • 要继续与 Dosu 交流,请提及 @dosu。*
tzxcd3kk

tzxcd3kk2#

无法重现

$x_1e^{0}f_1^x$

相关问题