Skip to content

Chat Trigger 节点常见问题#

以下是使用 Chat Trigger 节点时可能遇到的常见错误和问题,以及解决方法或排查步骤。

从网站向嵌入式 Chat Trigger 节点传递数据#

当在网站中嵌入 Chat Trigger 节点时,您可能需要向 Chat Trigger 传递额外信息。例如,传递存储在网站 cookie 中的用户 ID。

要实现这一点,请在嵌入式聊天窗口中使用传递给 createChat 函数的 JSON 对象中的 metadata 字段:

1
2
3
4
5
6
createChat({
	webhookUrl: 'YOUR_PRODUCTION_WEBHOOK_URL',
	metadata: {
		'YOUR_KEY': 'YOUR_DATA'
	};
});

metadata 字段可以包含任意数据,这些数据将与其他输出数据一起出现在 Chat Trigger 的输出中。之后,您可以使用 n8n 的数据处理功能像往常一样从下游节点查询和处理这些数据。

Chat Trigger 节点无法获取历史消息#

配置 Chat Trigger 节点时,如果不注意会话加载的配置方式,可能会遇到无法获取历史消息的问题。这种情况通常会表现为 workflow could not be started! 错误。

在 Chat Trigger 中,加载历史会话选项会使用 sessionID 获取会话的历史聊天消息。当您将加载历史会话选项设置为从内存加载时,最佳实践通常是将相同的内存节点连接到工作流中的 Chat Trigger 和 Agent:

  1. 在您的Chat Trigger节点中,将加载历史会话选项设置为从内存加载。此选项仅在聊天设置为公开可见时才会显示。
  2. 将一个Simple Memory节点连接到Memory连接器。
  3. 将同一个Simple Memory节点连接到您的AgentMemory连接器。
  4. Simple Memory节点中,将会话ID设置为连接的Chat Trigger节点

有一种情况您可能需要为 Chat Trigger 和 Agent 分别连接不同的内存节点:如果您希望在内存节点中将会话ID设置为下方定义

如果通过表达式获取会话ID,则该表达式必须适用于所有连接到它的节点。如果表达式与需要内存的每个节点不兼容,您可能需要使用单独的内存节点,以便针对每个节点自定义会话ID的表达式。