随着大语言模型的参数规模越来越大,微调模型的代价越来越大,于是知识检索增强的方式成为越来越主流的选择。通过提前准备好的知识库,在模型进行推理之前进行知识检索作为上下文一同交给大模型进行推理,从而提升大模型对领域知识的掌握程度,提升回答的专业性和准确性。
AppFlow现在可以通过百炼知识库,为您的任意模型提供RAG能力,仅需多一个节点的配置,无需任何开发即可拥有RAG能力。
前提条件
开通百炼服务并创建好知识库。具体可参考知识库_大模型服务平台百炼(Model Studio)-阿里云帮助中心
选择触发器
登陆AppFlow控制台创建连接流页面,填写您的流名称。
“选择触发事件”,找到并点击选择“钉钉机器人”,触发事件选择“收到文本消息时”,点击“保存,进入下一步”
编辑
本文以钉钉为例,但AppFlow提供的上下文功能不局限于钉钉,您的触发器可以是任意的。
配置RAG知识检索增强组件
配置鉴权凭证
按照提示选择您的鉴权凭证,该凭证会自动为您创建一个拥有百炼调用权限的RAM角色。
具体分为两种情况:
- 如果您想在已有的角色上添加权限,“选择已有角色”,系统会自动判断当前角色的权限策略是否符合要求,若符合,点击创建即可;
否则点击下一步,创建策略并添加。
任意输入策略名称,点击创建策略并点击授权即可。
- 如果您想创建一个新角色,选择“创建新角色”
任意输入策略名称,点击创建策略并点击授权即可。
在百炼中为RAM角色授权
点击链接,使用主账号或有相应权限的子账号登陆百炼主账号管理页面,点击右上角“新增用户”,类型选择“RAM角色”,选择您在AppFlow中创建凭证时选择或创建的那个RAM角色,点击“保存,继续配置”。
编辑
点击增加权限按钮,选择知识库所对应的业务范围,并选择“访客”角色即可。
编辑
在AppFlow填写执行动作入参配置
在钉钉场景下,用来检索知识的提问插入“请求体——会话消息——消息内容”。
WorkspaceID可以在百炼大模型平台获取,参考https://help.aliyun.com/zh/model-studio/developer-reference/obtain-api-key-app-id-and-workspace-id#732535cfc959h
IndexId 下拉选择即可。
检索知识条数表示需要检索并携带的知识条数,一般填写3-5轮即可。越高的知识条数可能会导致更多的Token消耗。
选择模型
选择你想要调用的模型,可以是我们提供的各种模型也可以是你自己部署的任意模型。
这里以通义千问为例:
角色下拉选择user
问题描述选择插入“2. 响应体——重写Query”,此处AppFlow会帮您重写好RAG的prompt,直接引用即可。
编辑
此处,无论您使用的是什么模型,只要将模型的输入换成步骤二中的重写Query,即可实现RAG能力。
发送模型回答到钉钉
此处以AI卡片消息为例,您也可以选择其他消息形式。
编辑
模版ID:填写钉钉卡片平台创建的模版ID,若您还没有模版,可以参考计算巢AppFlow实现模型对话流式输出-阿里云开发者社区 创建卡片部分进行创建
机器人Code:“1. 请求体——机器人代码”
字段key:固定填写 content。如果对您的AI卡片做了定制,可以按照您定制的变量值填写。
群聊ID:“1. 请求体——会话ID”
最后完成并保存流程。
发布并调用连接流
在连接流页面发布您的连接流,按照计算巢AppFlow实现模型对话流式输出-阿里云开发者社区的步骤,添加机器人即可调用使用。