## AI 기반 워크플로우: 텔레그램 메시지로 역사적 사건 PDF 자동 생성
이 워크플로우는 텔레그램 메시지를 입력받아 역사적 사건에 대한 챕터별 텍스트와 이미지를 생성하고, 최종적으로 PDF 문서를 만들어 Google Drive에 저장합니다.
### 1. 워크플로우 개요
* **입력:** 텔레그램으로 전송된 역사적 사건 관련 텍스트 메시지
* **처리:**
* 메시지 유효성 검사 및 주제 정제
* Google Sheet에 작업 등록
* 웹 검색을 통한 정보 수집 및 5개 챕터 구성 (각 챕터별 텍스트 및 이미지 프롬프트 생성)
* `Nano Banana Pro`를 이용한 이미지 생성
* 생성된 이미지 Google Drive 및 Cloudinary에 업로드 (Public URL 확보)
* HTML 문서 생성 (이미지 URL 포함)
* HTML을 PDF로 변환
* 최종 PDF Google Drive에 저장
* **출력:** Google Drive에 저장된 역사적 사건 관련 PDF
### 2. 상세 워크플로우 구성
#### 2.1. 트리거 및 메시지 유효성 검사
* **텔레그램 트리거:** 새로운 메시지 수신 감지
* *참고:* 텔레그램 외 다른 채팅 도구도 연동 가능
* **파일 검사 (If Node):**
* 수신된 메시지가 텍스트인지, 파일(이미지, 비디오 등)인지 구분
* 파일 포함 시: "파일은 지원되지 않습니다." 메시지 후 워크플로우 중단
* 텍스트 메시지만 다음 단계로 진행
#### 2.2. 첫 번째 AI 에이전트: 주제 검증 및 정제
* **역할:** 수신된 메시지가 역사적 사건, 인물, 교육적 개념에 대한 유효한 주제인지 판단
* **기능:**
* 주제가 유효하면 `is_valid: true`, `refined_topic: [전문적인 주제명]`, `reply_to_user: ""` 설정
* 주제가 유효하지 않으면 (일상 대화, 코딩 질문 등) `is_valid: false`, `refined_topic: ""`, `reply_to_user: [안내 메시지]` 설정
* **사용 모델:** Google Gemini 2.5 Flash (OpenAI 등 다른 모델로 교체 가능)
* **출력:** 구조화된 응답 (is\_valid, refined\_topic, reply\_to\_user)
#### 2.3. Google Sheet 작업 등록 및 데이터 관리
* **Crypto Node:** 고유 ID (UUID) 생성 (현재 작업 식별용)
* **Google Sheet - Add Row Node:**
* 생성된 ID, 정제된 주제, 작업 유형(`briefing_job`), 상태(`generating`)를 Google Sheet에 새 행으로 추가
* *확장성:* 챕터 수를 유동적으로 조절하기 위해 이미지별 `asset_creation` 타입 행을 별도 생성 (Parent ID로 연결)
* **Google Sheet 구조:**
* ID, Concept (주제), Type (briefing\_job / asset\_creation), Parent ID (asset\_creation 시), Status, Prompt, Image Link, PDF Link
#### 2.4. 두 번째 AI 에이전트: 챕터 및 이미지 프롬프트 생성
* **역할:** 역사적 사건을 5개의 연대순 챕터로 구성하고, 각 챕터별 상세한 이미지 생성 프롬프트 작성
* **기능:**
* **연구:** 정확한 날짜, 주요 인물, 장소, 시각적 세부 사항 조사
* **구조화:** 5개의 연대순 챕터로 이벤트 분할
* **초안 작성:** 각 챕터별로 다음 필드 생성
* `chapter_id`: 챕터 고유 ID
* `title`: 챕터 제목
* `date`: 챕터 날짜
* `content`: 3~4 문장의 교육적인 설명 (발생 내용 및 중요성 포함)
* `image_prompt`: AI 이미지 생성을 위한 상세 프롬프트
* **사용 모델:** OpenAI GPT 3.5 (다른 모델로 교체 가능, 웹 검색 도구 연동 가능)
* **출력:** 챕터 목록 (각 챕터는 title, date, content, image\_prompt 포함)
#### 2.5. 이미지 생성 및 Google Drive 업로드
* **Split Out Node:** 챕터 목록을 개별 챕터로 분할
* **Crypto Node:** 각 챕터별 고유 ID 생성
* **Google Sheet - Add Row Node:**
* `asset_creation` 타입으로 새 행 추가, Parent ID 설정, 상태(`queued`), 이미지 프롬프트 저장
* **Loop Over Items Node:** 각 챕터를 개별적으로 처리 (부하 방지)
* **Google Sheet - Update Row Node:** 챕터 상태 `generating`으로 업데이트
* **Gemini Message Model Node (Nano Banana Pro):** 이미지 프롬프트 기반 이미지 생성
* 출력: Base64 형식의 이미지 데이터
* **Base64 to Binary Node:** Base64 데이터를 실제 파일로 변환 (파일 이름은 행 ID 사용)
* **Upload File to Drive Node:** 변환된 이미지 파일을 Google Drive의 지정 폴더에 업로드
* **Google Sheet - Update Row Node:** 상태 `completed`로 업데이트, Google Drive 이미지 링크 저장
* **Edit Fields Node:** 챕터 데이터 (ID, title, date, content, image\_prompt, Base64)를 하나의 객체로 통합
#### 2.6. HTML 및 PDF 생성
* **Aggregation Node:** 개별 챕터 데이터를 단일 목록으로 결합
* **HTML Node:**
* 결합된 챕터 데이터를 사용하여 웹페이지 스타일의 HTML 문서 생성 (텍스트북 스타일)
* *참고:* `base64` 대신 Cloudinary 등 외부 서비스에 업로드된 이미지 URL을 소스로 사용하도록 수정하여 HTML 데이터 크기 최적화
* **HTTP Request Node (API Template):**
* 생성된 HTML을 PDF로 변환 (API Key 인증 필요)
* **API Template 설정:**
* HTML 콘텐츠 전달
* PDF 제목 (주제명) 설정
* 페이지 크기, 방향, 글꼴 등 PDF 스타일 조정
* **HTTP Request Node:** API Template에서 생성된 PDF 다운로드 URL을 통해 PDF 파일 다운로드
* **Upload File to Drive Node:** 다운로드된 PDF 파일을 Google Drive에 업로드 (파일 이름: 주제명 - ID)
* **Google Sheet - Update Row Node:** 상태 `completed`로 업데이트, Google Drive PDF 링크 저장
### 3. 기대 효과 및 활용
* **자동화:** 텔레그램 메시지 한 통으로 풍부한 시각 자료를 갖춘 PDF 문서 자동 생성
* **학습:** 역사적 사건을 텍스트와 이미지로 효과적으로 학습
* **콘텐츠 제작:** 교육 자료, 보고서 등 다양한 형태의 문서 제작 시간 단축
* **확장성:** 챕터 수 조절, 다른 사용 사례 (교육 콘텐츠, 문서 자동 생성 등) 적용 용이
---
**참고:**
* 이 워크플로우는 텔레그램, Google Drive, Cloudinary, API Template 등의 외부 서비스 연동을 필요로 합니다.
* 각 AI 모델 및 서비스 사용에 따른 비용이 발생할 수 있습니다. (이미지 생성 약 10센트/개, OpenAI 약 1센트/PDF)