Skip to main content
Facebook AI 相似性搜索 (FAISS) 是一个用于高效稠密向量相似性搜索和聚类的库。它包含可在任意大小的向量集中进行搜索的算法,甚至包括那些可能无法放入内存的向量集。它还包含用于评估和参数调整的支持代码。 请参阅 FAISS 库 论文。
您可以在 此页面 找到 FAISS 文档。 本笔记本展示了如何使用与 FAISS 向量数据库相关的功能。它将展示此集成特有的功能。完成后,探索 相关用例页面 以了解如何将此向量存储作为更大链的一部分来使用可能会有所帮助。

设置

该集成位于 langchain-community 包中。我们还需要安装 faiss 包本身。我们可以使用以下命令安装: 注意,如果您想使用启用 GPU 的版本,也可以安装 faiss-gpu
如果您希望获得最佳级别的模型调用自动追踪,您也可以通过取消注释以下内容来设置您的 LangSmith API 密钥:

初始化

管理向量存储

向向量存储添加项目

从向量存储删除项目

查询向量存储

一旦创建好向量存储并添加了相关文档,您很可能希望在运行链或代理期间对其进行查询。

直接查询

相似性搜索

执行带有元数据过滤的简单相似性搜索可以如下所示:
支持一些 MongoDB 查询和投影运算符 以进行更高级的元数据过滤。当前支持的运算符列表如下:
  • $eq(等于)
  • $neq(不等于)
  • $gt(大于)
  • $lt(小于)
  • $gte(大于或等于)
  • $lte(小于或等于)
  • $in(列表成员资格)
  • $nin(不在列表中)
  • $and(所有条件必须匹配)
  • $or(任何条件必须匹配)
  • $not(条件的否定)
使用高级元数据过滤执行上述相同的相似性搜索可以如下所示:

带分数的相似性搜索

您也可以带分数进行搜索:

其他搜索方法

有多种其他方法可以搜索 FAISS 向量存储。

转换为检索器进行查询

您还可以将向量存储转换为检索器,以便在链中更轻松地使用。

检索增强生成用法

关于如何使用此向量存储进行检索增强生成 (RAG) 的指南,请参见以下部分:

保存和加载

您还可以保存和加载 FAISS 索引。这很有用,因为您不必每次使用时都重新创建它。

合并

您还可以合并两个 FAISS 向量存储