跳到主要内容

键值存储

概述

LangChain 提供了一个键值存储接口,用于存储和检索数据。

LangChain 包括一个 BaseStore 接口,允许存储任意数据。但是,需要 KV 存储的 LangChain 组件接受更具体的 BaseStore<string, Uint8Array> 实例,该实例存储二进制数据(称为 ByteStore),并在内部处理其特定需求的编码和解码数据。

这意味着作为用户,您只需要考虑一种类型的存储,而不是不同数据类型的不同存储。

用法

LangChain 中的键值存储接口主要用于

  1. 通过 CachedBackedEmbeddings 缓存 嵌入,以避免为重复查询或重新索引内容重新计算嵌入。

  2. 作为某些检索器中的简单 Document 持久层。

请参阅以下操作指南以获取更多信息

接口

所有 BaseStore 都支持以下接口。请注意,该接口允许一次修改多个键值对

  • mget(keys: string[]): Promise<(Uint8Array | undefined)[]>:获取多个键的内容,如果键不存在,则返回 undefined
  • mset(keyValuePairs: [string, Uint8Array][]): Promise<void>:设置多个键的内容
  • mdelete(keys: string[]): Promise<void>:删除多个键
  • yieldKeys(prefix?: string): AsyncIterator<string>:生成存储中的所有键,可以选择按前缀过滤

集成

请参考 存储集成页面 以获取可用键值存储集成的列表。


此页内容对您有帮助吗?


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