
## 概述
这个n8n工作流从Postgres数据库中检索AI代理聊天记忆日志,并将它们推送到Google Sheets,为每个会话创建一个单独的工作表。这对于构建基于聊天的产品或代理,并需要以协作格式查看或分析会话日志的团队非常有用。
## 适用对象
* 任何在生产环境中运行AI代理,将对话日志存储在Postgres(或Supabase)中,并希望查看对话记录和进行控制的用户
* 构建AI代理或助手的产研团队
* 希望集中对话历史进行分析或支持的团队
* 管理AI聊天记忆并需要在电子表格中探索的用户
## 前置条件
* 具有`n8n_chat_histories`表的Postgres数据库,且已连接AI代理
* 运行PostgreSQL查询添加`created_at`列
* Google Sheets访问权限和连接到n8n的OAuth凭据
* 设置为模板的Google Sheets文档
## Google Sheets模板
此工作流需要一个Google Sheets文件,每个会话将存储在其自己的选项卡中。
基本选项卡布局被复制并用会话ID重命名。
👉 [使用此模板作为起点](https://docs.google.com/spreadsheets/d/14bKI5J0h18Nv48jbe1IXpZWma6EtqYLFWnpKoCB5Bgc/edit?usp=sharing)
注意:在创建第一个选项卡后,您可以隐藏模板
## 工作原理
### 触发器
工作流可以手动启动或按计划启动(例如每天中午)。
### 检索会话
运行SQL查询从`n8n_chat_histories`表中获取不同的`session_id`值。
### 循环处理会话
对于每个会话:
* 清除相应的工作表(如果存在)
* 复制模板选项卡
* 使用当前`session_id`重命名
### 获取消息
从Postgres中选择与会话关联的所有消息。
### 添加到工作表
将每条消息添加到Google Sheets,包含以下列:
* **Who**: 说话者角色(`user`、`assistant`等)
* **Message**: 文本内容
* **Date**: 来自`created_at`的时间戳,格式为`yyyy-MM-dd hh:mm:ss`
## 重要说明
* 每次运行时工作表都会被**清除并重建**,以确保日志是最新的
* 如果会话的工作表不存在,将通过复制第一个选项卡(模板)来创建
* 您可以通过在内存配置中覆盖`session_id`,将会话分组到持久ID(如`user_id`)下
* 通过使用连接池的PG凭据,与Supabase完美配合工作
## 节点组成
工作流包含以下主要节点:
### 触发器节点
– Manual Trigger(手动触发器)
– Schedule Trigger(计划触发器)
### 数据处理节点
– Postgres(PostgreSQL数据库操作)
– Split In Batches(批量分割)
– Set(数据设置)
### Google Sheets集成
– Google Sheets(Google表格操作)
– HTTP Request(HTTP请求)
### 辅助节点
– Sticky Note(便签注释)
## 技术特点
1. **自动会话管理**:自动检测新会话并为每个会话创建独立的工作表
2. **数据同步**:确保Google Sheets中的数据与Postgres数据库保持同步
3. **错误处理**:优雅处理不存在的会话工作表
4. **灵活触发**:支持手动和计划触发两种模式
5. **模板复用**:基于模板创建新工作表,保持一致性

评论(0)