跳到主要内容
兼容性:仅适用于 Node.js。
这将帮助您开始使用 LocalFileStore。有关 LocalFileStore 所有功能和配置的详细文档,请参阅 API 参考

概览

LocalFileStorefs 模块的封装,用于以键值对形式存储数据。每个键值对都有自己的文件,嵌套在传递给 .fromPath 方法的目录中。文件名是键,其中包含键的值。
传递给 .fromPath 的路径必须是目录,而不是文件。
此文件存储可以更改所提供目录和任何子文件夹中的任何文本文件。请确保在初始化存储时指定的路径中没有其他文件。

集成详情

类别本地PY 支持下载量版本
LocalFileStoreLangChainNPM - DownloadsNPM - Version

设置

安装

LangChain LocalFileStore 集成位于 langchain 包中。
npm install langchain @langchain/core

实例化

现在我们可以实例化我们的字节存储。
import { LocalFileStore } from "@langchain/classic/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/classic/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 参考
以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。
© . This site is unofficial and not affiliated with LangChain, Inc.