首页 飞机号购买自助下单官网内容详情

使用Milvus搭配Ollama搭建RAG知识库

2026-03-14 2 飞机号购买网站

采用“先检索后生成”机制的RAG技术,正在对企业知识库的问答方式予以重塑,该技术切实有效地解决了大模型于专业领域存在因知识匮乏而产生的核心痛点,以及容易出现幻觉的核心痛点。

RAG的核心工作流程解析

检索增强生成的运作机制分成三个关键阶段,首先是数据准备阶段,在此阶段要把各类文档切割成小块,借助嵌入模型转化成向量后存入数据库,其次是检索阶段,当用户提出问题时,系统对该问题进行向量化,之后在数据库里搜寻最为相似的文本块,最后是生成阶段,大语言模型把检索到的上下文与原始问题相结合,进而生成有依据的准确回答。

这种“先进行查询而后作出回答”的封闭循环设计,致使AI的回答并非再是凭借不着边际的想象,而是基于外部信息检索的根基之上。自2023年起始,RAG已然成为企业搭建智能问答系统的优先选用架构,明显提高了AI应用的实用价值以及可信程度。

向量数据库Milvus的技术特点

有一款名为Milvus的数据库,它是专门针对高维向量数据而设计的,属于云原生数据库范畴,在RAG系统里,它担当着知识存储以及检索的关键角色,它能够支持把文本、图像这类非结构化数据转变为向量,并且是借助语义相似度来开展检索工作的,它解决了传统数据库在处理语义匹配方面存在的局限性问题。

Milvus运用对象存储(跟MinIO类似)来进行数据的持久化操作,MetaData由etcd管理,借助Pulsar或者Kafka去处理消息队列。它的核心优势在于依据高维向量对索引结构作了优化,对IVF、HNSW等算法予以支持来达成近似最近邻搜索,极大地提高了检索效率,与此同时还支持分片以及分布式部署。

Milvus的数据模型与术语映射

Milvus里,数据组织形式跟传统关系型数据库存在对应关联,数据库作为顶层逻辑单元,用以达成多租户隔离,集合类似关系库中的表,是存储实体的关键对象,集合模式规定了字段结构、数据类型等元信息。

段作为Milvus最小存储单元,其支持自动索引构建,官方所提供的Attu图形化管理工具(默认地址为http://localhost:8000),能让用户直观查看数据库架构,执行向量搜索以及管理数据,使得使用门槛大幅降低,借助WebUI(http://127.0.0.1:9091/webui)能够监控实例运行状态。

嵌入模型与生成模型的本地部署

RAG系统依靠两类核心模型,其中,嵌入模型承担着把文本转变为向量的职责,生成模型负责依据检索结果产出答案,本文选用阿里通义千问的qwen3 - embedding当作嵌入模型,选用qwen3.5作为生成模型,借助Ollama来实施本地化部署。

wget https://github.com/milvus-io/milvus/releases/download/v2.6.11/milvus-standalone-docker-compose.yml -O docker-compose.yml
sudo docker compose up -d
Creating milvus-etcd  ... done
Creating milvus-minio ... done
Creating milvus-standalone ... done

安装配置Ollama的过程,简洁又高效,仅需几行命令,就能完成模型下载,还能启动相关服务。其本地部署,保障了数据隐私,降低了API调用延迟,并且避免了对外部网络的依赖。在2025年发布的qwen 3系列模型,在语义理解方面针对中文有显著提升,在文本生成质量上同样有显著增进。

关系型与向量数据融合的实体设计

docker run -d --name milvus-attu \
  -p 8000:3000 \
  -e MILVUS_URL=localhost:19530 \
  zilliz/attu:v2.6

质量优异的RAG知识库,关键之处乃是结构化检索跟语义检索相互融合,关系型数据库承担着存储文档这个任务跟分块工作、业务实体元数据的存取,还有实体之间那种关联关系以及过滤字段的管理,向量数据库专门用来存储文本块的语义向量,达成相似度匹配。

系统因这种融合设计,得以同时借助结构化查询的精确性以及向量检索的语义理解能力。举例来说,在检索期间,能够先借由关系型条件去过滤租户、文档类型,之后于缩小的范围之内开展向量相似度搜索,如此一来,既能确保检索准确率,又可提升查询效率。

RAG关键代码实现与交互流程

以SpringAI框架为依托,要将RAG组件与之进行集成,那就得引入与之对应的Maven依赖,其中涵盖了milvus-sdk-java、spring-ai-milvus-store等等。而知识数据朝着向量化转变并入库的关键核心流程是这样的:当文档完成加载之后,依据固定的大小划分成一个个块,借助嵌入模型把这些块转换成为向量形态,最终再写入到Milvus集合里面。

admin@Mac-miniM4 milvus % ollama list
NAME                                ID              SIZE      MODIFIED    
qwen3.5:2b                          324d162be6ca    2.7 GB    3 hours ago    
qwen3-embedding:0.6b                ac6da0dfba84    639 MB    4 hours ago    

在检索阶段,会将问题进行向量化,之后在Milvus当中执行相似度搜索,进而返回最为相关的Top-K文本块。完整的知识库系统,能够支持文档新建,支持文档管理,支持向量化触发,还支持相似度检索的可视化操作,最终形成了从数据接入直至智能问答的完整闭环。

于构建企业知识库之际,是以更着重检索的精准程度,还是生成回应的自然状态呢?欢迎于评论区域分享你的实践体会,点赞并收藏此文章,使得更多开发者知悉RAG技术的落地路径。

相关标签: # RAG # Milvus # 向量数据库 # Ollama # 知识库