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 参考