通过阿里云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)引擎,能够轻松连接企业文档、数据库等私有知识库,让大模型基于特定领域的知识进行回答,有效减少了信息幻觉,并确保答案的准确性和可追溯性。

前提条件

操作流程

步骤一:安装Dify

  1. 请通过Git命令将开源Dify项目从GitHub克隆至本地。

    git clone https://github.com/langgenius/dify.git
  2. 进入部署目录备份.env配置文件。

    cd dify/docker/
    cp .env.example .env
  3. 修改.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实例时,您自定义用户的密码。

  4. 启动Dify。

    docker compose up -d --build

    image

    重要

    由于网络原因,可能会导致您拉取Docker Hub镜像变慢,甚至下载失败。您可以配置阿里云镜像加速器拉取镜像,详情请参见官方镜像加速

  5. 在浏览器中访问http://127.0.0.1/地址,访问部署的Dify服务IP地址,设置管理员账号密码,并登录进管控台。

    说明

    如果是运行在远程服务器(例如,云服务器或虚拟机)上,则需要将127.0.0.1替换为服务器的公网IP地址或域名,并确保网络能够正常访问。

    image

步骤二:设置模型

  1. 登录成功后,单击右上角头像,在下拉菜单中选择设置

    image

  2. 在左侧选择模型供应商,右侧选择通义千问安装。

    023A4535-2EBE-40c3-B30F-C70D0C3C1518

  3. 模型安装成功后,选择设置API-KEY,将提前准备好的百炼平台API-KEY 输入。

    image

  4. 请根据实际情况配置系统模型设置

    image

步骤三:创建知识库

  1. 单击上方的知识库,然后单击创建知识库

    image

  2. 数据源选择导入已有文本,您可以先单击阿里云Milvus简介下载示例数据,随后上传该示例数据。

    image

  3. 修改相应参数,单击保存并处理

    image

    本文示例修改以下参数:

    • 分段最大长度:设置为1024。

    • Embedding 模型选择text-embedding-v1。

    执行完成后,即可看到知识库创建成功。

    image

步骤四:验证向量检索是否成功

登录阿里云Milvus控制台,选择您配置的Milvus实例,单击右上角Attu Manager进入Attu页面,可以看到对应的Collection数据已导入。更多操作,请参见Attu工具管理

image

步骤五:验证RAG效果

  1. 单击上方工作室回到首页,选择从应用模板中创建

    image

  2. 在搜索框中搜索并使用Knowledge Retreival + Chatbot模板。

    image

  3. 在弹出的对话框中,单击创建

    image

  4. 选择Knowledge Retrieval节点,知识库设置为上面步骤中创建的知识库。

    image

  5. 选择LLM节点,将模型设置为qwen-max。

    image

  6. 单击右上角发布,选择单击发布更新

    image

  7. 单击运行,进入测试页面,输入一个与知识库内容相关的问题,即可获得相应的答案。

    image