使用GPT-4生成CSV文件的N8N工作流

Prepare CSV files with GPT-4

通过OpenAI GPT-4自动生成虚构用户数据并批量导出为CSV文件的自动化工作流

11 NodesAI & MLAI数据生成CSV导出自动化测试

工作流概述

这是一个使用GPT-4生成随机用户数据并导出为CSV文件的N8N自动化工作流。该工作流通过调用OpenAI API生成虚构的用户信息,然后将这些数据处理并保存为多个CSV文件到本地磁盘。

工作流程详解

1. 触发阶段

  • 节点: When clicking "Execute Workflow" (手动触发器)
  • 功能: 通过手动点击触发整个工作流的执行
  • 位置: 工作流的起始节点

2. 数据生成阶段

  • 节点: OpenAI
  • 类型: n8n-nodes-base.openAi
  • 配置:
    • 使用模型: GPT-4
    • 生成数量: 3次调用
    • 最大令牌数: 2500
    • 温度参数: 1 (提高随机性)
  • 提示词内容: 要求GPT-4生成10个随机用户的JSON数组,包含以下字段:
    • user_name: 虚构角色名字(名和姓首字母相同)
    • user_email: 电子邮件地址
    • subscribed: 订阅状态(布尔值)
    • date_subscribed: 订阅日期(如果已订阅则为2023-10-01之前的随机日期)

3. 批处理阶段

  • 节点: Split In Batches
  • 功能: 将3个OpenAI响应分批处理,每次处理1个
  • 批次大小: 1
  • 作用: 确保每个生成的用户列表都被单独处理并保存为独立的CSV文件

4. 数据解析阶段

  • 节点: Parse JSON
  • 类型: Set节点
  • 功能: 将OpenAI返回的JSON字符串解析为实际的JSON对象
  • 操作: 提取message.content字段并解析为数组

5. 数据展开阶段

  • 节点: Make JSON Table
  • 类型: Item Lists节点
  • 功能: 将JSON数组中的每个用户对象展开为独立的数据项
  • 字段: 展开"content"字段

6. CSV转换阶段

  • 节点: Convert to CSV
  • 类型: Spreadsheet File节点
  • 配置:
    • 输出格式: CSV
    • 文件名: funny_names_[序号].csv (序号从1开始)
    • 包含表头行: 是

7. 数据清理阶段

7.1 移除BOM字节

  • 节点: Strip UTF BOM bytes
  • 类型: Move Binary Data节点
  • 功能: 移除UTF-8 BOM (Byte Order Mark)字节
  • 重要性: 避免CSV文件读取时出现编码问题

7.2 创建有效二进制

  • 节点: Create valid binary
  • 类型: Move Binary Data节点
  • 配置:
    • 模式: JSON转二进制
    • 编码: UTF-8
    • MIME类型: text/csv
    • 不添加BOM
  • 功能: 将处理后的数据转换为正确格式的二进制文件

8. 文件保存阶段

  • 节点: Save to Disk
  • 类型: Write Binary File节点
  • 路径: ./.n8n/funny_names_[序号].csv
  • 功能: 将生成的CSV文件保存到N8N工作目录
  • 循环: 保存后返回到Split In Batches节点继续处理下一批数据

工作流特点

优势

  1. 自动化程度高: 一键生成多个包含随机数据的CSV文件
  2. 数据格式规范: 生成的数据结构清晰,符合实际业务场景
  3. 批处理能力: 可以同时生成多个不同的数据集
  4. 编码处理完善: 特别处理了BOM字节问题,确保文件兼容性

应用场景

  • 测试数据生成
  • 开发环境数据填充
  • 演示和培训用途
  • CSV文件处理流程测试

固定数据说明

工作流包含3组预生成的测试数据(pinData),每组包含10个用户记录。这些数据已经固定在OpenAI节点中,方便测试和演示,无需每次都调用API。

注意事项

  1. 需要配置有效的OpenAI API凭证
  2. 确保.n8n目录存在且有写入权限
  3. BOM字节处理对于跨平台CSV文件读取至关重要
  4. 生成的数据为虚构内容,仅供测试使用