Facebook AI Similarity Search (FAISS) 是一个用于高效相似性搜索和密集向量聚类的库。它包含在任意大小的向量集合中进行搜索的算法,甚至适用于可能无法放入 RAM 的大型集合。它还包括用于评估和参数调整的支持代码。 参见 The FAISS Library 论文。您可以在此页面找到 FAISS 文档。 此笔记本展示了如何使用与
FAISS 向量数据库相关的功能。它将展示此集成特有的功能。了解之后,探索相关用例页面以学习如何将此向量存储用作更大链的一部分可能会很有用。
设置
集成位于langchain-community 包中。我们还需要安装 faiss 包本身。我们可以使用以下命令安装这些包:
请注意,如果您想使用 GPU 加速版本,也可以安装 faiss-gpu
初始化
管理向量存储
向向量存储添加项目
从向量存储删除项目
查询向量存储
一旦您的向量存储已创建并且相关文档已添加,您很可能希望在链或代理运行期间对其进行查询。直接查询
相似性搜索
执行简单的相似性搜索并根据元数据进行过滤,可以如下进行:$eq(等于)$neq(不等于)$gt(大于)$lt(小于)$gte(大于或等于)$lte(小于或等于)$in(在列表中)$nin(不在列表中)$and(所有条件必须匹配)$or(任何条件必须匹配)$not(条件的否定)
带分数的相似性搜索
您也可以带分数进行搜索:其他搜索方法
有多种其他方式可以搜索 FAISS 向量存储。通过转换为检索器进行查询
您也可以将向量存储转换为检索器,以便在链中更轻松地使用。用于检索增强生成
有关如何将此向量存储用于检索增强生成 (RAG) 的指南,请参阅以下部分:保存和加载
您也可以保存和加载 FAISS 索引。这很有用,这样您就不必每次使用时都重新创建它。合并
您也可以合并两个 FAISS 向量存储连接这些文档 到 Claude、VSCode 等,通过 MCP 获取实时答案。

