haystack Add EmptyDocumentRemover component

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

你的功能请求是否与问题相关?请描述。

如果文档内容为空,[文档拆分器会引发错误](haystack/haystack/components/preprocessors/document_splitter.py
Line 89 in 91f5701
| | raiseValueError( |
.
这会导致索引失败,如果存在空文档。

描述你希望的解决方案

提供一个组件EmptyDocumentCleaner,它接收文档列表并仅返回非空文档。

描述你考虑过的替代方案

我们可以将DocumentSplitter更改为仅在文档为空时记录日志,而不是抛出异常。我认为这与Haystack 2的逻辑相悖,即最好有独立的小组件,以便用户可以根据需要调整行为。
一条日志行可能会对用户产生困扰,因为它违背了快速失败的原则,最终可能导致更难调试的问题。因此,在我看来,用户应该始终有选择权(哪种行为对他们的使用场景最合适)。

附加上下文

在这里添加有关功能请求的其他上下文或屏幕截图。

wvyml7n5

wvyml7n51#

现在开始工作。

t3irkdon

t3irkdon2#

我相信组件已经完成,但我想提出一个改进建议。我们可以通过创建一个在初始化时接受 predicate 的 DocumentFilter 组件来增加一个更高层次的抽象。当这个组件用文档列表调用时,它会返回两个列表:一个包含通过 predicate 的文档,另一个包含未通过 predicate 的文档。在这里创建的 EmptyDocumentRemover 将是这个更通用的 DocumentFilter 的一个特定情况。请告诉我你的想法。

相关问题