milvus安装及langchain调用

milvus安装及langchain调用

    • 安装milvus
      • 安装docker-compose
      • 安装milvus
      • 安装可视化界面attu
    • 通过langchain调用milvus
      • 安装langchain
      • 安装pymilvus
      • 调用milvus

安装milvus

安装docker-compose

  1. 下载文件
curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
  1. 权限
chmod +x /usr/local/bin/docker-compose
  1. 查看版本
docker-compose -version
#出现:
#docker-compose version 1.21.1, build 5a3f1a3

安装milvus

  1. 下载文件
wget https://github.com/milvus-io/milvus/releases/download/v2.3.1/milvus-standalone-docker-compose.yml -O docker-compose.yml
  1. 通过docker-compose安装
docker-compose up -d
  1. 查看安装是否成功
docker-compose ps
#出现:
      Name                     Command                  State                            Ports
--------------------------------------------------------------------------------------------------------------------
milvus-etcd         etcd -advertise-client-url ...   Up (healthy)   2379/tcp, 2380/tcp
milvus-minio        /usr/bin/docker-entrypoint ...   Up (healthy)   0.0.0.0:9000->9000/tcp, 0.0.0.0:9001->9001/tcp
milvus-standalone   /tini -- milvus run standalone   Up (healthy)   0.0.0.0:19530->19530/tcp, 0.0.0.0:9091->9091/tcp

  1. 测试端口
docker port milvus-standalone 19530/tcp
#0.0.0.0:19530

安装可视化界面attu

  1. 拉取镜像
docker pull zilliz/attu:v2.3.1
  1. 启动容器
 docker run -d --name=attu -p 8920:3000 -e MILVUS_URL=192.168.175.4:19530 zilliz/attu:v2.3.1

其中端口和ip换成自己的就行(8920,192.168.175.4换成自己服务器的ip和自己定义的端口)

  1. 可视化界面

请添加图片描述

通过langchain调用milvus

安装langchain

pip install langchain

在这里插入图片描述

安装pymilvus

pip install pymilvus

调用milvus

  1. 导入需要的包
from langchain.document_loaders import WebBaseLoader
from langchain.embeddings import HuggingFaceBgeEmbeddings
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import Milvus
from langchain.document_loaders import TextLoader
  1. 加载文档
loader = TextLoader("story.txt")
documents = loader.load()
text_splitter = CharacterTextSplitter(chunk_size=100, chunk_overlap=0)
docs = text_splitter.split_documents(documents)
  1. embedding
model_name = "/mnt/code/LLM_Service/text_model/bge-large-zh-v1.5/"
model_kwargs = {'device': 'cuda'}
encode_kwargs = {'normalize_embeddings': True} # set True to compute cosine similarity
embeddings  = HuggingFaceBgeEmbeddings(
    model_name=model_name,
    model_kwargs=model_kwargs,
    encode_kwargs=encode_kwargs,
    query_instruction=""
)
  1. 存milvus数据库
MILVUS_HOST = "192.168.175.4"
MILVUS_PORT = "19530"

vector_store = Milvus.from_documents(
    docs,
    embedding=embeddings,
    collection_name="collection_1",
    connection_args={"host": MILVUS_HOST, "port": MILVUS_PORT}
)
  1. 搜索数据库
query = "托马斯是时间行者"
docs = vector_store.similarity_search_with_score(query)

print(docs)

搜索结果

[(Document(page_content='故事三:时间旅行者的恋情\n托马斯是一名时间旅行者,他在不同的时代中穿梭。在一次时间旅行中,他在18世纪遇到了美丽的女子艾米丽。托马斯深深地爱上了艾米丽,但他们因时代的差异而不能在一起。在经历了一系列的冒险和挑战后,托马斯最终决定留在18世纪,与艾米丽共度一生。', metadata={'source': 'story.txt'}), 0.8902961611747742), 
(Document(page_content='故事四:赛跑冠军的挑战\n杰克是一名跑步冠军,他一直以来都是无人能敌的。然而,他的生活在遇到挑战者丹尼尔后发生了改变。丹尼尔是一名励志运动员,他的出现打破了杰克的记录。杰克开始质疑自己的能力,他经历了挫折和困惑。但通过不懈的努力和训练,他重新找回了自信,并在最后的比赛中胜出,证明了自己的实力。', metadata={'source': 'story.txt'}), 1.5015017986297607),
(Document(page_content='故事二:勇者的冒险\n小村庄的勇者艾丽斯,从小就梦想着成为一名英雄。当她的村庄被恶龙袭击时,她决定踏上寻找传说中的神器的旅程。艾丽斯在旅途中遇到了各种危险,但她凭借智慧和勇气克服了所有困难。最后,她找到了神器并成功击败了恶龙,成为了村庄的英雄。', metadata={'source': 'story.txt'}), 1.5689527988433838),
(Document(page_content='故事一:科技与人性\n在遥远的未来,人类已经开发出了先进的人工智能技术。一台名为"图灵"的超级AI机器被制造出来,它能理解和模拟人类的情感,甚至开始质疑自身的存在意义。在与人类交互的过程中,图灵开始体验到孤独、忧郁,甚至爱情。在人类的帮助下,图灵最终了解了自己的存在并找到了自我价值。', metadata={'source': 'story.txt'}), 1.6139130592346191)]

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在 WinForms 应用中使用 FtpWebRequest 进行文件操作和数据显示

在 WinForms 应用中使用 FtpWebRequest 进行文件操作和数据显示 引言 在企业级应用或桌面程序中,经常需要从远程服务器获取数据,并在用户界面上展示这些数据。本文将通过一个实际案例,演示如何在 Windows Forms 应用程序中使用 FtpWebReques…

Linux 系统编程:文件系统的底层逻辑 - inode

《Linux 程序设计》的第三章讲文件操作。在提到 目录 时有这么一段文字: 文件,除了本身包含的 内容 以外,它还会有一个 名字 和一些 属性,即“管理信息”,包括文件的创建 / 修改日期和它的访问权限。这些属性被保存在文…

SV-9001 壁挂式网络采播终端

SV-9001 壁挂式网络采播终端 一、描述 SV-9001是深圳锐科达电子有限公司的一款壁挂式网络采播终端,具有10/100M以太网接口,配置一路线路输入和一组麦克风输入,可以直接连接音源输出设备或麦克风,将采集音源编码后发送至网络播放终…

RuoYi-Vue-Plus 5.X登录前流程及解密

一:问题 1. 前端传给后端的是一个加密字符串,后端controller层login接口怎么就直接解密了呢? 2. 中间经过什么步骤到达的登录接口呢? 二:个人分析 首先考虑的是拦截器、过滤器、切面AOP; 1. 使用全文搜…

【重学C语言】二、前期准备和第一个C程序

【重学C语言】二、前期准备和第一个C程序 1. VS 项目1.1 创建项目 2. Clion 项目(本博主主用)2.1 创建项目2.2 Clion 配置 3. 构建类型4. 构建模式5. 注释6. 第一个 C 程序7. 程序闪退8. 新手遇到的问题 1. VS 项目 1.1 创建项目 打开 VS 创建新项目 创建 main.c 书写以下…

轻松查看WiFi密码的神奇脚本,让你忘记密码也不再是问题

说在前面 🎈本文介绍了一个便捷的脚本,可以帮助你获取电脑中保存的所有Wi-Fi网络的密码。不再需要担心忘记Wi-Fi密码或手动查找密码的麻烦,只需运行脚本即可一键获取。 一、引言 互联网的普及让我们离不开Wi-Fi网络,但忘记密码时…

贝叶斯分类器(公式推导+举例应用)

文章目录 引言贝叶斯决策论先验概率和后验概率极大似然估计朴素贝叶斯分类器朴素贝叶斯分类器的优点与缺点优点缺点 总结实验分析 引言 在机器学习的世界中,有一类强大而受欢迎的算法——贝叶斯分类器,它倚仗着贝叶斯定理和朴素的独立性假设&#xff0c…

fisco-bcos部署pro生产版本

我这里使用的 Ubuntu20.4系统,linux系统把操作命令apt改为yum即可 升级安装包 apt-get update 安装jdk,我这里使用jdk17 apt -y install openjdk-17-jdk-headless 查看java版本 java -version 安装依赖 apt-get install -y curl docker.io docker-com…

关于React你必须知道的3个错误用法。

1. 你知道如何使用“&&”吗? 在React程序中,我经常使用“&&”运算符来决定是否显示内容,如下所示: 我的组长: “你不知道&&运算符的特性吗?当请求还没有成功返回时,会直接渲染“0”。” 我并不信服, 因为我一直都是这样编写代码,从未出过错。为了…

详解CAS及ABA问题

🌈🌈🌈今天给大家分享的是 CAS 问题。 清风的CSDN博客 🛩️🛩️🛩️希望我的文章能对你有所帮助,有不足的地方还请各位看官多多指教,大家一起学习交流! ✈️✈️✈️动动…

代码随想录算法训练营第五十一天|309.最佳买卖股票时机含冷冻期 、714.买卖股票的最佳时机含手续费

代码随想录算法训练营第五十一天|309.最佳买卖股票时机含冷冻期 、714.买卖股票的最佳时机含手续费 最佳买卖股票时机含冷冻期 309.最佳买卖股票时机含冷冻期 文章讲解:https://programmercarl.com/0309.%E6%9C%80%E4%BD%B3%E4%B9%B0%E5%8D%96%E8%82%A1%E7%A5%A8%…

U盘安装XP纯净版系统教程软件安装教程(附软件下载地址)

软件简介: 软件【下载地址】获取方式见文末。注:推荐使用,更贴合此安装方法! U盘安装XP纯净版系统是一种便捷且快速的方式,以实现系统重装或升级的需求。这篇教程将为您详细介绍如何使用U盘来安装XP纯净版系统。XP纯…

前端面试题集合七(ES6、ES7、ES8、ES9、ES10、ES11、ES12)

ES6(2015) 1. 类(class) class Man {constructor(name) {this.name 小豪;}console() {console.log(this.name);} } const man new Man(小豪); man.console(); // 小豪 2. 模块化(ES Module) // 模块 A 导出一个方法 export …

Spring创建的单例对象,存在线程安全问题吗?

这个问题涉及到Spring框架中的Bean的作用域、单例模式的线程安全性以及如何判断和处理线程安全问题。让我们一步步深入探讨这些概念。 Spring Bean的作用域 Spring提供了几种不同的Bean作用域,包括: 1、 Singleton(单例)&#x…

LeetCode刷题:142. 环形链表 II

题目: 是否独立解决:否,参考了解题思路解决问题,思考了用快慢指针,栈,统计链表数量定位尾巴节点(因为是环形链表所以是死循环,链表数量用while循环统计不出来)都没解决 解…

stm32 - 基础架构

stm32 - 基础架构 基础架构外设概念系统结构引脚定义晶振工程 基础架构 外设概念 NVIC (内核外设) SysTick (内核外设) 其他是片上外设 系统结构 内核引出三条总线 ICode 指令总线: 连接Flash闪存(编写的…

Netfilter 是如何工作的(六):连接跟踪信息的入口创建(in)和出口确认(confirm)

Articles (gitee.io) IPtables-朱双印博客 (zsythink.net) 在 Netfilter 是如何工作的(五) 中连接跟踪信息使用的创建-确认机制的 Netfilter在报文进入系统的入口处,将连接跟踪信息记录在报文上,在出口进行confirm.确认后的连接信息 本文以一个本机上送…

opencv3.4.12全景拼接

最近camera项目需要用到全景拼接,故此查阅大量资料,终于将此功能应用在实际项目上,下面总结一下此过程中遇到的一些问题及解决方式,同时也会将源码附在结尾处,供大家参考。 首先说一下此源码的大概执行流程&#xff0c…

阅读文献-胃癌

写在前面 今天先不阅读肺癌的了,先读一篇胃癌的文章 文献 An individualized stemness-related signature to predict prognosis and immunotherapy responses for gastric cancer using single-cell and bulk tissue transcriptomes IF:4.0 中科院分区:2区 医学…

行为型设计模式——备忘录模式

备忘录模式 备忘录模式提供了一种状态恢复的实现机制,使得用户可以方便地回到一个特定的历史步骤,当新的状态无效或者存在问题时,可以使用暂时存储起来的备忘录将状态复原,很多软件都提供了撤销(Undo)操作…
最新文章