描述:
Haystack组件开发者有时会忘记遵循run
方法在各个组件中的预期返回类型。具体来说,run
方法旨在返回一个带有方法上注解的值的字典。
问题详情:
- 预期行为 :跨不同组件,
run
方法应返回一个字典,其中键是注解输出类型,值是相应的结果。 - 当前行为 :用户有时只返回值而不将它们封装在字典中,如输出注解所指定的那样。
- 影响 :这种不一致可能导致管道运行时错误;用户在管道运行时发现他们犯了错误。我们应该更早地警告他们——在代码编写时。
示例:
run
方法的正确实现如下所示:
@component.output_types(documents=List[Document])
def run(self, ...):
...
return {"documents": docs}
然而,用户经常错误地将其实现为:
@component.output_types(documents=List[Document])
def run(self, ...):
...
return docs
2条答案
按热度按时间1u4esq0p1#
你好,我想把这个问题作为我在Haystack的第一个操作系统贡献,如果被允许的话!
谢谢!
wlzqhblo2#
我查看了所有的文件,它们都是返回字典,但是键有从
answers
到replies
到values
到document_written
的众多键名。你是否希望在所有返回字典中将
documents
作为键?