LocalFileStore
兼容性
仅在 Node.js 上可用。
这将帮助您开始使用 LocalFileStore。有关 LocalFileStore 所有功能和配置的详细文档,请前往 API 参考。
概述
LocalFileStore
是一个围绕 fs
模块的包装器,用于将数据存储为键值对。每个键值对在其传递到 .fromPath
方法的目录中都有自己的文件。文件名是键,内部包含键的值。
信息
传递到 .fromPath
的路径必须是目录,而不是文件。
危险
此文件存储可以更改提供的目录和任何子文件夹中的任何文本文件。确保在初始化存储时指定的路径中没有其他文件。
集成详细信息
类 | 包 | 本地 | PY 支持 | 包下载 | 包最新版本 |
---|---|---|---|---|---|
LocalFileStore | langchain | ✅ | ✅ |
设置
安装
LangChain LocalFileStore
集成位于 langchain
包中
提示
有关安装集成包的一般说明,请参阅 此部分。
- npm
- yarn
- pnpm
npm i langchain @langchain/core
yarn add langchain @langchain/core
pnpm add langchain @langchain/core
实例化
现在我们可以实例化我们的字节存储
import { LocalFileStore } from "langchain/storage/file_system";
const kvStore = await LocalFileStore.fromPath("./messages");
定义一个编码器和解码器,用于将数据转换为 Uint8Array
并转换回来
const encoder = new TextEncoder();
const decoder = new TextDecoder();
用法
您可以使用 mset
方法,像这样在键下设置数据
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
方法删除数据
await kvStore.mdelete(["key1", "key2"]);
await kvStore.mget(["key1", "key2"]);
[ undefined, undefined ]
生成值
如果您想获取所有键,可以调用 yieldKeys
方法。或者,您可以传递一个键前缀,以便只获取与该前缀匹配的键。
import { LocalFileStore } from "langchain/storage/file_system";
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' ]
import fs from "fs";
// Cleanup
await fs.promises.rm("./messages", { recursive: true, force: true });
API 参考
有关 LocalFileStore 所有功能和配置的详细文档,请前往 API 参考