本地文件存储#

class langchain.storage.file_system.LocalFileStore(root_path: str | Path, *, chmod_file: int | None = None, chmod_dir: int | None = None, update_atime: bool = False)[来源]#

BaseStore 接口,用于在本地文件系统上工作。

示例

创建一个LocalFileStore实例并对其进行操作:

from langchain.storage import LocalFileStore

# Instantiate the LocalFileStore with the root path
file_store = LocalFileStore("/path/to/root")

# Set values for keys
file_store.mset([("key1", b"value1"), ("key2", b"value2")])

# Get values for keys
values = file_store.mget(["key1", "key2"])  # Returns [b"value1", b"value2"]

# Delete keys
file_store.mdelete(["key1"])

# Iterate over keys
for key in file_store.yield_keys():
    print(key)  # noqa: T201

为本地文件系统实现BaseStore接口。

Parameters:
  • root_path (Union[str, Path]) – 文件存储的根路径。所有键都被解释为相对于此根的路径。

  • chmod_file (int | None) – (可选,默认为 None)如果指定,将设置新创建文件的权限,必要时覆盖当前的 umask

  • chmod_dir (int | None) – (可选,默认为 None)如果指定,则为新创建的目录设置权限,必要时覆盖当前的 umask

  • update_atime (bool) – (可选,默认为 False) 如果为 True,则在读取文件时更新文件系统的访问时间(但不更新修改时间)。这允许在禁用访问时间更新的文件系统上实现最近最少使用(MRU)/最近最常使用(LRU)缓存策略。

方法

__init__(root_path, *[, chmod_file, ...])

为本地文件系统实现BaseStore接口。

amdelete(keys)

异步删除给定的键及其关联的值。

amget(keys)

异步获取与给定键关联的值。

amset(key_value_pairs)

异步设置给定键的值。

ayield_keys(*[, prefix])

异步获取一个迭代器,用于匹配给定前缀的键。

mdelete(keys)

删除给定的键及其关联的值。

mget(keys)

获取与给定键关联的值。

mset(key_value_pairs)

设置给定键的值。

yield_keys([prefix])

获取一个迭代器,用于遍历与给定前缀匹配的键。

__init__(root_path: str | Path, *, chmod_file: int | None = None, chmod_dir: int | None = None, update_atime: bool = False) None[源代码]#

为本地文件系统实现BaseStore接口。

Parameters:
  • root_path (Union[str, Path]) – 文件存储的根路径。所有键都被解释为相对于此根的路径。

  • chmod_file (int | None) – (可选,默认为 None)如果指定,将设置新创建文件的权限,必要时覆盖当前的 umask

  • chmod_dir (int | None) – (可选,默认为 None)如果指定,则为新创建的目录设置权限,必要时覆盖当前的 umask

  • update_atime (bool) – (可选,默认为 False) 如果为 True,则在读取文件时更新文件系统的访问时间(但不更新修改时间)。这允许在禁用访问时间更新的文件系统上实现最近最少使用(MRU)/最近最常使用(LRU)缓存策略。

Return type:

async amdelete(keys: Sequence[K]) None#

异步删除给定的键及其关联的值。

Parameters:

keys (Sequence[K]) – 要删除的键序列。

Return type:

async amget(keys: Sequence[K]) list[V | None]#

异步获取与给定键关联的值。

Parameters:

keys (Sequence[K]) – 一个键的序列。

Returns:

与键相关联的一系列可选值。 如果未找到键,则对应的值将为None。

Return type:

列表[V | 无]

async amset(key_value_pairs: Sequence[tuple[K, V]]) None#

异步设置给定键的值。

Parameters:

key_value_pairs (Sequence[Tuple[K, V]]) – 一个键值对的序列。

Return type:

async ayield_keys(*, prefix: str | None = None) AsyncIterator[K] | AsyncIterator[str]#

异步获取一个迭代器,用于遍历与给定前缀匹配的键。

Parameters:

prefix (str) – 要匹配的前缀。

Yields:

Iterator[K | str] – 一个遍历与给定前缀匹配的键的迭代器。 此方法允许返回一个遍历 K 或 str 的迭代器,具体取决于给定存储的更有意义的方式。

Return type:

AsyncIterator[K] | AsyncIterator[str]

mdelete(keys: Sequence[str]) None[source]#

删除给定的键及其关联的值。

Parameters:

keys (Sequence[str]) – 要删除的键序列。

Returns:

Return type:

mget(keys: Sequence[str]) List[bytes | None][source]#

获取与给定键关联的值。

Parameters:

keys (Sequence[str]) – 一个键的序列。

Returns:

与键相关联的一系列可选值。 如果未找到键,则对应的值将为None。

Return type:

列表[字节 | 无]

mset(key_value_pairs: Sequence[Tuple[str, bytes]]) None[source]#

为给定的键设置值。

Parameters:

key_value_pairs (Sequence[Tuple[str, bytes]]) – 一个键值对的序列。

Returns:

Return type:

yield_keys(prefix: str | None = None) Iterator[str][source]#

获取一个迭代器,用于遍历与给定前缀匹配的键。

Parameters:

prefix (可选[str]) – 要匹配的前缀。

Returns:

一个遍历与给定前缀匹配的键的迭代器。

Return type:

迭代器[str]

使用 LocalFileStore 的示例