大语言模型发展至今,模型的上下文对话能力已经是一个大语言模型的基础能力之一。绝大部分模型实现上下文连续会话的原理都是将历史会话与当前会话一起输入给模型,从而使模型拥有短期的记忆实现上下文的连续会话。
但是,这个简单的功能往往也需要对你部署的模型接口进行一些开发工作才可以实现。
现在通过AppFlow,不需要任何开发,您的任意模型即可拥有上下文的连续会话能力。
下面以钉钉会话机器人为例,来看看如何配置吧~
创建连接流
选择触发器
登陆AppFlow控制台创建连接流页面,填写您的流名称。
“选择触发事件”,找到并点击选择“钉钉机器人”,触发事件选择“收到文本消息时”,点击“保存,进入下一步”
编辑
本文以钉钉为例,但AppFlow提供的上下文功能不局限于钉钉,您的触发器可以是任意的。
配置上下文组件
选择上下文会话组件,执行动作选择“组合当前会话与历史上下文”。此处AppFlow将会把您的当前会话与历史会话组合在一起。
在钉钉场景下,会话内容插入“请求体——会话消息——消息内容”。
会话ID可以选择“请求体——会话ID”,您也可以填写任意值,这里是为了区分不同会话。
清除历史会话关键词:当您的输入会话内容与关键词一致时,AppFlow会清除历史上下文。
选择模型
选择你想要调用的模型,可以是我们提供的各种模型也可以是你自己部署的任意模型。
这里以通义千问为例:
角色选择变量“2. —— 响应体——上下文消息(包含当前会话)——role”,并将messages[0]手动改写为messages[i],表示循环应用上下文中的每一个role
问题描述选择插入““2. —— 响应体——上下文消息(包含当前会话)——content”,并将messages[0]手动改写为messages[i],表示循环应用上下文中的每一个content”
此处,只要您的模型输入满足如下格式,都可以类似配置达到上下文会话目的
{ "messages":[ "role":xxxx, "content":xxxx ] }
更新上下文
步骤四选择“上下文连续会话组件”,执行动作选择“更新历史上下文”
编辑
输入的对话内容表示您本轮对话的输入,钉钉场景下选择“请求体——会话消息——消息内容”。
输出的对话内容表示您的模型输出内容,选择您的模型输出字段即可。此处通义千问的输出为“3. 响应体 —— 模型输出 —— 返回内容”。
会话ID选择第二步中同样的内容。
会话轮数表示每次对话携带的历史上下文轮数。
发送模型回答到钉钉
此处以AI卡片消息为例,您也可以选择其他消息形式。
编辑
模版ID:填写钉钉卡片平台创建的模版ID,若您还没有模版,可以参考计算巢AppFlow实现模型对话流式输出-阿里云开发者社区 创建卡片部分进行创建
机器人Code:“1. 请求体——机器人代码”
字段key:固定填写 content。如果对您的AI卡片做了定制,可以按照您定制的变量值填写。
群聊ID:“1. 请求体——会话ID”
最后完成并保存流程。
发布并调用连接流
在连接流页面发布您的连接流,按照计算巢AppFlow实现模型对话流式输出-阿里云开发者社区的步骤,添加机器人即可调用使用。