存储¶
langchain-classic 文档
本文档涵盖 langchain-classic 包。该包将持续维护安全漏洞至 2026 年 12 月。我们鼓励用户迁移到 langchain 包以获取最新的功能和改进。查看 langchain 的文档
langchain_classic.storage ¶
键值存储和存储辅助工具的实现。
模块提供了符合简单键值接口的各种键值存储的实现。
这些存储的主要目标是支持缓存的实现。
EncoderBackedStore ¶
基类:BaseStore[K, V]
使用键和值的编码器/解码器包装一个存储。
使用 JSON 进行编码/解码的示例
import json
def key_encoder(key: int) -> str:
return json.dumps(key)
def value_serializer(value: float) -> str:
return json.dumps(value)
def value_deserializer(serialized_value: str) -> float:
return json.loads(serialized_value)
# Create an instance of the abstract store
abstract_store = MyCustomStore()
# Create an instance of the encoder-backed store
store = EncoderBackedStore(
store=abstract_store,
key_encoder=key_encoder,
value_serializer=value_serializer,
value_deserializer=value_deserializer,
)
# Use the encoder-backed store methods
store.mset([(1, 3.14), (2, 2.718)])
values = store.mget([1, 2]) # Retrieves [3.14, 2.718]
store.mdelete([1, 2]) # Deletes the keys 1 and 2
| 方法 | 描述 |
|---|---|
__init__ |
初始化一个 |
mget |
获取与给定键关联的值。 |
amget |
异步获取与给定键相关联的值。 |
mset |
为给定的键设置值。 |
amset |
异步为给定的键设置值。 |
mdelete |
删除给定的键及其关联的值。 |
amdelete |
异步删除给定的键及其关联的值。 |
yield_keys |
获取与给定前缀匹配的键的迭代器。 |
ayield_keys |
异步获取与给定前缀匹配的键的迭代器。 |
__init__ ¶
mget ¶
amget async ¶
mset ¶
amset async ¶
amdelete async ¶
amdelete(keys: Sequence[K]) -> None
异步删除给定的键及其关联的值。
| 参数 | 描述 |
|---|---|
keys
|
要删除的键序列。
类型: |
yield_keys ¶
ayield_keys async ¶
ayield_keys(*, prefix: str | None = None) -> AsyncIterator[K] | AsyncIterator[str]
异步获取与给定前缀匹配的键的迭代器。
| 参数 | 描述 |
|---|---|
prefix
|
要匹配的前缀。
类型: |
| YIELDS | 描述 |
|---|---|
AsyncIterator[K] | AsyncIterator[str]
|
与给定前缀匹配的键。 |
LocalFileStore ¶
基类:ByteStore
适用于本地文件系统的 BaseStore 接口。
示例
创建一个 LocalFileStore 实例并对其执行操作
from langchain_classic.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
| 方法 | 描述 |
|---|---|
__init__ |
为本地文件系统实现 |
mget |
获取与给定键关联的值。 |
mset |
为给定的键设置值。 |
mdelete |
删除给定的键及其关联的值。 |
yield_keys |
获取与给定前缀匹配的键的迭代器。 |
__init__ ¶
__init__(
root_path: str | Path,
*,
chmod_file: int | None = None,
chmod_dir: int | None = None,
update_atime: bool = False,
) -> None
为本地文件系统实现 BaseStore 接口。
| 参数 | 描述 |
|---|---|
root_path
|
文件存储的根路径。所有键都被解释为相对于此根路径的路径。 |
chmod_file
|
为新创建的文件设置权限,如果需要,会覆盖当前的
TYPE: |
chmod_dir
|
为新创建的目录设置权限,如果需要,会覆盖当前的
TYPE: |
update_atime
|
在读取文件时更新文件系统的访问时间(但不更新修改时间)。这允许在禁用了访问时间更新的文件系统上实现 MRU/LRU 缓存策略。
类型: |