跳到主要内容

聊天触发器节点常见问题#

以下是聊天触发器节点的常见错误与问题及其解决方法或排查步骤。

将数据从网站传递至嵌入式聊天触发器节点#

在网站中嵌入聊天触发器节点时,可能需要向该节点传递额外信息。例如,传递存储在网站cookie中的用户ID。

实现方式:在嵌入聊天窗口调用createChat函数时,通过JSON对象中的metadata字段传递数据:

createChat({
webhookUrl: 'YOUR_PRODUCTION_WEBHOOK_URL',
metadata: {
'YOUR_KEY': 'YOUR_DATA'
};
});

metadata 字段可包含任意数据,这些数据将与其他输出数据一同出现在聊天触发器输出中。此后,您可通过 n8n 的数据加工功能像往常一样从下游节点查询并处理这些数据。

聊天触发器节点不会获取历史消息#

配置聊天触发器节点时,若未谨慎处理会话加载配置,可能会遇到历史消息获取异常的问题。该问题通常表现为 workflow could not be started! 错误。

在聊天触发器中,加载历史会话选项会通过 sessionID 获取会话的既往聊天记录。当您将加载历史会话选项设置为来自内存时,最佳实践是将同一个记忆节点同时连接到工作流中的聊天触发器和智能体:

  1. 聊天触发器节点中,将加载历史会话选项设为来自内存(仅当聊天功能设置为公开可见时此选项才会显示)
  2. 简易记忆节点连接到记忆接口
  3. 将同一个简易记忆节点连接到智能体记忆接口
  4. 简易记忆节点中,将会话ID设置为连接的聊天触发器节点

若需为聊天触发器和智能体分别配置记忆节点,典型场景是需要在记忆节点中将会话ID设置为下方定义

若通过表达式获取会话ID,则该表达式需在所有连接的节点中保持兼容。如果表达式无法适配所有需要记忆功能的节点,可能需要使用独立的记忆节点,以便为每个节点单独定制会话ID表达式。