将文档写入 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 的文档数量。
