milvus安装及langchain调用

本文详细介绍了如何通过docker-compose安装Milvus分布式系统,并演示了如何利用LangChain库连接Milvus进行文本向量的存储和搜索。还涉及到了可视化界面attu的使用和实例代码。
摘要由CSDN通过智能技术生成

安装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)]
  • 10
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Langchain和Milvus都是基于人工智能技术的软件工具,具有不同的功能和应用场景。 Langchain是一种自然语言处理平台,旨在帮助用户应对语言交流的各种挑战。它提供了丰富的自然语言处理功能,包括文本翻译、智能问答、自动摘要、文本情感分析等。用户可以通过调用Langchain的API接口,将自己的文本数据传入平台,获得相应的语言处理结果。例如,用户可以将一段英文文本输入到Langchain中,获取这段文本的中文翻译结果。Langchain的目标是提供高质量、高效率的语言处理服务,帮助用户消除跨语言交流的障碍。 Milvus是一种面向向量相似度计算和相似查询的引擎。它专注于处理数值型数据,特别是向量类型的数据。Milvus为用户提供了快速、准确的向量相似度计算服务,可以应用于各种场景,例如图像搜索、推荐系统、数据聚类等。用户可以将自己的向量数据导入Milvus中,建立索引,并通过查询接口实现对向量之间的相似度计算和相似向量的检索。Milvus的目标是为用户提供高效、可扩展的向量计算和查询服务,辅助用户发现数据之间的关联和相似性。 总之,Langchain和Milvus是两种不同的人工智能软件工具,分别用于语言处理和向量计算。它们在各自的领域中提供高质量、高效率的服务,助力用户应对语言交流和数据处理的挑战。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江小皮不皮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值