文章目录
- 前言
- 一、原型定义
- 二、代码解析
- 1、add_texts方法
- 1.1、应用样例
- 2、from_texts方法
- 2.1、应用样例
- 2.2、补充知识
- 3、similarity_search方法
- 3.1、应用样例
- 三、项目应用
- 1、安装依赖
- 2、引入依赖
- 3、创建对象
- 4、添加数据
- 5、查询数据
- 6、其它应用
- 写在结尾
前言
Facebook AI 相似性搜索 (FAISS
) 是一个用于高效相似性搜索和密集向量聚类的库。它包含在任意大小的向量集合中进行搜索的算法,甚至可以处理可能不适合 RAM 的向量。它还包括用于评估和参数调优的支持代码。
LangChain
在其langchain_community.vectorstores
包中实现了个FAISS
类,用来操作FAISS
向量数据库。
一、原型定义
上图可知,FAISS
类派生至VectorStore
类(LangChain中的向量数据库抽象基类-VectorStore),实现了其中的add_texts
、from_texts
和similarity_search
三个方法。
二、代码解析
查看FAISS
的代码,可知:
1、add_texts方法
add_texts
覆盖了父类中的同名方法,将参数中的文本数据通过嵌入模型向量化后,结合元数据一起保存到了FAISS
数据库中。
add_texts(self,texts: Iterable[str],metadatas: Optional[List[dict]] = None,ids: Optional[List[str]] = None,**kwargs: Any,
) -> List[str]
1.1、应用样例
vstore = FAISS(...)
vstore.add_texts(...)