这将帮助您开始使用 LocalFileStore。有关所有 LocalFileStore 功能和配置的详细文档,请前往 API 参考.
概述
LocalFileStore 是围绕 fs 模块的包装器,用于将数据存储为键值对。 每个键值对都有自己嵌套在传递给 .fromPath method. 的文件名是键,内部包含键的值。
集成详情
| 类 | 包 | 本地 | PY 支持 | 下载 | 版本 |
|---|---|---|---|---|---|
LocalFileStore | langchain | ✅ | ✅ | !NPM - 下载 | !NPM - 版本 |
设置
安装
LangChain 的 LocalFileStore 集成位于 langchain package:
npm install langchain @langchain/core
yarn add langchain @langchain/core
pnpm add langchain @langchain/core
实例化
现在我们可以实例化我们的字节存储:
const kvStore = await LocalFileStore.fromPath("./messages");
定义编码器和解码器以将数据转换为 Uint8Array 并返回:
const encoder = new TextEncoder();
const decoder = new TextDecoder();
用法
您可以使用 mset method:
await kvStore.mset(
[
["key1", encoder.encode("value1")],
["key2", encoder.encode("value2")],
]
)
const results = await kvStore.mget(
[
"key1",
"key2",
]
)
console.log(results.map((v) => decoder.decode(v)));
[ 'value1', 'value2' ]
您可以使用 mdelete method:
await kvStore.mdelete(
[
"key1",
"key2",
]
)
await kvStore.mget(
[
"key1",
"key2",
]
)
[ undefined, undefined ]
生成值
如果您想返回所有键,可以调用 yieldKeys 方法。可选地,您可以传递一个键前缀以仅返回与该前缀匹配的键。
const kvStoreForYield = await LocalFileStore.fromPath("./messages");
const encoderForYield = new TextEncoder();
// Add some data to the store
await kvStoreForYield.mset(
[
["message:id:key1", encoderForYield.encode("value1")],
["message:id:key2", encoderForYield.encode("value2")],
]
)
const yieldedKeys = [];
for await (const key of kvStoreForYield.yieldKeys("message:id:")) {
yieldedKeys.push(key);
}
console.log(yieldedKeys);
[ 'message:id:key1', 'message:id:key2' ]
// Cleanup
await fs.promises.rm("./messages", { recursive: true, force: true });
API 参考
有关所有 LocalFileStore 功能和配置的详细文档,请前往 API 参考