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

目录

一、基本介绍

二、修改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块下添加如下内容

attu:container_name: attuimage: zilliz/attu:v2.2.3environment:MILVUS_URL: milvus-standalone:19530ports:- "8000:3000"depends_on:- "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相关技术干货。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/190731.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java 进阶篇】JQuery DOM操作:通用属性操作的绝妙魔法

在前端的舞台上,JQuery犹如一位魔法师,为我们展现了操纵HTML元素的奇妙技巧。而在这个技巧的精妙组成中,通用属性操作是一门绝妙的魔法。在本篇博客中,我们将深入研究JQuery DOM操作中的通用属性操作,揭示这段魔法的神…

业务出海之服务器探秘

这几年随着国内互联网市场的逐渐饱和,越来越多的公司加入到出海的行列,很多领域都取得了很不错的成就。虽然出海可以获得更加广阔的市场,但也需要面对很多之前在国内可能没有重视的一些问题。集中在海外服务器的选择维度上就有很大的变化。例…

“第六十七天”

各位,昨天查找子串的方法想起来了,就是那个KMP算法......自己理解都有点困难,还看看能不能想一下,确实很困难啊。 不要忘了toupper函数和tolower函数不是直接改变字符的大小写,而是返回对应的大小写的值,需…

2023nacos源码解读第2集——nacos-server的启动

nacos 是一个典型的server-client中间件,server这里安装最新的nacos-server 2.3.0-BETA版本 1.docker启动nacos-server 镜像详情参考nacos-docker项目的readme ,很方便,但是官方提供的nacos-server镜像往往可能滞后,且不便于后续…

Libhybris之线程局部存储TLS实例(五)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

【STM32 CAN】STM32G47x 单片机FDCAN作为普通CAN外设使用教程

STM32G47x 单片机FDCAN作为普通CAN外设使用教程 控制器局域网总线(CAN,Controller Area Network)是一种用于实时应用的串行通讯协议总线,它可以使用双绞线来传输信号,是世界上应用最广泛的现场总线之一。CAN协议用于汽…

Apache Druid连接回收引发的血案

问题 线上执行大批量定时任务,发现SQL执行失败的报错: CommunicationsException, druid version 1.1.10, jdbcUrl : jdbc:mysql://xxx?useUnicodetrue&characterEncodingUTF-8&zeroDateTimeBehaviorconvertToNull,testWhileIdle true, idle …

Java事务详解

一、事务的理解: 1、事务的特性: 1) 原子性(atomicity):事务是数据库的逻辑工作单位,而且是必须是原子工作单位,对于其数据修改,要么全部执行,要么全部不执行。 2) 一致性…

Vatee万腾外汇数字化策略:Vatee科技决策力的未来引领

在外汇市场,Vatee万腾通过其前瞻性的外汇数字化策略,正引领着科技决策的未来。这一数字化策略的崭新愿景为投资者提供了更智慧、更高效的外汇投资体验,成为科技决策领域的翘楚。 Vatee万腾的外汇数字化策略是科技决策力未来引领的典范。通过运…

消息队列之初识Rabbit及安装

文章目录 一、MQ的相关概念1.什么是MQ?2.为什么要用MQ2.1流量消峰2.2应用解耦2.3异步处理 3.MQ 的分类3.1.ActiveMQ3.2.Kafka3.3.RocketMQ3.4.RabbitMQ 4.MQ 的选择4.1.Kafka4.2.RocketMQ4.3.RabbitMQ 二、RabbitMQ的相关概念1.四大核心概念2.RabbitMQ 核心部分3.Ra…

游戏AI:游戏开发和运营的新增长点

游戏AI(Game AI)是指在游戏开发运营的过程中模拟人类玩家或创建虚构性对手行为的人工智能技术。游戏AI的目标是增强游戏的互动性、可玩性和挑战性,使游戏中的角色能够智能地做出决策和行为。在游戏的开发和运营过程中使用人工智能技术&#x…

caffe搭建squeezenet网络的整套工程

之前用pytorch构建了squeezenet,个人觉得pytorch是最好用的,但是有的工程就是需要caffe结构的,所以本篇也用caffe构建一个squeezenet网络。 数据处理 首先要对数据进行处理,跟pytorch不同,pytorch读取数据只需要给数据…

【C++】类和对象(2)--构造函数

目录 一 概念 二 构造函数特性 三 默认构造函数 一 概念 对于以下Date类&#xff1a; class Date { public:void Init(int year, int month, int day){_year year;_month month;_day day;}void Print(){cout << _year << "-" << _month <…

Qt贝塞尔曲线

目录 引言核心代码基本表达绘制曲线使用QEasingCurve 完整代码 引言 贝塞尔曲线客户端开发中常见的过渡效果&#xff0c;如界面的淡入淡出、数值变化、颜色变化等等。为了能够更深的了解地理解贝塞尔曲线&#xff0c;本文通过Demo将贝塞尔曲线绘制出来&#xff0c;如下所示&am…

DevChat:开发者专属的基于IDE插件化编程协助工具

DevChat&#xff1a;开发者专属的基于IDE插件化编程协助工具 一、DevChat 的介绍1.1 DevChat 简介1.2 DevChat 优势 二、DevChat 在 VSCode 上的使用2.1 安装 DevChat2.2 注册 DevChat2.3 使用 DevChat 三、DevChat 的实战四、总结 一、DevChat 的介绍 在AI浪潮的席卷下&#x…

基于开源项目OCR做一个探究(chineseocr_lite)

背景&#xff1a;基于图片识别的技术有很多&#xff0c;应用与各行各业&#xff0c;我们公司围绕电子身份证识别自动录入需求开展&#xff0c;以下是我的研究心得 技术栈&#xff1a;python3.6&#xff0c;chineseocr_lite的onnx推理 环境部署&#xff1a;直接上截图&#xff…

c语言-数据结构-栈和队列的实现和解析

目录 一、栈 1、栈的概念 1.2 栈的结构 2、栈的创建及初始化 3、压栈操作 4、出栈操作 5、显示栈顶元素 6、显示栈空间内元素的总个数 7、释放栈空间 8、测试栈 二、队列 1、队列的概念 1.2 队列的结构 2、队列的创建及初始化 3、入队 4、出队 5、显示队头、队…

在Spring Boot中使用JTA实现对多数据源的事务管理

了解事务的都知道&#xff0c;在我们日常开发中单单靠事务管理就可以解决绝大多数问题了&#xff0c;但是为啥还要提出JTA这个玩意呢&#xff0c;到底JTA是什么呢&#xff1f;他又是具体来解决啥问题的呢&#xff1f; JTA JTA&#xff08;Java Transaction API&#xff09;是…

CG Magic分享效果图中VRay的灯光设置分析

效果图制作中&#xff0c;一张图VRay效果图好不好看主要看灯光、材质、模型、相机、后期这五点。VRay的灯光设置来说是极为重要的。 VRay灯光设置不好&#xff0c;就会出现vray灯光颜色不能正常显示再或是vray的灯光不亮的问题。 vray的灯光怎么设置才能使效果图展现的更加真实…

LabVIEW中如何在网络上使用远程VI服务器

LabVIEW中如何在网络上使用远程VI服务器 如何在网络上使用远程VI服务器&#xff1f; 解答: 首先&#xff0c;需要在远程的计算机上打开一个在VI服务器上的LabVIEW应用程序的引用。这可以通过“Open ApplicationReference“函数实现。然后用“Open VI Reference”函数打开一个…