跳到主要内容
这将帮助您开始使用 InMemoryStore。有关所有 InMemoryStore 功能和配置的详细文档,请查阅 API 参考 InMemoryStore 允许为存储中的值分配通用类型。我们将把 BaseMessage 类型分配给我们的值,以保持聊天历史存储的主题。

概览

集成详情

类别本地PY 支持下载量版本
InMemoryStore@langchain/coreNPM - DownloadsNPM - Version

设置

安装

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

实例化

现在我们可以实例化我们的字节存储。
import { InMemoryStore } from "@langchain/core/stores"
import { BaseMessage } from "@langchain/core/messages";

const kvStore = new InMemoryStore<BaseMessage>();

用法

您可以使用 mset 方法在键下设置数据,如下所示。
import { AIMessage, HumanMessage } from "@langchain/core/messages";

await kvStore.mset(
  [
    ["key1", new HumanMessage("value1")],
    ["key2", new AIMessage("value2")],
  ]
)

await kvStore.mget(
  [
    "key1",
    "key2",
  ]
)
[
  HumanMessage {
    "content": "value1",
    "additional_kwargs": {},
    "response_metadata": {}
  },
  AIMessage {
    "content": "value2",
    "additional_kwargs": {},
    "response_metadata": {},
    "tool_calls": [],
    "invalid_tool_calls": []
  }
]
您可以使用 mdelete 方法删除数据。
await kvStore.mdelete(
  [
    "key1",
    "key2",
  ]
)

await kvStore.mget(
  [
    "key1",
    "key2",
  ]
)
[ undefined, undefined ]

生成值

如果您想获取所有键,可以调用 yieldKeys 方法。您可以选择传递一个键前缀,以便只获取匹配该前缀的键。
import { InMemoryStore } from "@langchain/core/stores"
import { AIMessage, BaseMessage, HumanMessage } from "@langchain/core/messages";

const kvStoreForYield = new InMemoryStore<BaseMessage>();

// Add some data to the store
await kvStoreForYield.mset(
  [
    ["message:id:key1", new HumanMessage("value1")],
    ["message:id:key2", new AIMessage("value2")],
  ]
)

const yieldedKeys = [];
for await (const key of kvStoreForYield.yieldKeys("message:id:")) {
  yieldedKeys.push(key);
}

console.log(yieldedKeys);
[ 'message:id:key1', 'message:id:key2' ]

API 参考

有关所有 InMemoryStore 功能和配置的详细文档,请查阅 API 参考
以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。
© . This site is unofficial and not affiliated with LangChain, Inc.