基于AppFlow集成钉钉与PAI RAG构建AI机器人指南

在阿里云上,您可以通过人工智能平台PAI快速部署一个大模型RAG对话系统。通过AppFlow的集成,您可以将该对话系统集成到钉钉群聊或微信等各种场景中,让您随时随地使用您的专属机器人。本文将以钉钉群聊场景为例,为您介绍PAI RAG+AppFlow的部署方案。

方案概览

以使用PAI平台为开源项目EasyRec知识库文档,搭建钉钉答疑机器人为例,介绍PAI RAG+AppFlow的部署方案。方案只需以下几步:

  1. 部署PAI RAG应用:通过PAI部署大模型RAG对话系统服务。

  2. 创建钉钉应用:创建一个钉钉应用,在您的钉钉组织中提供机器人问答服务。

  3. 创建AppFlow连接流:基于阿里云的AppFlow服务,在无需编写代码的情况下,完成钉钉机器人和PAI RAG应用的关联,最终实现用户在钉钉聊天中和RAG应用对话。

  4. 配置钉钉机器人:为钉钉应用配置机器人,添加到群聊中可以回答用户问题。

  5. PAI RAG应用增加私有知识:通过PAI RAG应用服务的WebUI页面上传您的知识库文件,可以使AI机器人掌握私有领域的信息,从而更有效地解答用户咨询,提升服务质量。

image

一、部署PAI RAG应用

首先您需要部署一个大模型RAG对话应用,用于实现AI助手。具体操作步骤如下:

  1. 登录PAI控制台,在页面上方选择目标地域,并在右侧选择目标工作空间,然后单击进入EAS

  2. 模型在线服务(EAS)页面,单击部署服务,然后在场景化模型部署区域,单击大模型RAG对话系统部署6eea7736f88e6ec8b3b900e4d028bb48

  3. 部署大模型RAG对话系统页面,配置以下关键参数。

    • 基本信息

      参数

      描述

      服务名称

      自定义服务名称,例如pai_rag_test1。

      模型来源

      本方案选择开源公共模型

      您也可以选择自持微调模型,但需提前准备好您的私有模型。通过分布式训练(DLC)完成模型训练后,您可以将模型训练结果导入阿里云对象存储OSS或文件存储NAS中,详情请参见DLC训练任务中使用云存储

      模型类别

      本方案选择Qwen1.5-1.8b

    • 资源配置

      资源配置选择:选择模型类别后,系统会自动推荐适合的资源规格,无需您进行配置。如果更换至其他资源规格,可能会导致模型服务启动失败。

    • 向量检索库设置

      RAG支持通过Faiss(Facebook AI Similarity Search)阿里云ElasticsearchMilvusHologresOpenSearch-向量检索版RDS PostgreSQL构建向量检索库。本方案以FAISS为例,参数配置说明如下。您也可以选择使用其他向量检索库,如何准备向量检索库以及相关配置项,请参见步骤一:部署RAG服务

      参数

      描述

      版本类型

      选择FAISS

      OSS

      选择当前地域下已创建的OSS存储路径,用来存储上传的知识库文件。如果没有可选的存储路径,您可以参考控制台快速入门进行创建。

      说明

      如果您选择使用自持微调模型部署服务,请确保所选的OSS存储路径不与自持微调模型所在的路径重复,以避免造成冲突。

  4. 参数配置完成后,单击部署

  5. 查看PAI RAG应用服务Token。

    1. 模型在线服务(EAS)页面,单击目标服务名称。

    2. 基本信息区域单击查看调用信息,并在调用信息对话框的公网地址调用页签,获取Tokenimage

二、创建钉钉应用

接下来,您需要按照以下操作步骤在您的组织中创建钉钉应用,作为AI助手回答用户问题。

重要

创建钉钉应用需要您的钉钉账号有开发者权限。您可以联系您的组织管理员获取钉钉开放平台的开发权限,具体操作请参见获取开发者权限

1、创建应用

  1. 访问钉钉开放平台,单击创建。如果创建过应用未展示应用开发指引,请单击立即开始进入钉钉应用页面。image

  2. 在应用开发的左侧导航栏中,单击钉钉应用,在钉钉应用页面右上角单击创建应用image

  3. 创建应用面板,填写应用名称应用描述,上传应用图标,完成后单击保存image

2、查看应用Client IDClient Secret

在左侧导航栏选择凭证与基础信息,复制Client IDClient Secret,用于下一步创建连接流。

image

3、创建消息卡片

钉钉机器人通过卡片消息支持流式返回结果,您需要创建卡片模板供消息发送使用。

  1. 访问卡片平台,单击新建模板image

  2. 在创建模板输入框,填入模板信息。image

  3. 在模拟编辑页面,保存发布模板。然后单击返回模板列表页面。image

  4. 复制模板ID,用于创建钉钉连接流时使用。image

4、授予应用发送卡片消息权限

创建卡片后,您需要给应用授予发送卡片消息的权限。

  1. 访问钉钉应用列表。找到上述已创建的应用,单击应用名称进入详情页面。

  2. 在左侧导航栏选择开发配置 > 权限管理,在左侧搜索框分别输入Card.Streaming.WriteCard.Instance.Write,并在操作列单击申请权限image

三、创建AppFlow连接流

AppFlow可以让您在不写代码的情况下,通过界面配置就可以将PAI RAG应用和钉钉连接起来。您可以通过预置的AppFlow模板创建一个钉钉机器人连接流。

  1. 使用AppFlow模板创建连接流,单击立即使用进入创建流程。image

  2. 在连接流的账户授权配置向导页,选择凭证并单击下一步

    • 为大模型RAG对话应用选择凭证:

      单击前往授权,在创建凭证对话框中,填入您之前获取的PAI RAG应用服务Token,并设置一个凭证名称。image

    • 为钉钉应用机器人选择凭证:

      单击前往授权,在创建凭证对话框中,填入您之前获取的钉钉应用的Client IDClient Secret,并设置一个凭证名称。image

  3. 执行动作配置向导页,填写PAI RAG应用服务所在的regionworkspaceId以及服务名称,并配置模板ID,参数配置完成后单击下一步image

  4. 基本信息配置向导页,填写连接流名称连接流描述(建议保持默认),完成后单击下一步

  5. 界面提示流程配置成功,复制WebhookUrl,并单击发布image

四、配置钉钉机器人

有了webhook地址后,接下来您可以在钉钉应用中配置机器人来回答用户问题。

1、配置钉钉机器人

  1. 访问钉钉应用列表。找到刚刚创建的应用,单击应用名称进入详情页面。

  2. 添加应用能力页面,找到机器人卡片,单击添加image

  3. 在机器人配置页面,打开机器人配置开关,您可以参考下图完成配置。消息接收模式请选择HTTP模式消息接收地址填写上述已获取的WebhookUrl。然后单击发布

    重要

    消息接收模式请选择HTTP模式,目前AppFlow仅支持HTTP模式,选择Stream模式会导致无法返回消息。

    image

2、发布应用版本

应用创建完成后,如果需要将应用供企业内其他用户使用,需要发布一个版本。

  1. 在左侧导航栏,选择应用发布 > 版本管理与发布,然后在版本管理与发布页面,单击创建新版本

  2. 版本详情页面,输入应用版本号版本描述,并选择合适的应用可用范围,然后单击保存,并在弹框中单击直接发布

3、测试机器人

您可以创建群聊或在已有群聊中添加机器人,并与机器人进行对话,体验其功能效果。image

  1. 在钉钉群管理中添加机器人。

    1. 进入钉钉群群设置页面,单击机器人卡片区域,然后在机器人管理页面,单击添加机器人

    2. 机器人对话框的搜索文本框中输入您刚刚创建的机器人名称,并选中要添加的机器人。然后单击添加,完成后再单击完成添加

  2. 在钉钉群中@机器人,进行交流互动。

五、为PAI RAG应用增加私有知识

以上传开源项目EasyRec知识库文档为例,当您提出与EasyRec相关的问题时,能够获得更准确的回答。

  1. 登录PAI控制台,在页面上方选择目标地域,并在右侧选择目标工作空间,然后单击进入EAS

  2. 模型在线服务(EAS)页面,单击目标服务的服务方式列下的查看Web应用

  3. Upload页签,上传知识库文件。例如source.zip,解压后通过Directory上传。c4e30a5ccc2c407d2594018a19ffdfbb

  4. 您可以在钉钉群中发送与EasyRec相关的问题,来检验机器人回答效果。image