变量说明
工作流目前提供了以下全局变量:
消息相关
工作流里提供了四个跟消息相关的参数。
- query,触发技能的纯文本消息内容
- files,触发技能的消息携带的文件信息,包含文件的标识、类型和链接等信息
- message,触发技能的完整消息内容,包含消息文本、文件、发送者、@等信息
- messageHistory,message列表,包含技能触发时最新的20条消息,每条消息包含消息文本、文件、发送者、@等信息
消息内容:
{
"query": "my plainText", //纯文本消息内容
"content":"my plainText ![](file_key_123)", //完整消息结构,MDX语法
"files": [
{
"fileKey":"file_40h3cvyc96fk2tfrn36em", //文件标识
"type":"image/jpeg", //文件类型
"fileURL":"", //文件访问地址
"metadata": "" //文件基础信息,包括文件过期时间
}
],
"sender": {
"id": "1797178075708452", //用户标识
"channelType": "lark.p2p", //渠道类型
"senderType": "user", //用户类型,user/assistant
"tenantType": 4, //租户类型,1是正式环境,4是沙箱环境
"name":"Jackie" //用户姓名
},
"mentions": [], // 消息里@的用户列表
"channelInfo":{} //渠道信息,飞书渠道下展示message_id和消息发送着的user_id/union_id/open_id
}}}
- 历史消息里的消息结构比较复杂,如何在大模型节点更好地消费历史消息
在大模型节点消费历史消息有两种方式:
- 使用智能对话节点,并配置需要读取的对话轮数
250px|700px|reset
- 通过代码节点对历史消息进行处理,然后在LLM节点中使用
//返回历史消息里的用户角色(senderType)和用户输入(content)
module.exports = async function main(input, history) {
const res = (history || []).map(round => {
return `${round.sender.senderType}:${round.content.replace(/\n/g, '。')}`;
});
return res.join('\n');
}}}
会话相关
工作流里提供了会话相关的参数session,包含渠道类型、会话ID、会话类型。
{
"channelType": "lark.p2p",//渠道类型
"sessionID": "370984473584239001",//会话ID
"sessionType": "p2p" //会话类型
}}}
channelType ,渠道信息标识,包含渠道、场景、自定义标识,e.g lark.p2p / lark.group / lark.openapi.meego
sessionID,会话ID,飞书渠道下是对应的chat_id,其他场景下为Aily的会话id
sessionType,会话类型,p2p/group,用来区分当前会话是单聊/群聊
- 如何在集成服务中消费会话信息
如果用户想在集成服务中使用会话信息,比如获取当前群聊里的群消息内容,可直接在群ID中使用session信息。
250px|700px|reset
渠道信息
工作流里提供了渠道相关的参数 channel,包括渠道类型等信息。
{
"channelType": "lark.group", // 渠道类型
"larkChannelInfo": { // 飞书渠道信息
"chat_id": "oc_5ce6d572455d888888b7xx88da888888", // 飞书渠道下会话标识
"tenant_key": "738888c8888f888e" // 飞书渠道下租户标识
},
"externalChannelInfo": {}, // 其他渠道信息
"variables": {} // 开发者通过 SDK 或 OpenAPI 传入的自定义变量
}}}
channelType ,渠道信息标识,包含渠道、场景、自定义标识,如 lark.p2p / lark.group / lark.openapi.meego
larkChannelInfo,飞书渠道的信息
externalChannelInfo,其他渠道信息
variables,开发者通过 SDK 或 OpenAPI 传入的自定义变量
Channel 数据示例