大数跨境
0
0

AIGC|如何将Milvus集成到LangFlow中?一篇文章教会你!

AIGC|如何将Milvus集成到LangFlow中?一篇文章教会你! AI实践工程院
2023-11-10
1
导读:一次强强联合的实践

本期摘要

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


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


 分享者 

程欢 | 高级后端开发工程师

一名热爱生活,热爱学习的IT从业者



01

基本介绍


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块下添加如下内容


attu:
    container_name: attu
    image: zilliz/attu:v2.2.3
    environment:
      MILVUS_URL: milvus-standalone:19530
    ports:
      - "8000:3000"
    depends_on:
      - "standalone"


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



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




03

修改langflow代码使其支持milvus


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



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



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



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



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



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



至此代码修改完毕。



04

效果演示


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



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



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



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




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





Hello~

这里是神州数码云基地
编程大法,技术前沿,尽在其中
超多原创技术干货持续输出ing~


想要第一时间获取
超硬技术干货
快快点击关注+设为星标


拜托拜托啦

这对“我们”都很重要哦~


- END -



往期精选




一键解锁Jira和Azure OpenAl集成




今年的头号种子选手“AIGC”究竟是什么?




如何利用MYSCALE实现高效图像搜索?



了解云基地,就现在!


【声明】内容源于网络
0
0
AI实践工程院
我们致力于用数字技术重构企业价值,助力企业实现数字化转型升级。
内容 434
粉丝 0
AI实践工程院 我们致力于用数字技术重构企业价值,助力企业实现数字化转型升级。
总阅读8
粉丝0
内容434