在阿里云上,您可以通过人工智能平台PAI快速部署一个大模型RAG对话系统。通过AppFlow的集成,您可以将该对话系统集成到钉钉群聊或微信等各种场景中,让您随时随地使用您的专属机器人。本文将以钉钉群聊场景为例,为您介绍PAI RAG+AppFlow的部署方案。
方案概览
以使用PAI平台为开源项目EasyRec的知识库文档,搭建钉钉答疑机器人为例,介绍PAI RAG+AppFlow的部署方案。方案只需以下几步:
|
一、部署PAI RAG应用
首先您需要部署一个大模型RAG对话应用,用于实现AI助手。具体操作步骤如下:
登录PAI控制台,在页面上方选择目标地域,并在右侧选择目标工作空间,然后单击进入EAS。
在模型在线服务(EAS)页面,单击部署服务,然后在场景化模型部署区域,单击大模型RAG对话系统部署。
在部署大模型RAG对话系统页面,配置以下关键参数。
基本信息
参数
描述
服务名称
自定义服务名称,例如pai_rag_test1。
模型来源
本方案选择开源公共模型。
您也可以选择自持微调模型,但需提前准备好您的私有模型。通过分布式训练(DLC)完成模型训练后,您可以将模型训练结果导入阿里云对象存储OSS或文件存储NAS中,详情请参见在DLC训练任务中使用云存储。
模型类别
本方案选择Qwen1.5-1.8b。
资源配置
资源配置选择:选择模型类别后,系统会自动推荐适合的资源规格,无需您进行配置。如果更换至其他资源规格,可能会导致模型服务启动失败。
向量检索库设置
RAG支持通过Faiss(Facebook AI Similarity Search)、阿里云Elasticsearch、Milvus、Hologres、OpenSearch-向量检索版或RDS PostgreSQL构建向量检索库。本方案以FAISS为例,参数配置说明如下。您也可以选择使用其他向量检索库,如何准备向量检索库以及相关配置项,请参见步骤一:部署RAG服务。
参数
描述
版本类型
选择FAISS。
OSS地址
选择当前地域下已创建的OSS存储路径,用来存储上传的知识库文件。如果没有可选的存储路径,您可以参考控制台快速入门进行创建。
说明如果您选择使用自持微调模型部署服务,请确保所选的OSS存储路径不与自持微调模型所在的路径重复,以避免造成冲突。
参数配置完成后,单击部署。
查看PAI RAG应用服务Token。
在模型在线服务(EAS)页面,单击目标服务名称。
在基本信息区域单击查看调用信息,并在调用信息对话框的公网地址调用页签,获取Token。
二、创建钉钉应用
接下来,您需要按照以下操作步骤在您的组织中创建钉钉应用,作为AI助手回答用户问题。
创建钉钉应用需要您的钉钉账号有开发者权限。您可以联系您的组织管理员获取钉钉开放平台的开发权限,具体操作请参见获取开发者权限。
1、创建应用
访问钉钉开放平台,单击创建。如果创建过应用未展示应用开发指引,请单击立即开始进入钉钉应用页面。
在应用开发的左侧导航栏中,单击钉钉应用,在钉钉应用页面右上角单击创建应用。
在创建应用面板,填写应用名称和应用描述,上传应用图标,完成后单击保存。
2、查看应用Client ID和Client Secret
在左侧导航栏选择凭证与基础信息,复制Client ID和Client Secret,用于下一步创建连接流。
3、创建消息卡片
钉钉机器人通过卡片消息支持流式返回结果,您需要创建卡片模板供消息发送使用。
访问卡片平台,单击新建模板。
在创建模板输入框,填入模板信息。
在模拟编辑页面,保存并发布模板。然后单击返回模板列表页面。
复制模板ID,用于创建钉钉连接流时使用。
4、授予应用发送卡片消息权限
创建卡片后,您需要给应用授予发送卡片消息的权限。
访问钉钉应用列表。找到上述已创建的应用,单击应用名称进入详情页面。
在左侧导航栏选择
,在左侧搜索框分别输入Card.Streaming.Write
和Card.Instance.Write
,并在操作列单击申请权限。
三、创建AppFlow连接流
AppFlow可以让您在不写代码的情况下,通过界面配置就可以将PAI RAG应用和钉钉连接起来。您可以通过预置的AppFlow模板创建一个钉钉机器人连接流。
使用AppFlow模板创建连接流,单击立即使用进入创建流程。
在连接流的账户授权配置向导页,选择凭证并单击下一步。
为大模型RAG对话应用选择凭证:
单击前往授权,在创建凭证对话框中,填入您之前获取的PAI RAG应用服务Token,并设置一个凭证名称。
为钉钉应用机器人选择凭证:
单击前往授权,在创建凭证对话框中,填入您之前获取的钉钉应用的Client ID和Client Secret,并设置一个凭证名称。
在执行动作配置向导页,填写PAI RAG应用服务所在的region、workspaceId以及服务名称,并配置模板ID,参数配置完成后单击下一步。
在基本信息配置向导页,填写连接流名称和连接流描述(建议保持默认),完成后单击下一步。
界面提示流程配置成功,复制WebhookUrl,并单击发布。
四、配置钉钉机器人
有了webhook地址后,接下来您可以在钉钉应用中配置机器人来回答用户问题。
1、配置钉钉机器人
访问钉钉应用列表。找到刚刚创建的应用,单击应用名称进入详情页面。
在添加应用能力页面,找到机器人卡片,单击添加。
在机器人配置页面,打开机器人配置开关,您可以参考下图完成配置。消息接收模式请选择HTTP模式,消息接收地址填写上述已获取的WebhookUrl。然后单击发布。
重要消息接收模式请选择HTTP模式,目前AppFlow仅支持HTTP模式,选择Stream模式会导致无法返回消息。
2、发布应用版本
应用创建完成后,如果需要将应用供企业内其他用户使用,需要发布一个版本。
在左侧导航栏,选择
,然后在版本管理与发布页面,单击创建新版本。在版本详情页面,输入应用版本号和版本描述,并选择合适的应用可用范围,然后单击保存,并在弹框中单击直接发布。
3、测试机器人
您可以创建群聊或在已有群聊中添加机器人,并与机器人进行对话,体验其功能效果。
在钉钉群管理中添加机器人。
进入钉钉群群设置页面,单击机器人卡片区域,然后在机器人管理页面,单击添加机器人。
在机器人对话框的搜索文本框中输入您刚刚创建的机器人名称,并选中要添加的机器人。然后单击添加,完成后再单击完成添加。
在钉钉群中@机器人,进行交流互动。
五、为PAI RAG应用增加私有知识
以上传开源项目EasyRec的知识库文档为例,当您提出与EasyRec相关的问题时,能够获得更准确的回答。
登录PAI控制台,在页面上方选择目标地域,并在右侧选择目标工作空间,然后单击进入EAS。
在模型在线服务(EAS)页面,单击目标服务的服务方式列下的查看Web应用。
在Upload页签,上传知识库文件。例如source.zip,解压后通过Directory上传。
您可以在钉钉群中发送与EasyRec相关的问题,来检验机器人回答效果。