文档API 参考📓 教程🧑‍🍳 食谱🤝 集成💜 Discord🎨 Studio
API 参考

Document Writers

将文档写入 DocumentStore。

模块 document_writer

DocumentWriter

将文档写入 DocumentStore。

使用示例

from haystack import Document
from haystack.components.writers import DocumentWriter
from haystack.document_stores.in_memory import InMemoryDocumentStore
docs = [
    Document(content="Python is a popular programming language"),
]
doc_store = InMemoryDocumentStore()
writer = DocumentWriter(document_store=doc_store)
writer.run(docs)

DocumentWriter.__init__

def __init__(document_store: DocumentStore,
             policy: DuplicatePolicy = DuplicatePolicy.NONE)

创建一个 DocumentWriter 组件。

参数:

  • document_store:要存储文档的 document store 实例。
  • policy:当 DocumentStore 中已存在具有相同 ID 的 Document 时要应用的策略。
  • DuplicatePolicy.NONE:默认策略,依赖于 DocumentStore 的设置。
  • DuplicatePolicy.SKIP:跳过具有相同 ID 的文档,不将其写入 DocumentStore。
  • DuplicatePolicy.OVERWRITE:覆盖具有相同 ID 的文档。
  • DuplicatePolicy.FAIL:如果 DocumentStore 中已存在具有相同 ID 的 Document,则引发错误。

DocumentWriter.to_dict

def to_dict() -> dict[str, Any]

将组件序列化为字典。

返回值:

包含序列化数据的字典。

DocumentWriter.from_dict

@classmethod
def from_dict(cls, data: dict[str, Any]) -> "DocumentWriter"

从字典反序列化组件。

参数:

  • data: 要反序列化的字典。

引发:

  • DeserializationError:如果序列化数据中的 document store 未正确指定或其类型无法导入。

返回值:

反序列化后的组件。

DocumentWriter.run

@component.output_types(documents_written=int)
def run(documents: list[Document], policy: Optional[DuplicatePolicy] = None)

在给定输入数据上运行 DocumentWriter。

参数:

  • documents:要写入 document store 的文档列表。
  • policy:遇到重复文档时要使用的策略。

引发:

  • ValueError:如果指定的 document store 未找到。

返回值:

写入 document store 的文档数量。

DocumentWriter.run_async

@component.output_types(documents_written=int)
async def run_async(documents: list[Document],
                    policy: Optional[DuplicatePolicy] = None)

在给定输入数据上异步运行 DocumentWriter。

这是run 方法。它具有相同的参数和返回值,但可以在异步代码中与await 一起使用。

参数:

  • documents:要写入 document store 的文档列表。
  • policy:遇到重复文档时要使用的策略。

引发:

  • ValueError:如果指定的 document store 未找到。
  • TypeError:如果指定的 document store 未实现write_documents_async.

返回值:

写入 document store 的文档数量。