n8n智能体开发:聊天触发器节点
在构建聊天机器人和其他聊天界面的 AI 工作流时,使用 Chat Trigger 节点。您可以配置用户如何访问聊天,使用 n8n 提供的界面之一或您自己的界面。您可以添加身份验证。
在构建聊天机器人和其他聊天界面的 AI 工作流时,使用 Chat Trigger 节点。您可以配置用户如何访问聊天,使用 n8n 提供的界面之一或您自己的界面。您可以添加身份验证。
必须连接一个 agent 或 chain 根节点。
工作流执行用量
发送到 Chat Trigger 的每条消息都会执行您的工作流。这意味着用户发送 10 条消息的一次对话会使用您执行额度中的 10 次执行。请查看您的付费计划了解额度详情。
手动聊天触发器
从 1.24.0 版本开始,该节点取代了 Manual Chat Trigger 节点。
节点参数#
公开聊天访问权限#
设置聊天是否应公开可用(开启)或仅通过手动聊天界面可用(关闭)。
在构建工作流时请保持关闭。当您准备激活工作流并允许用户访问聊天时再开启。
模式#
选择用户访问聊天的方式。可选:
- 托管聊天:使用 n8n 托管的聊天界面。推荐大多数用户使用,因为您可以通过节点选项配置界面,无需进行其他设置。
- 嵌入式聊天:此选项需要您创建自己的聊天界面。您可以使用 n8n 的聊天小部件或自行构建。您的聊天界面必须调用节点中聊天 URL 显示的 webhook 地址。
认证方式#
选择是否以及如何限制对聊天的访问权限。可选方案包括:
- 无:聊天不使用认证。任何人都可以使用聊天功能。
- 基础认证:聊天使用基础认证。
- 选择或创建一个包含用户名和密码的基础认证凭证。所有用户必须使用相同的用户名和密码。
- n8n用户认证:只有登录了n8n账户的用户才能使用聊天功能。
初始消息#
此参数仅在您使用托管聊天时可用。用于配置用户访问页面时n8n聊天界面显示的初始消息。
节点选项#
可用选项取决于聊天模式。
托管聊天选项#
允许的来源(CORS)#
设置可以访问聊天URL的来源。输入允许进行跨域非预检请求的URL列表(以逗号分隔)。
使用*(默认值)允许所有来源。
输入框占位符、标题和副标题#
为聊天界面中的这些元素输入文本内容。
查看截图
加载历史会话#
选择是否加载之前聊天会话中的消息。
如果选择关闭以外的任何选项,必须将Chat触发器和使用的Agent连接到记忆子节点。当您将加载历史会话设置为从记忆加载时,Chat触发器上会出现记忆连接器。n8n建议将Chat触发器和Agent都连接到同一个记忆子节点,这样可以确保两个节点使用单一真实数据源。
查看截图
响应模式#
当构建包含聊天处理代理或链之后步骤的工作流时,使用此选项。可选模式:
- 当最后节点完成时:Chat Trigger 节点返回工作流中最后执行节点的响应代码和数据输出。
- 使用 'Respond to Webhook' 节点:Chat Trigger 节点按照 Respond to Webhook 节点中的定义进行响应。
需要点击按钮开始聊天#
设置是否在聊天界面显示新对话按钮(开启)或不显示(关闭)。
查看截图
嵌入式聊天选项#
允许的来源 (CORS)#
设置可以访问聊天 URL 的来源。输入允许进行跨域非预检请求的 URL 列表(以逗号分隔)。
使用 *(默认值)允许所有来源。
加载历史会话#
选择是否加载之前聊天会话的消息。
如果选择关闭以外的任何选项,必须将 Chat Trigger 和使用的 Agent 连接到内存子节点。当设置加载历史会话为从内存加载时,Chat Trigger 上会出现内存连接器。n8n 建议将 Chat Trigger 和 Agent 都连接到同一个内存子节点,这能确保两个节点使用单一数据源。
查看截图
响应模式#
当构建包含聊天处理代理或链之后步骤的工作流时,使用此选项。可选模式:
- 当最后一个节点完成时:Chat Trigger 节点返回响应代码和工作流中最后执行节点的数据输出。
- 使用 'Respond to Webhook' 节点:Chat Trigger 节点按照 Respond to Webhook 节点中的定义进行响应。
模板与示例#
Browse 聊天触发器 integration templates, or search all templates
相关资源#
查看 n8n 的高级 AI 文档。
手动设置聊天响应#
当您不希望直接将 Agent 或 Chain 节点的输出发送给用户时,需要手动设置聊天响应。您可能需要获取 Agent 或 Chain 节点的输出,在发送回用户之前对其进行修改或进行其他处理。
在基础工作流中,Agent 和 Chain 节点会输出名为 output 或 text 的参数,Chat Trigger 会将该参数的值作为聊天响应发送给用户。
如果需要手动创建发送给用户的响应,您必须创建一个名为 text 或 output 的参数。如果使用其他参数名,Chat Trigger 会将整个对象作为响应发送,而不仅仅是参数值。
常见问题#
关于常见问题或错误及其解决方案,请参阅 常见问题。
以下是使用 Chat Trigger 节点时可能遇到的常见错误和问题,以及解决方法或排查步骤。
从网站向嵌入式 Chat Trigger 节点传递数据#
当在网站中嵌入 Chat Trigger 节点时,您可能需要向 Chat Trigger 传递额外信息。例如,传递存储在网站 cookie 中的用户 ID。
要实现这一点,请在嵌入式聊天窗口中使用传递给 createChat 函数的 JSON 对象中的 metadata 字段:
|
metadata 字段可以包含任意数据,这些数据将与其他输出数据一起出现在 Chat Trigger 的输出中。之后,您可以使用 n8n 的数据处理功能像往常一样从下游节点查询和处理这些数据。
Chat Trigger 节点无法获取历史消息#
配置 Chat Trigger 节点时,如果不注意会话加载的配置方式,可能会遇到无法获取历史消息的问题。这种情况通常会表现为 workflow could not be started! 错误。
在 Chat Trigger 中,加载历史会话选项会使用 sessionID 获取会话的历史聊天消息。当您将加载历史会话选项设置为从内存加载时,最佳实践通常是将相同的内存节点连接到工作流中的 Chat Trigger 和 Agent:
- 在您的Chat Trigger节点中,将加载历史会话选项设置为从内存加载。此选项仅在聊天设置为公开可见时才会显示。
- 将一个Simple Memory节点连接到Memory连接器。
- 将同一个Simple Memory节点连接到您的Agent的Memory连接器。
- 在Simple Memory节点中,将会话ID设置为连接的Chat Trigger节点。
有一种情况您可能需要为 Chat Trigger 和 Agent 分别连接不同的内存节点:如果您希望在内存节点中将会话ID设置为下方定义。
如果通过表达式获取会话ID,则该表达式必须适用于所有连接到它的节点。如果表达式与需要内存的每个节点不兼容,您可能需要使用单独的内存节点,以便针对每个节点自定义会话ID的表达式。
《AI提示工程必知必会》为读者提供了丰富的AI提示工程知识与实战技能。《AI提示工程必知必会》主要内容包括各类提示词的应用,如问答式、指令式、状态类、建议式、安全类和感谢类提示词,以及如何通过实战演练掌握提示词的使用技巧;使用提示词进行文本摘要、改写重述、语法纠错、机器翻译等语言处理任务,以及在数据挖掘、程序开发等领域的应用;AI在绘画创作上的应用,百度文心一言和阿里通义大模型这两大智能平台的特性与功能,以及市场调研中提示词的实战应用。通过阅读《AI提示工程必知必会》,读者可掌握如何有效利用AI提示工程提升工作效率,创新工作流程,并在职场中脱颖而出。

更多推荐




所有评论(0)