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

非结构化

Haystack 的 Unstructured 集成

模块 haystack_integrations.components.converters.unstructured.converter

UnstructuredFileConverter

一个使用 Unstructured API(托管或本地运行)将文件转换为 Haystack Documents 的组件。

支持的文件类型和特定 API 参数,请参阅 Unstructured 文档

使用示例

from haystack_integrations.components.converters.unstructured import UnstructuredFileConverter

# make sure to either set the environment variable UNSTRUCTURED_API_KEY
# or run the Unstructured API locally:
# docker run -p 8000:8000 -d --rm --name unstructured-api quay.io/unstructured-io/unstructured-api:latest
# --port 8000 --host 0.0.0.0

converter = UnstructuredFileConverter(
    # api_url="https://:8000/general/v0/general"  # <-- Uncomment this if running Unstructured locally
)
documents = converter.run(paths = ["a/file/path.pdf", "a/directory/path"])["documents"]

UnstructuredFileConverter.__init__

def __init__(api_url: str = UNSTRUCTURED_HOSTED_API_URL,
             api_key: Optional[Secret] = Secret.from_env_var(
                 "UNSTRUCTURED_API_KEY", strict=False),
             document_creation_mode: Literal[
                 "one-doc-per-file", "one-doc-per-page",
                 "one-doc-per-element"] = "one-doc-per-file",
             separator: str = "\n\n",
             unstructured_kwargs: Optional[Dict[str, Any]] = None,
             progress_bar: bool = True)

参数:

  • api_url: Unstructured API 的 URL。默认为托管版本的 URL。如果您在本地运行 API,请指定本地 API 的 URL(例如:"https://:8000/general/v0/general").
  • api_key: Unstructured API 的 API 密钥。可以显式传递,或读取环境变量UNSTRUCTURED_API_KEY(推荐)。如果您在本地运行 API,则不需要。
  • document_creation_mode: 如何从 Unstructured 返回的元素创建 Haystack Documents。"one-doc-per-file": 每个文件一个 Haystack Document。所有元素都连接到一个文本字段中。"one-doc-per-page": 每页一个 Haystack Document。页面上的所有元素都连接到一个文本字段中。"one-doc-per-element": 每个元素一个 Haystack Document。每个元素都被转换为一个 Haystack Document。
  • separator: 在将元素连接到一个文本字段时使用的分隔符。
  • unstructured_kwargs: 传递给 Unstructured API 的附加参数。可用参数请参阅 Unstructured API 文档
  • progress_bar: 在转换过程中是否显示进度条。

UnstructuredFileConverter.to_dict

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

将组件序列化为字典。

返回值:

包含序列化数据的字典。

UnstructuredFileConverter.from_dict

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

从字典反序列化组件。

参数:

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

返回值:

反序列化后的组件。

UnstructuredFileConverter.run

@component.output_types(documents=List[Document])
def run(
    paths: Union[List[str], List[os.PathLike]],
    meta: Optional[Union[Dict[str, Any], List[Dict[str, Any]]]] = None
) -> Dict[str, List[Document]]

使用 Unstructured API 将文件转换为 Haystack Documents。

参数:

  • paths: 要转换的路径列表。路径可以是文件或目录。如果路径是目录,则转换目录中的所有文件。子目录将被忽略。
  • meta: 要附加到 Documents 的可选元数据。此值可以是字典列表或单个字典。如果它是单个字典,其内容将添加到所有生成 Documents 的元数据中。如果它是列表,则列表的长度必须与路径的数量匹配,因为这两个列表将被合并。请注意,如果路径包含目录,meta 只能是单个字典(所有文件使用相同的元数据)。

引发:

  • ValueError: 如果meta 是一个列表,而paths 包含目录。

返回值:

一个字典,其中包含以下键

  • documents: Haystack Documents 列表。