LangChain中的向量数据库接口-Weaviate

文章目录

  • 前言
  • 一、原型定义
  • 二、代码解析
    • 1、add_texts方法
      • 1.1、应用样例
    • 2、from_texts方法
      • 2.1、应用样例
    • 3、similarity_search方法
      • 3.1、应用样例
  • 三、项目应用
    • 1、安装依赖
    • 2、引入依赖
    • 3、创建对象
    • 4、添加数据
    • 5、查询数据
  • 总结


前言

  Weaviate是一个开源的向量数据库,支持存储来自各类机器学习模型的数据对象和向量嵌入,并能无缝扩展至数十亿数据对象。它提供存储文档嵌入、内容和元数据的工具,以及搜索这些嵌入(包括元数据过滤)的功能。
  LangChain在其langchain_weaviate.vectorstores包中实现了个WeaviateVectorStore类,用来操作Weaviate向量数据库。虽然在langchain_community.vectorstores中也能看到Weaviate类的定义,但那已经被弃用了。

一、原型定义

LangChain中的向量数据库接口-Weaviate_第1张图片
  上图可知,WeaviateVectorStore类派生至VectorStore类(LangChain中的向量数据库抽象基类-VectorStore),实现了其中的add_textsfrom_textssimilarity_search三个方法。

二、代码解析

  查看WeaviateVectorStore类的代码:

1、add_texts方法

  add_texts覆盖了父类中的同名方法,将参数中的文本数据通过嵌入模型向量化后,包装参数一起保存到了Weaviate数据库中。

add_texts(
	self,
	texts: Iterable[str],
	metadatas: Optional[List[dict]] = None,
	tenant: Optional[str] = None,
	**kwargs: Any,
) -<

你可能感兴趣的:(langchain,数据库,经验分享,笔记,交互,人工智能,知识图谱)