Skip to main content
Open In Colab在 GitHub 上打开

Dell PowerScale 文档加载器

Dell PowerScale 是一种企业级横向扩展存储系统,可托管行业领先的 OneFS 文件系统,该文件系统可在本地托管或部署在云中。

此文档加载程序利用 PowerScale 的独特功能,可以确定自上次运行应用程序以来修改了哪些文件,并且仅返回修改后的文件进行处理。这将消除重新处理(块和嵌入)未更改的文件的需要,从而改进整体数据摄取工作流程。

此加载程序需要启用 PowerScale 的 MetadataIQ 功能。其他信息可以在我们的 GitHub 存储库中找到:https://github.com/dell/powerscale-rag-connector

概述

集成详细信息

本地化序列 化JS 支持
PowerScaleDocumentLoaderpowerscale-rag-connector
PowerScaleUnstructuredLoaderpowerscale-rag-connector

Loader 功能

文档延迟加载原生异步支持
PowerScaleDocumentLoader
PowerScaleUnstructuredLoader

设置

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

安装

文档加载器位于外部 pip 包中,可以使用标准工具进行安装

%pip install --upgrade --quiet  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

# Or load files with the 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' mode splits the document into more granular chunks
# Use 'single' mode if you want the entire document as a single chunk
mode="elements",
)

字段:

  • es_host_url是 MetadataIQ Elasticsearch 数据库的终端节点
  • es_index_index是 PowerScale 写入文件系统元数据的索引的名称
  • es_api_key是 Elasticsearch API 密钥的编码版本
  • folder_path是 PowerScale 上要查询更改的路径

负荷

在内部,所有代码都与 PowerScale 和 MetadataIQ 异步,并且 load 和 lazy load 方法将返回 python 生成器。我们建议使用 Lazy Load 函数。

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']})]

返回的对象

这两个文档加载器都将跟踪之前返回到应用程序的文件。再次调用时,文档加载器将仅返回自上次运行以来的新文件或修改的文件。

  • metadata字段Document将返回 PowerScale 上包含已修改文件的路径。您将使用此路径通过 NFS(或 S3)读取数据并在应用程序中处理数据(例如:创建块和嵌入)。
  • sourcefield 是 PowerScale 上的路径,不一定在本地系统上(取决于您的挂载策略);OneFS 将整个存储系统表示为一棵树,其根目录为/ifs.
  • change_types属性将通知您自上次更改以来发生了什么更改 - 例如:new、modified 或 delete。

您的 RAG 应用程序可以使用来自change_types添加、更新或删除 chunk 和 vector 存储的条目。

使用PowerScaleUnstructuredLoaderpage_content字段中将填充来自 Unstructured Loader 的数据

延迟加载

在内部,所有代码都与 PowerScale 和 MetadataIQ 异步,并且 load 和 lazy load 方法将返回 python 生成器。我们建议使用 Lazy Load 函数。

for doc in loader.lazy_load():
print(doc) # do something specific with the document

一样Document作为 Load 函数返回,具有上述所有相同的属性。

其他示例

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

API 参考

有关所有 PowerScale Document Loader 功能和配置的详细文档,请前往 github 页面:https://github.com/dell/powerscale-rag-connector/