
## 概述
这个n8n工作流从Postgres数据库中检索AI代理的聊天记忆日志,并将其推送到Google Sheets,为每个会话创建一个单独的工作表。这对于构建基于聊天的产品或代理的团队非常有用,他们需要在协作格式中查看或分析会话日志。
## 适用对象
* 在生产环境中使用AI代理并将对话日志存储在Postgres(或Supabase)中的任何人,希望查看转录并拥有控制权
* 构建AI代理或助手的产品团队
* 希望集中对话历史以进行分析或支持的团队
* 管理AI聊天记忆并需要在电子表格中探索的任何人
## 先决条件
* 具有连接到AI代理的`n8n_chat_histories`表的Postgres数据库
* 需要运行PostgreSQL查询以添加`created_at`列(参见设置>添加日期时间列)
* Google Sheets访问权限和连接到n8n的OAuth凭据
* 设置为模板的Google Sheets文档
## 工作流程说明
### 1. 触发器
工作流可以手动启动或按计划启动(例如每天中午12点)。
### 2. 检索会话
运行SQL查询以从`n8n_chat_histories`表中获取不同的`session_id`值。
### 3. 循环处理会话
对于每个会话:
* 清除相应的工作表(如果存在)
* 复制模板选项卡
* 使用当前的`session_id`重命名
### 4. 获取消息
从Postgres中选择与会话关联的所有消息。
### 5. 附加到工作表
将每条消息添加到Google Sheets,包含以下列:
* **Who**: 说话者角色(`user`、`assistant`等)
* **Message**: 文本内容
* **Date**: 来自`created_at`的时间戳,格式为`yyyy-MM-dd hh:mm:ss`
## 重要节点功能
### Postgres节点
– **获取会话ID**: 执行SQL查询收集所有sessionID
– **按sessionId获取对话**: 选择与会话关联的所有消息
### Google Sheets节点
– **清除工作表内容**: 清除以`session_id`命名的表格内容
– **添加对话**: 将消息数据写入相应的Google Sheets
### HTTP Request节点
– **复制模板工作表**: 从Google Sheets文档复制第一个工作表
– **重命名工作表**: 将新复制的工作表重命名为当前的`session_id`
### 其他节点
– **手动触发器**: 用于测试工作流
– **计划触发器**: 设置定时执行
– **循环处理会话ID**: 迭代处理每个会话
– **设置session_id**: 设置会话标识符
## 注意事项
* 每次运行时工作表都会被**清除并重建**,以确保日志是最新的
* 如果会话的工作表不存在,将通过复制第一个选项卡(模板)来创建
* 可以通过在内存配置中覆盖`session_id`,将会话分组到持久ID(如`user_id`)下
* 通过使用来自连接池的PG凭据,可以与Supabase完美配合工作

评论(0)