Skip to content

Opendal

OpendalAzblobReader #

Bases: BaseReader

通用的读取器,适用于任何 Azblob 文件或目录。

Source code in llama_index/readers/opendal/azblob/base.py
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
class OpendalAzblobReader(BaseReader):
    """通用的读取器,适用于任何 Azblob 文件或目录。"""

    def __init__(
        self,
        container: str,
        path: str = "/",
        endpoint: str = "",
        account_name: str = "",
        account_key: str = "",
        file_extractor: Optional[Dict[str, Union[str, BaseReader]]] = None,
    ) -> None:
        """初始化 Azblob 容器,以及必要的凭据。

如果未设置密钥,则将解析整个存储桶(通过前缀进行过滤)。

Args:
container(str):您的 azblob 存储桶的名称
path(str):数据的路径。如果未提供路径,则此加载器将遍历整个存储桶。如果路径以 `/` 结尾,则此加载器将遍历整个目录。否则,此加载器将加载文件。
endpoint Optional[str]:azblob 服务的终结点。
account_name(Optional[str]):直接提供 azblob 访问密钥。
account_key(Optional[str]):直接提供 azblob 访问密钥。
file_extractor(Optional[Dict[str, BaseReader]]):文件扩展名到 BaseReader 类的映射,指定如何将该文件转换为文本。有关更多详细信息,请参见 `SimpleDirectoryReader`。
"""
        super().__init__()

        self.path = path
        self.file_extractor = file_extractor

        # opendal service related config.
        self.options = {
            "container": container,
            "endpoint": endpoint,
            "account_name": account_name,
            "account_key": account_key,
        }

    def load_data(self) -> List[Document]:
        """从OpenDAL加载文件。"""
        loader = OpendalReader(
            scheme="azblob",
            path=self.path,
            file_extractor=self.file_extractor,
            **self.options,
        )

        return loader.load_data()

load_data #

load_data() -> List[Document]

从OpenDAL加载文件。

Source code in llama_index/readers/opendal/azblob/base.py
51
52
53
54
55
56
57
58
59
60
def load_data(self) -> List[Document]:
    """从OpenDAL加载文件。"""
    loader = OpendalReader(
        scheme="azblob",
        path=self.path,
        file_extractor=self.file_extractor,
        **self.options,
    )

    return loader.load_data()

OpendalGcsReader #

Bases: BaseReader

通用的读取任何Gcs文件或目录的读取器。

Source code in llama_index/readers/opendal/gcs/base.py
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
class OpendalGcsReader(BaseReader):
    """通用的读取任何Gcs文件或目录的读取器。"""

    def __init__(
        self,
        bucket: str,
        path: str = "/",
        endpoint: str = "",
        credentials: str = "",
        file_extractor: Optional[Dict[str, Union[str, BaseReader]]] = None,
    ) -> None:
        """初始化Gcs容器,以及必要时的凭据。

如果未设置密钥,则会解析整个存储桶(按前缀过滤)。

Args:
bucket(str):您的gcs存储桶的名称
path(str):数据的路径。如果未提供路径,则此加载器将遍历整个存储桶。如果路径以“/”结尾,则此加载器将遍历整个目录。否则,此加载器将加载文件。
endpoint Optional[str]:azblob服务的端点。
credentials(Optional[str]):直接提供GCS OAuth2的凭据字符串。
file_extractor(Optional[Dict[str,BaseReader]]):文件扩展名到BaseReader类的映射,指定如何将该文件转换为文本。有关更多详细信息,请参见`SimpleDirectoryReader`。
"""
        super().__init__()

        self.path = path
        self.file_extractor = file_extractor

        # opendal service related config.
        self.options = {
            "bucket": bucket,
            "endpoint": endpoint,
            "credentials": credentials,
        }

    def load_data(self) -> List[Document]:
        """从OpenDAL加载文件。"""
        loader = OpendalReader(
            scheme="gcs",
            path=self.path,
            file_extractor=self.file_extractor,
            **self.options,
        )

        return loader.load_data()

load_data #

load_data() -> List[Document]

从OpenDAL加载文件。

Source code in llama_index/readers/opendal/gcs/base.py
48
49
50
51
52
53
54
55
56
57
def load_data(self) -> List[Document]:
    """从OpenDAL加载文件。"""
    loader = OpendalReader(
        scheme="gcs",
        path=self.path,
        file_extractor=self.file_extractor,
        **self.options,
    )

    return loader.load_data()

OpendalReader #

Bases: BaseReader

任何opendal操作符的通用读取器。

Source code in llama_index/readers/opendal/base.py
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
class OpendalReader(BaseReader):
    """任何opendal操作符的通用读取器。"""

    def __init__(
        self,
        scheme: str,
        path: str = "/",
        file_extractor: Optional[Dict[str, Union[str, BaseReader]]] = None,
        **kwargs,
    ) -> None:
        """初始化opendal操作符,以及必要时的凭据。

Args:
scheme(str):服务的方案
path(str):数据的路径。如果未提供路径,则此加载器将遍历整个存储桶。如果路径以“/”结尾,则此加载器将遍历整个目录。否则,此加载器将加载文件。
file_extractor(可选[Dict[str,BaseReader]]):文件扩展名到BaseReader类的映射,指定如何将该文件转换为文本。有关更多详细信息,请参见`SimpleDirectoryReader`。
"""
        import opendal

        super().__init__()

        self.path = path
        self.file_extractor = file_extractor

        self.op = opendal.AsyncOperator(scheme, **kwargs)

    def load_data(self) -> List[Document]:
        """从OpenDAL加载文件。"""
        with tempfile.TemporaryDirectory() as temp_dir:
            if not self.path.endswith("/"):
                asyncio.run(download_file_from_opendal(self.op, temp_dir, self.path))
            else:
                asyncio.run(download_dir_from_opendal(self.op, temp_dir, self.path))

            loader = SimpleDirectoryReader(temp_dir, file_extractor=self.file_extractor)

            return loader.load_data()

load_data #

load_data() -> List[Document]

从OpenDAL加载文件。

Source code in llama_index/readers/opendal/base.py
42
43
44
45
46
47
48
49
50
51
52
def load_data(self) -> List[Document]:
    """从OpenDAL加载文件。"""
    with tempfile.TemporaryDirectory() as temp_dir:
        if not self.path.endswith("/"):
            asyncio.run(download_file_from_opendal(self.op, temp_dir, self.path))
        else:
            asyncio.run(download_dir_from_opendal(self.op, temp_dir, self.path))

        loader = SimpleDirectoryReader(temp_dir, file_extractor=self.file_extractor)

        return loader.load_data()

OpendalS3Reader #

Bases: BaseReader

通用的读取器,用于读取S3中的任何文件或目录。

Source code in llama_index/readers/opendal/s3/base.py
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
class OpendalS3Reader(BaseReader):
    """通用的读取器,用于读取S3中的任何文件或目录。"""

    def __init__(
        self,
        bucket: str,
        path: str = "/",
        endpoint: str = "",
        region: str = "",
        access_key_id: str = "",
        secret_access_key: str = "",
        file_extractor: Optional[Dict[str, Union[str, BaseReader]]] = None,
    ) -> None:
        """初始化S3存储桶和密钥,以及必要的凭据。

如果未设置密钥,则将解析整个存储桶(通过前缀筛选)。

Args:
bucket(str):您的S3存储桶的名称
path(str):数据的路径。如果未提供路径,则此加载器将遍历整个存储桶。如果路径以“/”结尾,则此加载器将遍历整个目录。否则,此加载器将加载文件。
endpoint Optional[str]:S3服务的终端。
region:Optional[str]:S3服务的区域。
access_key_id(Optional[str]):直接提供AWS访问密钥。
secret_access_key(Optional[str]):直接提供AWS访问密钥。
file_extractor(Optional[Dict[str, BaseReader]]):文件扩展名到BaseReader类的映射,指定如何将该文件转换为文本。有关更多详细信息,请参见`SimpleDirectoryReader`。
"""
        super().__init__()

        self.path = path
        self.file_extractor = file_extractor

        # opendal service related config.
        self.options = {
            "access_key": access_key_id,
            "secret_key": secret_access_key,
            "endpoint": endpoint,
            "region": region,
            "bucket": bucket,
        }

    def load_data(self) -> List[Document]:
        """从OpenDAL加载文件。"""
        loader = OpendalReader(
            scheme="s3",
            path=self.path,
            file_extractor=self.file_extractor,
            **self.options,
        )

        return loader.load_data()

load_data #

load_data() -> List[Document]

从OpenDAL加载文件。

Source code in llama_index/readers/opendal/s3/base.py
54
55
56
57
58
59
60
61
62
63
def load_data(self) -> List[Document]:
    """从OpenDAL加载文件。"""
    loader = OpendalReader(
        scheme="s3",
        path=self.path,
        file_extractor=self.file_extractor,
        **self.options,
    )

    return loader.load_data()