基于AppFlow集成企业微信与PAI RAG构建AI助手

更新时间:
复制 MD 格式

通过PAI部署RAG对话系统,再借助AppFlow无代码配置,即可将AI助手接入企业微信。本文以企业微信为例介绍完整部署方案。

方案概览

以基于开源项目EasyRec知识库文档搭建AI助手为例,介绍PAI RAG+AppFlow的部署方案。方案只需以下几步:

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

  2. 创建企业微信应用:创建一个企业微信应用,为您的企业微信组织提供问答服务。

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

  4. 配置企业微信应用:为企业微信应用配置接收消息,即可在聊天中回答用户问题。

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

image

1. 部署PAI RAG应用

部署一个大模型RAG对话应用,作为AI助手的后端服务。

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

  2. 推理服务页签,单击部署服务,然后在场景化模型部署区域,单击大模型RAG对话系统部署

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

    • 基本信息

      参数

      描述

      服务名称

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

      版本选择

      本方案选择LLM一体化部署

      模型类别

      本方案选择Qwen3.5-2B

    • 资源信息

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

    • 向量检索库设置

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

      参数

      描述

      版本类型

      选择FAISS

      OSS地址

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

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

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

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

    2. 基本信息区域单击查看调用信息,然后在调用信息对话框获取Token

2. 创建企业微信应用

接下来您需要在您的组织中创建应用,作为 AI 助手回答用户问题。

2.1创建应用

  1. 访问企业微信开发者中心,扫码登录,点击立即创建。根据指引选择以企业身份创建企业内部应用

  2. 在顶部导航栏中,选择应用管理,在应用页面下半部分点击创建应用

  3. 创建应用页面,填写应用名称应用介绍,上传应用 logo,选择可见范围,完成后点击创建应用

2.2获取企业ID、应用AgentIdSecret

  1. 在应用详情页面,复制 AgentID和 Secret,用于下一步创建连接流。

  2. 在顶部导航栏中,选择我的企业,在企业信息页面,复制企业 ID,用于下一步创建连接流。

3. 创建企业微信连接流

AppFlow无需编写代码,通过界面配置即可将PAI RAG应用与企业微信连接。使用预置模板可快速创建企业微信连接流。

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

  2. 在连接流的账户授权配置向导页,在选择凭证下拉列表中单击添加新凭证。然后在创建凭证对话框中,填入之前获取的企业微信的企业ID,应用的AgentIdSecret,单击刷新按钮生成TokenEncodingAESKey,并设置一个自定义凭证名称。同时复制保存IP白名单,用于下一步配置IP白名单。

  3. 在连接流的账户授权配置向导页,在选择凭证下拉列表中单击添加新凭证。在创建凭证对话框中,填入步骤1获取的RAG应用Token,并设置一个自定义凭证名称。

  4. 执行动作配置向导页,填写PAI RAG应用服务所在的regionworkspaceId服务名称,完成后单击下一步

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

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

4. 配置企业微信应用

获取 Webhook 地址后,在企业微信应用中配置接收消息来回答用户问题。

4.1配置企业微信应用

  1. 访问企业微信应用列表。找到刚刚创建的应用,点击应用名称进入详情页面。

  2. 在应用详情页面,找到接收消息卡片,点击设置API接收

  3. API接收消息页面,您可以参考以下说明完成配置,然后点击保存

    选择需要接收的消息事件类型 区域,勾选以下事件:用户发送的普通消息自定义菜单操作审批状态通知事件外部联系人变更回调微信客服消息和事件支付和退款通知上下游变更回调直播状态变更回调会议室预定状态变更回调成员申请高级功能状态通知;不勾选 上报地理位置上报进入应用事件

    • URL填入上一步复制的 WebhookUrl

      如果之前未保存WebhookUrl,可访问AppFlow连接流页面,在操作列点击webhookUrl进行查看。

    • Token EncodingAESKey 填入上一步复制的值。

      如果之前未保存,可访问AppFlow连接凭证页面,在公共连接器 > 企业微信中,找到刚刚配置的凭证,点击操作列的编辑从凭证中获取。

    如果域名主体校验未通过,请参考域名主体校验未通过怎么办?进行处理。

4.2配置IP白名单

  1. 在应用详情页面,在页面下方开发者接口找到企业可信IP卡片,点击配置

  2. 在企业可信IP对话框,粘贴复制的 IP 地址,然后点击确定

4.3测试应用

您可以在企业微信中搜索应用并发送消息,查看效果。

  1. 在企业微信顶部搜索框搜索应用名称,单击应用进入聊天。

  2. 与应用对话,进行交流互动。

5. 为PAI RAG应用增加私有知识

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

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

  2. 模型在线服务(EAS)页面,单击目标RAG服务,然后在页面右上角单击查看Web应用,按照操作指引进入WebUI页面。

  3. 知识库页签的文件管理Tab页上传知识库文件(例如source.zip)。上传知识库文件的具体操作方法,请参见上传知识库文件

  4. 您可以在企业微信中发送与EasyRec相关的问题,来验证企业微信AI助手回答效果。例如发送"easyrec是什么",EasyRecBot回复关于EasyRec推荐系统框架的介绍,包含组件化设计快速迭代和验证等关键点的说明。

常见问题

域名主体校验未通过怎么办?

当您在企业微信后台配置 API 接收消息时,报错提示“域名主体校验未通过,需配置备案主体与当前企业主体相同或有关联关系的域名”。这通常是由于企业微信的相关限制所引起的。为解决此问题,您需要配置一个企业自有域名。

  • 如果您的域名已在阿里云备案,您可以参考如下步骤创建一个二级域名作为企业自有域名。

    1. 访问AppFlow域名管理页面,单击添加域名按钮,进入添加域名页面,填入可用的二级域名,如airobot.example.com

      设置HTTPS 步骤中选择 禁用,完成后系统在 添加DNS记录 步骤生成一条 CNAME 记录值(格式为 xxx.appflow.aliyunnest.com),需将该记录配置到域名的 DNS 解析中。

    2. 参考CNAME 记录,将该二级域名解析到上一步的记录值

    3. 解析配置完成后,返回添加域名页面,点击提交

    4. 使用该二级域名替换API接收消息URL(即已经填写的WebhookUrl)中的主机名。

  • 如果您的域名没有在阿里云备案,您可以参考如下步骤,将API接收消息中的URL配置为您的企业自有域名,并在企业自有域名对外提供服务的Nginx上配置转发规则,将请求转发到连接流的WebhookUrl。

    1. AppFlow连接凭证页面编辑企业微信的连接凭证。

    2. 点击下一步,勾选内网代理

    3. 首次勾选内网代理时,会弹出AppFlow服务关联角色授权创建页面,请您确认并授权。

      弹窗中角色名称为 AliyunServiceRoleForAppFlow,权限策略为 AliyunServiceRolePolicyForAppFlow,确认后单击授权

    4. 配置可信域名。

      使用计算巢Nginx代理

      如果您没有在阿里云备案的可信主体域名,同时也没有Nginx代理,可以通过点击部署Nginx代理实例一键自动为您部署并配置Nginx代理。按控制台提示直接确认订单或更改您期望的配置下单,等待部署完成即可。部署过程通常耗时1-3分钟,请刷新列表并耐心等待。

      部署完成后,点击下拉框选择计算巢实例,用计算巢实例Host替换API接收消息URL(即已经填写的WebhookUrl)中的主机名,复制IP白名单并添加到企业可信IP中,点击保存,完成配置。

      使用自有的Nginx代理

      使用您自有的Nginx进行代理,同时也需要一台ECS或托管实例进行消息转发。

      1. 选择ECS实例或托管实例,并将IP白名单添加到企业可信IP中。

      2. 如果您没有实例,可单击新增实例前往ECS购买页新购ECS,或者创建托管实例。

        托管实例需要您在非阿里云服务器中找一台可以访问公网的机器,再按照阿里云托管实例安装云助手。
      3. 点击保存,完成配置。

      4. 使用NginxIP地址替换API接收消息URL(即已经填写的WebhookUrl)中的主机名。

配置企业可信 IP 时,报错“以下IP属于第三方服务商,为保证企业数据安全,请配置本企业服务器的IP”?

报错原因:企业微信出于安全考虑,调用通讯录、身份校验接口时需要校验可信域名和可信 IP,其中一个可信 IP 仅能用于企业微信中的一个企业,如果用于多个企业将被认定为服务商,从而导致通讯录、身份校验等接口不可用。

如果您有阿里云的云服务器 ECS,您可以使用阿里云服务器进行请求转发,解决可信 IP 的问题:

  1. 修改 AppFlow 中配置的企业微信的连接凭证。在 AppFlow 控制台左侧导航栏单击连接凭证,在连接器列表中选择企业微信,找到目标凭证,单击操作列的编辑

  2. 修改内容:在内网代理配置页面选择使用可信主体域名 > ECS实例使用自有Nginx代理 > ECS实例,选择对应地域和实例, 点击保存。

    页面下方包含 IP白名单 区域,可在文本域中查看白名单IP,单击 复制IP 将其复制。

  3. 将代理机器的 IP 添加到企业微信可信 IP。访问企业微信应用列表,进入应用详情页面,在页面下方开发者接口找到企业可信IP卡片,点击配置

如果您有自己的非阿里云的机器,您可以将自有机器托管到阿里云,并使用托管机器进行请求转发,解决可信 IP 的问题:

  1. 在您的非阿里云服务器中找一台可以访问公网的机器,按照文档安装云助手 。

  2. 修改 AppFlow 中配置的企业微信的连接凭证。在 AppFlow 控制台左侧导航栏单击连接凭证,在连接器列表中选择企业微信,找到目标凭证,单击操作列的编辑

  3. 修改内容:在内网代理配置页面选择使用可信主体域名 > ECS实例使用自有Nginx代理 > ECS实例,选择对应托管地域和托管实例, 点击保存

    选择 托管实例 后,需配置 IP白名单;若页面提示"无法获取您的代理转发机器公网",请自行查询出口IP并添加至白名单。

4. 将代理机器的 IP 添加到企业微信可信 IP。访问企业微信应用列表,进入应用详情页面,在页面下方开发者接口找到企业可信IP卡片,点击配置