Dell PowerScale은 업계 최고의 OneFS 파일시스템을 호스팅하는 엔터프라이즈 스케일 아웃 스토리지 시스템으로, 온프레미스에 호스팅하거나 클라우드에 배포할 수 있습니다. 이 document loader는 애플리케이션의 마지막 실행 이후 수정된 파일을 확인하고 수정된 파일만 반환하는 PowerScale의 고유한 기능을 활용합니다. 이를 통해 변경되지 않은 파일을 재처리(청크 및 임베딩)할 필요가 없어져 전체 데이터 수집 워크플로우가 개선됩니다. 이 loader는 PowerScale의 MetadataIQ 기능이 활성화되어 있어야 합니다. 추가 정보는 GitHub 저장소에서 확인할 수 있습니다: https://github.com/dell/powerscale-rag-connector

Overview

Integration details

ClassPackageLocalSerializableJS support
PowerScaleDocumentLoaderpowerscale-rag-connector
PowerScaleUnstructuredLoaderpowerscale-rag-connector

Loader features

SourceDocument Lazy LoadingNative Async Support
PowerScaleDocumentLoader
PowerScaleUnstructuredLoader

Setup

이 document loader는 MetadataIQ가 활성화된 Dell PowerScale 시스템을 사용해야 합니다. 추가 정보는 GitHub 페이지에서 확인할 수 있습니다: https://github.com/dell/powerscale-rag-connector

Installation

이 document loader는 외부 pip 패키지에 있으며 표준 도구를 사용하여 설치할 수 있습니다
pip install -qU  powerscale-rag-connector

Initialization

이제 document loader를 인스턴스화할 수 있습니다:

Generic Document Loader

범용 document loader는 다음과 같은 방식으로 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 Loader

선택적으로 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의 경로입니다

Load

내부적으로 모든 코드는 PowerScale 및 MetadataIQ와 비동기적으로 작동하며 load 및 lazy load 메서드는 python generator를 반환합니다. 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']})]

Returned Object

두 document loader 모두 이전에 애플리케이션에 반환된 파일을 추적합니다. 다시 호출하면 document loader는 이전 실행 이후 새로 생성되거나 수정된 파일만 반환합니다.
  • 반환된 Documentmetadata 필드는 수정된 파일이 포함된 PowerScale의 경로를 반환합니다. 이 경로를 사용하여 NFS(또는 S3)를 통해 데이터를 읽고 애플리케이션에서 데이터를 처리할 수 있습니다(예: 청크 및 임베딩 생성).
  • source 필드는 PowerScale의 경로이며 반드시 로컬 시스템의 경로는 아닙니다(마운트 전략에 따라 다름). OneFS는 전체 스토리지 시스템을 /ifs를 루트로 하는 단일 트리로 표현합니다.
  • change_types 속성은 마지막 실행 이후 발생한 변경 사항(예: new, modified 또는 delete)을 알려줍니다.
RAG 애플리케이션은 change_types의 정보를 사용하여 청크 및 벡터 저장소의 항목을 추가, 업데이트 또는 삭제할 수 있습니다. PowerScaleUnstructuredLoader를 사용하는 경우 page_content 필드는 Unstructured Loader의 데이터로 채워집니다

Lazy Load

내부적으로 모든 코드는 PowerScale 및 MetadataIQ와 비동기적으로 작동하며 load 및 lazy load 메서드는 python generator를 반환합니다. lazy load 함수를 사용하는 것을 권장합니다.
for doc in loader.lazy_load():
    print(doc)  # do something specific with the document
load 함수와 동일한 Document가 반환되며 위에서 언급한 모든 속성이 동일합니다.

Additional Examples

추가 예제 및 코드는 공개 GitHub 웹페이지에서 확인할 수 있습니다: https://github.com/dell/powerscale-rag-connector/tree/main/examples에서 완전한 작동 예제를 제공합니다.

API reference

모든 PowerScale Document Loader 기능 및 구성에 대한 자세한 문서는 GitHub 페이지를 참조하세요: https://github.com/dell/powerscale-rag-connector/
Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.
I