本文详细介绍了使用Milvus搭建RAG服务的完整流程,包括云端数据库创建、Collection设计、字段添加、索引设置、数据插入与查询等关键步骤。作者结合实际经验分享了部署选择和操作技巧,并分析了RAG技术的适用场景,帮助开发者判断何时需要使用RAG技术。
使用 Milvus 快速搭建 RAG 服务
一、云端 or 本地
Milvus提供了本地部署的方式,也就是用 docker 去部署一个 Milvus 数据库,然后把你的数据存进去就可以实现检索。但是用 docker 部署太重了,你需要写很多代码去实现更新数据,插入数据,查询数据等操作,然后最后向外提供 api 接口。这个流程就要花费不少时间。
我们的首要目的是尽快搭建一个原型,RAG 的细节根本就不用去管,只有先做出来我们才会去考虑其他事情。因此,云端的免费的 Milvus 数据库就是我们的首要选择。
二、创建数据库
进入 zilliz 云,先完成基本的注册:https://cloud.zilliz.com/。注册成功后,按照里面的指引来,点击 create 创建一个 free 数据库。

设置一下名字,然后参数保持默认就行了,然后点击 create

然后稍等片刻,初始化需要一点时间。
三、创建 Collection
点击 Create Collection,创建一个 collection。

collection 你可以认为就是一张二维表,具有固定的列和变化的行。每列代表一个字段,每行代表一个实体。

接下来就是要填写 collection 的各种参数了。
四、添加字段
填写好 collection 名称后,我们首先要添加字段。
首先,我举一个例子,假如你是要做一个教材知识库,你拥有所有的高中地理教材,你对教材数据进行清理后,得到了如下的结构。

其中,id 是必须的,每个实体必须要有一个唯一的 id,book_name 是知识点对应的教材名,chapter,subsection 的意思分别是章和小节,source_type 和 source_name 不用管,这只是我这边项目的需求,然后 text 指的是对应的原文。
这个结构清晰的展示了每个知识点在教材库里的具体位置。
你做 RAG 的需求是:1. 我可以对 text 进行检索,比如搜索“人口分布的特点”,能够找到对应的原文片段。2. 我可以对 subsection_name 进行检索,这样我就能方便的找到小节的名称。
因此,你就必须要有两个字段,text_embedding 和 subsection_embedding,用于存储 text 和 subsection_name 向量化后的结果。
然后就是正式的添加字段了,Milvus 对于不同类型的字段的数据类型有要求,如果是 embedding 字段的话,就必须要用向量类型(Vector Fields),我们选择 FLOAT_VECTOR 就行了。

然后向量字段的 2048 指的是向量的维度,这个是根据实际情况来的,比如我用的是 Qwen 的 text-embedding-v4 作为 embedder,向量维度只能填下面的几个。

五、设置索引
我们必须要对 embedding 字段设置索引,加快检索速度。设置界面其实已经默认给你设置好了,用的是 AUTOINDEX,意思就是会根据你的实际情况,自动选择合适的索引类型。

其他保持默认,最后点击 create,成功创建
六、插入数据
插入数据有两种方法,一是直接在界面选择导入数据,我是导入 json 格式的,这种方法必须保证一下几点要求:
一是必须是一个实体一个实体的格式,例如我下面这种

二是字段名称必须和数据库里的名称一一对应,不能错,不能多也不能少。
三是 embedding 字段必须是已经生成好了的。这个需要单独先去处理,写一个脚本,调用阿里云百炼的 Embedding 模型或者其他模型,生成好实际的 embedding 向量

然后就能插入成功

第二种方法是写脚本,发送 post 请求,方法其实在里面就已经有介绍了,我就不多说了。

其实最简单的方法就是直接上传数据,因为如果你用第二种方法,就已经能够生成第一种方法需要的 json 数据了,没必要多此一举去发送 post 请求了。
七、查询数据
查询数据需要发送 post 请求过去,其中需要配置 token 和 endpoint。其他的请求参数可以去文档里面看,里面介绍的详细。
export TOKEN="db_admin:xxxxxxxxxxxxx"
curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/entities/search" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
"collectionName": "quick_setup",
"data": [
[
0.3580376395471989,
-0.6023495712049978,
0.18414012509913835,
-0.26286205330961354,
0.9029438446296592
]
],
"annsField": "vector",
"limit": 3,
"outputFields": [
"color"
]
}'
如何系统学习掌握AI大模型?
AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。
学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。
这里给大家精心整理了一份
全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享!

1. 成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。

2. 大模型经典PDF书籍
书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)

3. 大模型视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。

4. 大模型行业报告
行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

5. 大模型项目实战
学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

6. 大模型面试题
面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

全套的AI大模型学习资源已经整理打包,有需要的小伙伴可以
微信扫描下方优快云官方认证二维码,免费领取【保证100%免费】

零基础用Milvus搭建RAG服务
1131

被折叠的 条评论
为什么被折叠?



