Skip to main content
Facebook AI Similarity Search (FAISS) is a library for efficient similarity search and clustering of dense vectors. It contains algorithms that search in sets of vectors of any size, up to ones that possibly do not fit in RAM. It also includes supporting code for evaluation and parameter tuning. See The FAISS Library paper.
您可以在此页面找到 FAISS 文档。 本笔记展示如何使用与 FAISS 向量数据库相关的功能。它将展示此集成特有的功能。阅读完毕后,建议探索相关用例页面以学习如何将此向量存储用作更大链的一部分。

设置

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

初始化

管理向量存储

向向量存储添加项目

从向量存储删除项目

查询向量存储

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

直接查询

相似度搜索

可以按以下方式执行带元数据过滤的简单相似度搜索:
Some MongoDB query and projection operators are supported for more advanced metadata filtering. The current list of supported operators are as follows:
  • $eq (equals)
  • $neq (not equals)
  • $gt (greater than)
  • $lt (less than)
  • $gte (greater than or equal)
  • $lte (less than or equal)
  • $in (membership in list)
  • $nin (not in list)
  • $and (all conditions must match)
  • $or (any condition must match)
  • $not (negation of condition)
Performing the same above similarity search with advanced metadata filtering can be done as follows:

带分数的相似度搜索

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

其他搜索方法

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

转换为检索器进行查询

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

用于检索增强生成

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

保存和加载

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

合并

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