这将帮助您开始使用 InMemoryStore。有关所有 InMemoryStore 功能和配置的详细文档,请参阅 API 参考.
该 InMemoryStore 允许将泛型类型分配给存储中的值。我们将分配类型 BaseMessage 作为值的类型,延续聊天历史存储的主题。
概述
集成详情
| 类 | 包 | 本地 | PY 支持 | 下载量 | 版本 |
|---|---|---|---|---|---|
InMemoryStore | @langchain/core | ✅ | ✅ | !NPM - 下载量 | !NPM - 版本 |
设置
安装
LangChain InMemoryStore 集成位于 @langchain/core package:
npm install @langchain/core
yarn add @langchain/core
pnpm add @langchain/core
实例化
现在我们可以实例化字节存储:
const kvStore = new InMemoryStore();
用法
您可以使用以下方式在键下设置数据 mset method:
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 method:
await kvStore.mdelete(
[
"key1",
"key2",
]
)
await kvStore.mget(
[
"key1",
"key2",
]
)
[ undefined, undefined ]
返回值
如果您想获取所有键,可以调用 yieldKeys 方法。可选地,您可以传递键前缀以仅获取与该前缀匹配的键。
const kvStoreForYield = new InMemoryStore();
// 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 参考