InMemoryStore
这将帮助您开始使用 InMemoryStore。有关所有 InMemoryStore 功能和配置的详细文档,请访问 API 参考。
InMemoryStore
允许为存储中的值分配通用类型。我们将分配 BaseMessage
类型作为值的类型,与聊天历史记录存储的主题保持一致。
概述
集成详情
类 | 包 | 本地 | PY 支持 | 包下载 | 包最新版本 |
---|---|---|---|---|---|
InMemoryStore | @langchain/core | ✅ | ✅ | ![]() | ![]() |
设置
安装
LangChain InMemoryStore 集成位于 @langchain/core
包中
提示
- npm
- yarn
- pnpm
npm i @langchain/core
yarn add @langchain/core
pnpm add @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 参考