通过阿里云Milvus和Dify平台构建RAG系统
本文为您介绍如何通过阿里云 Milvus 和 Dify 平台构建RAG系统。
背景信息
RAG原理介绍
大语言模型常因知识局限而产生”幻觉“。检索增强生成(RAG)技术通过连接外部知识库,有效解决了这一痛点。要实现高效的RAG,一个强大的向量数据库至关重要。
本文将聚焦于阿里云 Milvus,并借助低代码AI平台Dify,向您展示如何将二者无缝结合,快速搭建一个企业级的RAG应用,直观感受向量数据库在解决AI“最后一公里”问题上的核心价值。
关于Dify平台
Dify 是开源人工智能应用开发平台,具有低代码的工作流和友好的用户界面的特点,其核心使命是通过将”后端即服务“(Backend-as-a-Service)与”大语言模型运维“(LLMOps)的理念深度融合,来彻底简化和加速AI应用的构建全过程。
作为一个全栈式的解决方案,Dify 在后端层面,提供了稳定可靠的API服务、数据管理等基础设施,让开发者无需从零搭建;在 LLM 运维层面,提供了一个直观的可视化提示词编排界面,让复杂的提示工程变得简单高效。其内置的高质量检索增强生成(RAG)引擎,能够轻松连接企业文档、数据库等私有知识库,让大模型基于特定领域的知识进行回答,有效减少了信息幻觉,并确保答案的准确性和可追溯性。
前提条件
已创建阿里云Milvus实例。具体操作请参见快速创建Milvus实例。
已开通百炼服务并获得API-KEY。具体操作请参见获取APP ID和Workspace ID。
已安装Docker、Docker-Compose,具体操作请参见安装Docker。
操作流程
步骤一:安装Dify
请通过Git命令将开源Dify项目从GitHub克隆至本地。
git clone https://github.com/langgenius/dify.git
进入部署目录备份.env配置文件。
cd dify/docker/ cp .env.example .env
修改.env配置文件中以下配置信息。
# 向量存储引擎配置 VECTOR_STORE=milvus # 指定向量存储引擎为Milvus # Milvus连接信息 MILVUS_URI=http://YOUR_ALIYUN_MILVUS_ENDPOINT:19530 MILVUS_USER=YOUR_ALIYUN_MILVUS_USER MILVUS_PASSWORD=YOUR_ALIYUN_MILVUS_PASSWORD
本文示例涉及以下参数,请您根据实际环境替换。
参数
说明
MILVUS_URI
Milvus实例的访问地址,格式为
http://<公网地址>:<端口>
。<公网地址>
:您可以在Milvus实例的实例详情页面查看。<端口>
:您可以在Milvus实例的实例详情页面查看。默认为19530。
MILVUS_USER
配置为创建Milvus实例时,您自定义的用户名。
MILVUS_PASSWORD
配置为创建Milvus实例时,您自定义用户的密码。
启动Dify。
docker compose up -d --build
重要由于网络原因,可能会导致您拉取Docker Hub镜像变慢,甚至下载失败。您可以配置阿里云镜像加速器拉取镜像,详情请参见官方镜像加速。
在浏览器中访问
http://127.0.0.1/
地址,访问部署的Dify服务IP地址,设置管理员账号密码,并登录进管控台。说明如果是运行在远程服务器(例如,云服务器或虚拟机)上,则需要将
127.0.0.1
替换为服务器的公网IP地址或域名,并确保网络能够正常访问。
步骤二:设置模型
登录成功后,单击右上角头像,在下拉菜单中选择设置。
在左侧选择模型供应商,右侧选择通义千问安装。
模型安装成功后,选择设置API-KEY,将提前准备好的百炼平台API-KEY 输入。
请根据实际情况配置系统模型设置。
步骤三:创建知识库
单击上方的知识库,然后单击创建知识库。
数据源选择导入已有文本,您可以先单击阿里云Milvus简介下载示例数据,随后上传该示例数据。
修改相应参数,单击保存并处理。
本文示例修改以下参数:
分段最大长度:设置为1024。
Embedding 模型:选择text-embedding-v1。
执行完成后,即可看到知识库创建成功。
步骤四:验证向量检索是否成功
登录阿里云Milvus控制台,选择您配置的Milvus实例,单击右上角Attu Manager进入Attu页面,可以看到对应的Collection数据已导入。更多操作,请参见Attu工具管理。
步骤五:验证RAG效果
单击上方工作室回到首页,选择从应用模板中创建。
在搜索框中搜索并使用Knowledge Retreival + Chatbot模板。
在弹出的对话框中,单击创建。
选择Knowledge Retrieval节点,知识库设置为上面步骤中创建的知识库。
选择LLM节点,将模型设置为qwen-max。
单击右上角发布,选择单击发布更新。
单击运行,进入测试页面,输入一个与知识库内容相关的问题,即可获得相应的答案。