GPT-4를 활용한 N8N 워크플로우로 CSV 파일 생성하기
Prepare CSV files with GPT-4
OpenAI GPT-4를 통해 가상의 사용자 데이터를 자동으로 생성하고 대량으로 CSV 파일로 내보내는 자동화 워크플로우
워크플로우 개요
이것은 GPT-4를 사용하여 무작위 사용자 데이터를 생성하고 이를 CSV 파일로 내보내는 N8N 자동화 워크플로우입니다. 이 워크플로우는 OpenAI API를 호출하여 가상의 사용자 정보를 생성한 후, 해당 데이터를 처리하여 여러 개의 CSV 파일로 로컬 디스크에 저장합니다.
워크플로우 상세 설명
1. 트리거 단계
- 노드: "워크플로우 실행(Execute Workflow)" 클릭 시 (수동 트리거)
- 기능: 수동으로 클릭하여 전체 워크플로우 실행을 시작함
- 위치: 워크플로우의 시작 노드
2. 데이터 생성 단계
- 노드: OpenAI
- 유형: n8n-nodes-base.openAi
- 설정:
- 사용 모델: GPT-4
- 생성 횟수: 3회 호출
- 최대 토큰 수: 2500
- 온도(Temperature) 파라미터: 1 (무작위성 증가)
- 프롬프트 내용: GPT-4에게 다음 필드를 포함한 10명의 무작위 사용자 JSON 배열을 생성하도록 요청:
user_name: 가상 캐릭터 이름(이름과 성의 첫 글자가 동일)user_email: 이메일 주소subscribed: 구독 상태(불리언 값)date_subscribed: 구독 날짜(구독된 경우 2023-10-01 이전의 무작위 날짜)
3. 배치 처리 단계
- 노드: Split In Batches
- 기능: OpenAI 응답 3개를 배치 단위로 분할하여 각각 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 노드로 돌아가 다음 배치 데이터 계속 처리
워크플로우 특징
장점
- 높은 자동화 수준: 한 번의 클릭으로 무작위 데이터를 포함한 여러 CSV 파일 생성 가능
- 표준화된 데이터 형식: 생성된 데이터 구조가 명확하며 실제 비즈니스 시나리오에 부합
- 배치 처리 기능: 여러 개의 서로 다른 데이터셋을 동시에 생성 가능
- 완벽한 인코딩 처리: BOM 바이트를 특별히 처리하여 파일 호환성 보장
활용 사례
- 테스트 데이터 생성
- 개발 환경 데이터 채우기
- 데모 및 교육 목적
- CSV 파일 처리 프로세스 테스트
고정 데이터 설명
이 워크플로우에는 미리 생성된 테스트 데이터(pinData) 3세트가 포함되어 있으며, 각 세트는 10개의 사용자 레코드로 구성됩니다. 이러한 데이터는 OpenAI 노드 내에 고정되어 있어 매번 API를 호출하지 않고도 테스트 및 데모가 가능합니다.
주의사항
- 유효한 OpenAI API 자격 증명이 필요함
.n8n디렉터리가 존재하며 쓰기 권한이 있어야 함- 크로스 플랫폼에서 CSV 파일을 읽을 때 BOM 바이트 처리가 매우 중요함
- 생성된 데이터는 가상의 내용이며 테스트 용도로만 사용해야 함