Skip to main content
Facebook AI 相似性搜索 (FAISS) 是一个用于高效相似性搜索和密集向量聚类的库。它包含的算法可以在任意大小的向量集中进行搜索,甚至包括那些可能无法完全放入内存的向量集。它还包括用于评估和参数调优的支持代码。 参见 The FAISS Library 论文。
你可以在此页面找到 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 向量存储