Skip to main content
LambdaDB 是一个用于构建可扩展 RAG 和智能体应用程序的无服务器 AI 数据库。
本笔记本涵盖了如何在 LangChain 中开始使用 LambdaDB 向量存储。

设置

要访问 LambdaDB 向量存储,您需要创建一个 LambdaDB 账户,获取您的项目凭证,并安装 langchain-lambdadb 集成包。

凭证

LambdaDB 使用基于项目的身份验证,需要项目 URL 和 API 密钥:
要启用模型调用的自动跟踪,请设置您的 LangSmith API 密钥:

安装

LangChain LambdaDB 集成包含在 langchain-lambdadb 包中:
您还需要安装一个嵌入模型。例如,要使用 OpenAI 嵌入:

实例化

LambdaDBVectorStore 适用于现有集合。您必须事先创建集合,并配置好适当的向量和文本索引。

关键参数

  • client:LambdaDB 客户端实例(必需)
  • collection_name:LambdaDB 中现有集合的名称(必需)
  • embedding:要使用的嵌入函数(必需)
  • text_field:文档中文本字段的名称(默认:“text”)
  • vector_field:文档中向量字段的名称(默认:“vector”)
  • validate_collection:是否验证集合是否存在且处于活动状态(默认:True)
  • default_consistent_read:默认使用一致性读取以获得即时一致性,或使用最终一致性以获得更好的性能(默认:False)

管理向量存储

添加项目

文档最大大小为 50KB。集成会自动将文档批处理为最多 100 个一组,以符合 LambdaDB 的 6MB 请求限制。

删除项目

通过 ID 获取项目


查询向量存储

一旦您的向量存储已创建并添加了相关文档,您很可能希望在运行链或智能体时对其进行查询。

相似性搜索

执行简单的相似性搜索:

带分数的相似性搜索

如果您想执行相似性搜索并接收相应的分数:

带过滤的相似性搜索

LambdaDB 支持使用查询字符串语法进行过滤:

最大边际相关性 (MMR) 搜索

MMR 优化了与查询的相似性以及所选文档之间的多样性:

转换为检索器

您也可以将向量存储转换为检索器,以便在链中更轻松地使用:
支持的搜索类型:
  • "similarity":标准相似性搜索(默认)
  • "mmr":最大边际相关性搜索
  • "similarity_score_threshold":带分数阈值的相似性搜索

异步操作

LambdaDBVectorStore 支持所有操作的异步方法:
目前,异步方法同步运行,因为 LambdaDB 客户端尚不支持异步操作。

一致性控制

LambdaDB 支持两种一致性模式:
  • 最终一致性(默认):性能更快,但写入后数据可能有最多约 1 分钟的延迟
  • 一致性读取:即时一致性,对性能有轻微影响

从文本创建

您可以一步创建向量存储并用文本填充它:

用于检索增强生成

以下是使用 LambdaDB 进行 RAG 的完整示例:

关键特性

文档大小限制

  • 最大文档大小:每个文档 50KB
  • 集成会验证文档大小,如果超出则引发错误

批处理

  • 文档在更新操作中自动批处理为每组 100 个
  • 符合 LambdaDB 的 6MB 请求限制

过滤

  • 支持 LambdaDB 的查询字符串语法进行元数据过滤
  • 示例:filter={"queryString": {"query": "field:value"}}

搜索选项

  • 相似性搜索:查找与查询相似的文档
  • MMR 搜索:平衡相似性和多样性
  • 分数阈值:按相似性分数过滤结果
  • 一致性读取:控制读取一致性与性能的权衡

API 参考

有关所有 LambdaDBVectorStore 功能和配置的详细文档,请访问 API 参考

附加资源