Skip to main content

Documentation Index

Fetch the complete documentation index at: https://langchain-zh.cn/llms.txt

Use this file to discover all available pages before exploring further.

Dell PowerScale 是一款企业级横向扩展存储系统,搭载行业领先的 OneFS 文件系统,可部署在本地或云端。 该文档加载器利用了 PowerScale 的独特功能,能够确定自应用程序上次运行以来哪些文件已被修改,并仅返回已修改的文件进行处理。这将避免重新处理(分块和嵌入)未更改的文件,从而改善整体数据摄取工作流程。 此加载器要求启用 PowerScale 的 MetadataIQ 功能。更多信息可在我们的 GitHub 仓库中找到:https://github.com/dell/powerscale-rag-connector

概述

集成详情

加载器特性

文档惰性加载原生异步支持
PowerScaleDocumentLoader
PowerScaleUnstructuredLoader

设置

此文档加载器需要使用启用了 MetadataIQ 的 Dell PowerScale 系统。更多信息可在我们的 GitHub 页面找到:https://github.com/dell/powerscale-rag-connector

安装

文档加载器位于外部 pip 包中,可以使用标准工具安装:
pip install -qU  powerscale-rag-connector

初始化

现在我们可以实例化文档加载器:

通用文档加载器

我们的通用文档加载器可用于以以下方式增量加载 PowerScale 中的所有文件:
from powerscale_rag_connector import PowerScaleDocumentLoader

loader = PowerScaleDocumentLoader(
    es_host_url="http://elasticsearch:9200",
    es_index_name="metadataiq",
    es_api_key="your-api-key",
    folder_path="/ifs/data",
)

UnstructuredLoader 加载器

或者,可以使用 PowerScaleUnstructuredLoader 来定位已更改的文件,并自动处理这些文件以生成源文件的元素。这是通过使用 LangChain 的 UnstructuredLoader 类完成的。
from powerscale_rag_connector import PowerScaleUnstructuredLoader

# 或者使用 Unstructured Loader 加载文件
loader = PowerScaleUnstructuredLoader(
    es_host_url="http://elasticsearch:9200",
    es_index_name="metadataiq",
    es_api_key="your-api-key",
    folder_path="/ifs/data",
    # 'elements' 模式将文档分割成更细粒度的块
    # 如果您希望整个文档作为单个块,请使用 'single' 模式
    mode="elements",
)
字段说明:
  • es_host_url 是 MetadataIQ Elasticsearch 数据库的端点
  • es_index_index 是 PowerScale 写入其文件系统元数据的索引名称
  • es_api_key 是您的 Elasticsearch API 密钥的编码版本
  • folder_path 是要查询更改的 PowerScale 上的路径

加载

在内部,所有与 PowerScale 和 MetadataIQ 交互的代码都是异步的,加载和惰性加载方法将返回一个 Python 生成器。我们建议使用惰性加载函数。
for doc in loader.load():
    print(doc)
[Document(page_content='' metadata={'source': '/ifs/pdfs/1994-Graph.Theoretic.Obstacles.to.Perfect.Hashing.TR0257.pdf', 'snapshot': 20834, 'change_types': ['ENTRY_ADDED']}),
Document(page_content='' metadata={'source': '/ifs/pdfs/New.sendfile-FreeBSD.20.Feb.2015.pdf', 'snapshot': 20920, 'change_types': ['ENTRY_MODIFIED']}),
Document(page_content='' metadata={'source': '/ifs/pdfs/FAST-Fast.Architecture.Sensitive.Tree.Search.on.Modern.CPUs.and.GPUs-Slides.pdf', 'snapshot': 20924, 'change_types': ['ENTRY_ADDED']})]

返回的对象

两个文档加载器都会跟踪之前返回给应用程序的文件。当再次调用时,文档加载器将仅返回自上次运行以来新增或修改的文件。
  • 返回的 Document 中的 metadata 字段将包含 PowerScale 上包含已修改文件的路径。您将使用此路径通过 NFS(或 S3)读取数据,并在应用程序中处理数据(例如:创建分块和嵌入)。
  • source 字段是 PowerScale 上的路径,不一定是本地系统上的路径(取决于您的挂载策略);OneFS 将整个存储系统表示为以 /ifs 为根的单一树。
  • change_types 属性将告知您自上次以来发生了何种更改——例如:新增、修改或删除。
您的 RAG 应用程序可以使用 change_types 中的信息来添加、更新或删除您的分块和向量存储中的条目。 当使用 PowerScaleUnstructuredLoader 时,page_content 字段将由 Unstructured Loader 的数据填充。

惰性加载

在内部,所有与 PowerScale 和 MetadataIQ 交互的代码都是异步的,加载和惰性加载方法将返回一个 Python 生成器。我们建议使用惰性加载函数。
for doc in loader.lazy_load():
    print(doc)  # 对文档进行特定操作
返回的 Document 与加载函数相同,具有上述所有相同的属性。

更多示例

更多示例和代码可在我们的公共 GitHub 网页上找到:https://github.com/dell/powerscale-rag-connector/tree/main/examples,其中提供了完整的工作示例。

API 参考

有关 PowerScale 文档加载器所有功能和配置的详细文档,请访问 GitHub 页面:https://github.com/dell/powerscale-rag-connector/