跳至主要内容

LocalFileStore

兼容性

仅在 Node.js 上可用。

这将帮助您开始使用 LocalFileStore。有关 LocalFileStore 所有功能和配置的详细文档,请前往 API 参考

概述

LocalFileStore 是一个围绕 fs 模块的包装器,用于将数据存储为键值对。每个键值对在其传递到 .fromPath 方法的目录中都有自己的文件。文件名是键,内部包含键的值。

信息

传递到 .fromPath 的路径必须是目录,而不是文件。

危险

此文件存储可以更改提供的目录和任何子文件夹中的任何文本文件。确保在初始化存储时指定的路径中没有其他文件。

集成详细信息

本地PY 支持包下载包最新版本
LocalFileStorelangchainNPM - DownloadsNPM - Version

设置

安装

LangChain LocalFileStore 集成位于 langchain 包中

提示

有关安装集成包的一般说明,请参阅 此部分

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


此页面是否有帮助?


您也可以在 GitHub 上留下详细的反馈 在 GitHub 上.