在阿里云上,您可以通过人工智能平台PAI快速部署一个大模型RAG对话系统。通过AppFlow的集成,您可以将该对话系统集成到钉钉群聊或微信等各种场景中,让您随时随地使用您的专属机器人。本文将以企业微信为例,为您介绍PAI RAG+AppFlow的部署方案。
方案概览
以基于开源项目EasyRec的知识库文档搭建AI助手为例,介绍PAI RAG+AppFlow的部署方案。方案只需以下几步:
|
1. 部署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为例,参数配置说明如下。您也可以选择使用其他向量检索库,如何准备向量检索库以及相关配置项,请参见向量检索库设置。
参数
描述
版本类型
选择FAISS。
OSS地址
选择当前地域下已创建的OSS存储路径,用来存储上传的知识库文件。如果没有可选的存储路径,您可以参考控制台快速入门进行创建。
说明如果您选择使用自持微调模型部署服务,请确保所选的OSS存储路径不与自持微调模型所在的路径重复,以避免造成冲突。
参数配置完成后,单击部署。
查看PAI RAG应用服务Token。
在模型在线服务(EAS)页面,单击目标服务名称。
在基本信息区域单击查看调用信息,并在调用信息对话框的公网地址调用页签,获取Token。
2. 创建企业微信应用
接下来您需要在您的组织中创建应用,作为 AI 助手回答用户问题。
2.1创建应用
访问企业微信开发者中心,扫码登录,点击立即创建。根据指引选择以企业身份创建和企业内部应用。
在顶部导航栏中,选择应用管理,在应用页面下半部分点击创建应用。
在创建应用页面,填写应用名称和应用介绍,上传应用 logo,选择可见范围,完成后点击创建应用。
2.2获取企业ID、应用AgentId和Secret
在应用详情页面,复制 AgentID和 Secret,用于下一步创建连接流。
在顶部导航栏中,选择我的企业,在企业信息页面,复制企业 ID,用于下一步创建连接流。
3. 创建企业微信连接流
AppFlow可以让您在不写代码的情况下,通过界面配置就可以将PAI RAG应用和企业微信连接起来。您可以通过预置的AppFlow模板创建一个企业微信连接流。
使用AppFlow模板创建连接流,单击立即使用进入创建流程。
在连接流的账户授权配置向导页,在选择凭证下拉列表中单击添加新凭证。然后在创建凭证对话框中,填入之前获取的企业微信的企业ID,应用的AgentId和Secret,单击刷新按钮生成Token和EncodingAESKey,并设置一个自定义凭证名称。同时复制保存IP白名单,用于下一步配置IP白名单。
在连接流的账户授权配置向导页,在选择凭证下拉列表中单击添加新凭证。在创建凭证对话框中,填入步骤1获取的RAG应用Token,并设置一个自定义凭证名称。
在执行动作配置向导页,填写PAI RAG应用服务所在的region、workspaceId和服务名称,完成后单击下一步。
在基本信息配置向导页,填写连接流名称和连接流描述(建议保持默认),完成后单击下一步。
界面提示流程配置成功,复制WebhookUrl,单击发布。
4. 配置企业微信应用
有了 Webhook 地址后,接下来您可以在企业微信应用中配置接收消息来回答用户问题了。
4.1配置企业微信应用
访问企业微信应用列表。找到刚刚创建的应用,点击应用名称进入详情页面。
在应用详情页面,找到接收消息卡片,点击设置API接收。
在API接收消息页面,您可以参考下图完成配置,然后点击保存。
URL填入上一步复制的 WebhookUrl。
如果之前未保存WebhookUrl,可访问AppFlow连接流页面,在操作列点击webhookUrl进行查看。
Token 和 EncodingAESKey 填入上一步复制的值。
如果之前未保存,可访问AppFlow连接凭证页面,在 中,找到刚刚配置的凭证,点击操作列的编辑从凭证中获取。
如果域名主体校验未通过,请参考域名主体校验未通过怎么办?进行处理。
4.2配置IP白名单
在应用详情页面,在页面下方开发者接口找到企业可信IP卡片,点击配置。
在企业可信IP对话框,粘贴复制的 IP 地址,然后点击确定。
4.3测试应用
你可以在企业微信中搜索应用并发送消息,查看效果。
在企业微信顶部搜索框搜索应用名称,单击应用进入聊天。
与应用对话,进行交流互动。
5. 为PAI RAG应用增加私有知识
以上传开源项目EasyRec的知识库文档为例,当您提出与EasyRec相关的问题时,能够获得更准确的回答。
登录PAI控制台,在页面上方选择目标地域,并在右侧选择目标工作空间,然后单击进入EAS。
在模型在线服务(EAS)页面,单击目标服务的服务方式列下的查看Web应用。
在Upload页签,上传知识库文件。例如source.zip,解压后通过Directory上传。
您可以在企业微信中发送与EasyRec相关的问题,来验证企业微信AI助手回答效果。
常见问题
域名主体校验未通过怎么办?
当您在企业微信后台配置 API 接收消息时,报错提示“域名主体校验未通过,需配置备案主体与当前企业主体相同或有关联关系的域名”。这通常是由于企业微信的相关限制所引起的。为解决此问题,您需要配置一个企业自有域名。
如果您的域名已在阿里云备案,您可以参考如下步骤创建一个二级域名作为企业自有域名。
访问AppFlow域名管理页面,单击添加域名按钮,进入添加域名页面,填入可用的二级域名,如
airobot.example.com
。参考CNAME 记录,将该二级域名解析到上一步的记录值。
解析配置完成后,返回创建域名页面,点击提交。
使用该二级域名替换API接收消息的URL(即已经填写的WebhookUrl)中的主机名。
如果您的域名没有在阿里云备案,您可以参考如下步骤,将API接收消息中的URL配置为您的企业自有域名,并在企业自有域名对外提供服务的Nginx上配置转发规则,将请求转发到连接流的WebhookUrl。
在AppFlow的连接凭证页面编辑企业微信的连接凭证。
点击下一步,勾选内网代理。
首次勾选内网代理时,会弹出AppFlow服务关联角色授权创建页面,请您确认并授权。
配置可信域名。
使用计算巢Nginx代理
如果您没有在阿里云备案的可信主体域名,同时也没有Nginx代理,可以通过点击部署Nginx代理实例一键自动为您部署并配置Nginx代理。按控制台提示直接确认订单或更改您期望的配置下单,等待部署完成即可。部署过程通常耗时1-3分钟,请刷新列表并耐心等待。
部署完成后,点击下拉框选择计算巢实例,用计算巢实例Host替换API接收消息的URL(即已经填写的WebhookUrl)中的主机名,复制IP白名单并添加到企业可信IP中,点击保存,完成配置。
使用自有的Nginx代理
使用您自有的Nginx进行代理,同时也需要一台ECS或托管实例进行消息转发。
配置企业可信 IP 时,报错“以下IP属于第三方服务商,为保证企业数据安全,请配置本企业服务器的IP”?
报错原因:企业微信出于安全考虑,调用通讯录、身份校验接口时需要校验可信域名和可信 IP,其中一个可信 IP 仅能用于企业微信中的一个企业,如果用于多个企业将被认定为服务商,从而导致通讯录、身份校验等接口不可用。
如果您有阿里云的云服务器 ECS,您可以使用阿里云服务器进行请求转发,解决可信 IP 的问题:
修改 AppFlow 中配置的企业微信的连接凭证,
修改内容:在内网代理配置页面选择
或 ,选择对应地域和实例, 点击保存。将代理机器的 IP 添加到企业微信可信 IP。访问企业微信应用列表,进入应用详情页面,在页面下方开发者接口找到企业可信IP卡片,点击配置。
如果您有自己的非阿里云的机器,您可以将自有机器托管到阿里云,并使用托管机器进行请求转发,解决可信 IP 的问题:
在您的非阿里云服务器中找一台可以访问公网的机器,按照文档安装云助手 。
修改 AppFlow 中配置的企业微信的连接凭证,
修改内容:在内网代理配置页面选择
或 ,选择对应托管地域和托管实例, 点击保存。
4. 将代理机器的 IP 添加到企业微信可信 IP。访问企业微信应用列表,进入应用详情页面,在页面下方开发者接口找到企业可信IP卡片,点击配置。