当前位置:   article > 正文

AIGC|如何将Milvus集成到LangFlow中?详细代码演示!_langflow集成milvus

langflow集成milvus

目录

一、基本介绍

二、修改langflow代码使其支持milvus

三、效果演示


langflow是一个LangChain UI,它提供了一种交互界面来使用LangChain,通过简单的拖拽即可搭建自己的实验、原型流。通过在langflow中引入Milvus,用户可以更方便地存储和查询高维向量数据

由于目前langflow的流程中不支持向量数据库Milvus,因此本文将介绍如何在langflow中引入Milvus。


一、基本介绍

LangFlow是一个基于Web的LangChain UI,它提供了一种交互界面来使用LangChain,通过简单的拖拽即可搭建自己的实验、原型流。

Milvus是一款向量数据库,它具备高可用、高性能、易拓展的特点,Milvus支持两种部署模式,单机模式(standalone)和分布式模式(cluster)。两种模式具备完全相同的能力,用户可以根据数据规模、访问量等因素选择适合自己的模式,本文主要使用Standalone模式部署 Milvus。

单机版 Milvus 包括三个组件:

  1. Milvus负责提供系统的核心功能。
  2. etcd是元数据引擎,用于管理Milvus内部组件的元数据访问和存储,例如:proxy、index node 等。
  3. MinIO 是存储引擎,负责维护 Milvus 的数据持久化

本文使用docker方式进行部署,访问地址:https://milvus.io/docs/attu_install-docker.md

进入milvus官网,在官网下载docker-compose.yml文件,如下图所示,点击下载即可

这里下载后的文件名为milvus-standalone-docker-compose.yml,需要把文件名改为docker-compose.yml,为了方便查看数据,这里还需要安装可视化组件,在docker-compose.yml的service块下添加如下内容

  1. attu:
  2. container_name: attu
  3. image: zilliz/attu:v2.2.3
  4. environment:
  5. MILVUS_URL: milvus-standalone:19530
  6. ports:
  7. - "8000:3000"
  8. depends_on:
  9. - "standalone"

完成以上步骤后,我们就可以启动Milvus相关服务,在docker-compose.yml的目录下输入指令:docker-compose up -d,执行成功后,通过docker ps可以看到有如下服务:

至此Milvus相关服务安装完成,访问8000端口可以进入可视化界面,如下图所示:

二、修改langflow代码使其支持milvus

首先在配置文件中增加milvus的配置,让其可以在前端页面组件中展示出来,如下图所示:

重新启动后可以在页面的Vector Stores中看到Milvus,接下来分析页面节点组件初始化过程,页面节点组件初始化接口如下所示:

执行node.build后进入build方法,build方法里面执行_build()方法进行组件初始化,初始化方法如下图所示:

进入instantiate_class方法执行import_by_type组件初始化,方法如下:

向量数据库会执行import_vectorstore方法,该方法返回的是对应组件的实例,代码如下所示:

由于该方法不能处理milvus数据库,所以在import_by_type增加milvus的初始化逻辑,新增代码如下图所示:

至此代码修改完毕。

三、效果演示

启动langflow前后端服务,访问前端服务界面如下所示:

点击import,选择PDF Loader为例演示,我们将其中的Chroma数据库改为milvus,并填入相关内容,如下图所示:

如上图所示所有组件都加载成功,并且数据都存入了milvus数据库中,如下图所示:

接下来可以进行问题提问,输入pdf中的内容what is langchain?

稍等片刻出现如下结果,验证正确

作者:程欢 | 高级后端开发工程师

版权声明:本文由神州数码云基地团队整理撰写,若转载请注明出处。

公众号搜索神州数码云基地,了解更多AI相关技术干货。

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号