通过阿里云 Milvus 和 LangChain 快速构建 LLM 问答系统
背景介绍
阿里云向量检索 Milvus 版是一款云上全托管服务,确保了与开源 Milvus 的 100%兼容性,并支持无缝迁移。在开源版本的基础上增强了可扩展性,能提供大规模 AI 向量数据的相似性检索服务。相比于自建,目前阿里云 Milvus 具备易用性、可用性、安全性、低成本与生态优势。凭借其开箱即用的特性、灵活的扩展能力和全链路监控告警,阿里云 Milvus 云服务成为多样化 AI 应用场景的理想选择,包括多模态搜索、检索增强生成(RAG)、搜索推荐、内容风险识别等。您还可以利用开源的 Attu 工具进行可视化操作,进一步促进应用的快速开发和部署。
本文介绍如何通过整合阿里云向量检索服务 Milvus 版、阿里云百炼 DashScope Embedding 模型与阿里云 PAI(EAS)模型服务,构建一个由 LLM(大型语言模型)驱动的问题解答应用,并着重演示了如何搭建基于这些技术的 RAG 对话系统。
前提条件
已创建 Milvus 实例。
进入阿里云 Milvus 页面(https://www.aliyun.com/product/milvus),登录阿里云 Milvus 控制台(https://milvus.console.aliyun.com/#/overview)。并在左侧导航栏,单击 Milvus 实例,并继续创建实例。
已开通 PAI(EAS)并创建了默认工作空间。
登录PAI控制台(https://pai.console.aliyun.com),在左上角选择需要开通的地域后,进行认证、授权并开通服务,待开通成功后,便可进入控制台进行 AI 开发。
已开通百炼服务并获得 API-KEY。
登陆阿里云百炼大模型服务平台(https://bailian.console.aliyun.com),在页面右上角的下拉菜单中单击API-KEY,进行创建。
使用限制
Milvus 实例和 PAI(EAS)须在相同地域下。
请确保您的运行环境中已安装 Python 3.8 或以上版本,以便顺利安装并使用 DashScope。
方案架构
该方案架构如下图所示,主要包含以下几个处理过程:
知识库预处理:您可以借助 LangChain SDK 对文本进行分割,作为 Embedding 模型的输入数据。
知识库存储:选定的 Embedding 模型(DashScope)负责将输入文本转换为向量,并将这些向量存入阿里云 Milvus 的向量数据库中。
向量相似性检索:Embedding 模型处理用户的查询输入,并将其向量化。随后,利用阿里云 Milvus 的索引功能来识别出相应的 Retrieved 文档集。
RAG(Retrieval-Augmented Generation)对话验证:您使用 LangChain SDK,并将相似性检索的结果作为上下文,将问题导入到 LLM 模型(本例中用的是阿里云 PAI EAS),以产生最终的回答。此外,结果可以通过将问题直接查询 LLM 模型得到的答案进行核实。
操作流程
步骤一:部署对话模型推理服务
进入模型在线服务页面。
在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。
在工作空间页面的左侧导航栏选择模型部署>模型在线服务(EAS),进入模型在线服务(EAS)页面。
在模型在线服务页面,单击部署服务。
在部署服务页面,选择大模型 RAG 对话系统。
在部署大模型 RAG 对话系统页面,配置以下关键参数,其余参数可使用默认配置,更多参数详情请参见大模型RAG对话系统(https://help.aliyun.com/zh/pai/user-guide/deploy-a-rag-based-dialogue-system)。
单击部署。
当服务状态变为运行中时,表示服务部署成功。
获取 VPC 地址调用的服务访问地址和 Token。
单击服务名称,进入概览页面。
在基本信息区域,单击查看调用信息。
在调用信息对话框的 VPC 地址调用页签,获取服务访问地址和 Token,并保存到本地。
步骤二:创建并执行 Python 文件
(可选)在 ECS 控制台创建并启动一个开通公网的 ECS 实例,用于运行 Python 文件,详情请参见通过控制台使用ECS实例(快捷版)(https://help.aliyun.com/zh/ecs/getting-started/create-and-manage-an-ecs-instance-by-using-the-ecs-console)。
您也可以在本地机器执行 Python 文件,具体请根据您的实际情况作出合适的选择。
执行以下命令,安装相关依赖库。
执行以下命令,创建
milvusr-llm.py
文件。
milvusr-llm.py
文件内容如下所示。
以下参数请根据实际环境替换。
执行以下命令运行文件。
返回如下类似信息。
相关信息
更多关于 Milvus 的介绍,请参见什么是向量检索服务Milvus版(https://help.aliyun.com/zh/milvus/product-overview/what-is-the-vector-retrieval-milvus-version)。
Milvus 最新动态:
预付费包年折扣:1 年 85 折、2 年 7 折、3 年 5 折;
产品动态:
如有疑问,可加入向量检索 Milvus 版用户交流钉群 59530004993 咨询。
评论