🤖

AI WORKFLOW DOCUMENTATION

음성에서 견적서까지, 자동으로

제조 현장의 목소리를 데이터화하고 자동으로 문서화하는 프로세스입니다.
Gemini의 멀티모달 분석Claude의 코드 생성 능력을 결합한 최적의 솔루션

음성 → 텍스트 비정형 → 정형 데이터 JSON → PPTX

📋 워크플로우 개요

🎤

Input

음성 녹음 파일
(MP3, WAV)

⚙️

Process

AI 분석 & 변환
(Gemini + Claude)

📊

Output

견적서 PPTX 파일
(자동 생성)

🔄 상세 프로세스 (4단계)

1

음성 데이터 분석 및 데이터 구조화

Gemini 1.5 Pro 활용

🎯 Gemini

📥 Input

  • 음성 파일 (MP3, WAV 등)
  • 기존 견적서 양식 샘플

⚙️ Process

  • 대화 내용을 텍스트로 변환 (STT)
  • 맥락 파악 및 규칙 정리

📤 Output

// Structured Data (JSON)

{
  "customer": "A사",
  "items": [...],
  "total_price": "..."
}
2

웹 기반 중간 검토 및 데이터 보정

Claude Web Page Skill

🔧 Claude

⚙️ Process

  • 1 추출된 데이터를 테이블 형태로 표시
  • 2 사용자가 오인식된 항목을 직접 수정
  • 3 수정 사항 즉시 JSON 데이터에 반영

✨ Key Feature

데이터 확정 버튼 클릭

확정 버튼을 누르면 PPTX 생성 스크립트로 데이터가 전달됩니다.

3

PPTX 생성 로직 실행

Claude Code Skill

💻 Claude

⚙️ Process

  • 1 python-pptx 라이브러리 활용
  • 2 템플릿 슬라이드에 데이터 매핑
  • 3 코드 자동 작성 및 실행

📐 레이아웃 자동 배치

📄 품목이 많으면 슬라이드 자동 복제
📊 표 크기 자동 조절 로직 포함
📊

OUTPUT

최종 견적서 파일 (.pptx)

4

최종 산출물 피드백 및 저장

Review & Iteration

🔄 반복

📋 프로세스

  • 생성된 PPTX 파일을 사용자에게 제공
  • 디자인/내용 수정 필요 시 Claude에게 요청
  • 코드 즉시 재수정 가능

💬 수정 요청 예시

"표의 색상을 변경해줘"

"마지막에 안내 문구를 추가해줘"

🛠 주요 기술 스택 및 역할 분담

단계 담당 AI 기술 및 도구 비고
음성 인식 & 추론 Gemini Multimodal Audio Input 긴 대화의 맥락 파악에 최적
데이터 구조화 Gemini / Claude JSON Schema 추출 비정형 → 정형 데이터 변환
UI/UX 구성 Claude React / HTML/JS 사용자 데이터 확인 인터페이스
문서 생성 Claude Python (python-pptx) 실제 파일 바이너리 생성

💡 성공적인 자동화를 위한 팁

1

프롬프트 엔지니어링 (Few-shot)

Gemini에게 음성을 넘길 때, "이전 견적서 사례" 2~3개를 함께 예시로 주면 추출 정확도가 대폭 향상됩니다.

핵심: 예시 기반 학습으로 정확도 향상

2

템플릿 고정

PPTX의 배경 디자인이나 로고는 미리 만든 template.pptx 파일을 활용하고, AI는 값만 채우도록 설정

핵심: 디자인 품질 유지에 유리

3

예외 처리

대화 중 불확실한 내용은 Unconfirmed 플래그를 달아 웹 페이지에서 강조 표시되도록 설계

핵심: 불확실성 명시적 관리

🔧 Claude Code Skills 기반 구현

음성 → 텍스트 변환 이후 PPTX 생성까지 Claude Code의 Subagent와 Skills를 활용한 자동화 파이프라인

🏗️ Skills 아키텍처

1

text-analyzer-skill

자연어 텍스트 분석 및 PDF 템플릿 구조 매핑

섹션 패턴 인식
콘텐츠 자동 분류
JSON Schema 추출
node txt-to-pptx.js
2

proposal-skill

PDF 기획서 분석 및 PPT 기획서 자동 생성

PDF 구조 분석
템플릿 추출
콘텐츠 자동 매핑
npm run create-proposal
3

pptx-skill

HTML 슬라이드를 PowerPoint 파일로 변환

HTML → PPTX 변환
PptxGenJS 라이브러리
썸네일 검증
node html2pptx.js

📊 PPT Team Agent 워크플로우

Input

source/*.txt

Parser

텍스트 파싱

Analyzer

섹션 인식

Mapper

템플릿 매핑

Output

PPTX 생성

📁 디렉터리 구조

flow-chart/
├── source/           # TXT 입력 파일
├── pptx/             # PPTX 출력
├── templates/        # JSON 템플릿
├── data/             # 샘플 데이터
├── run.js            # 통합 실행
└── estimate-pptx-generator.js

⚡ 실행 명령어

npm run ppt # TXT → PPTX
npm run estimate # 견적서 생성
npm run template # 템플릿 기반

📋 SAM ERP 견적서 생성기

생성되는 슬라이드 구성

1 표지 (SAM 로고 및 시스템 소개)
2 견적관리 메인 (필터, 통계, 목록)
3 견적 상세 (정보 입력 폼)
4 견적서 문서 (요약)
5 견적서 문서 (항목별 상세 내역)

견적 데이터 구조 (JSON)

{
  "company": "(주) 주일기업",
  "documentNumber": "ABC123",
  "client": {
    "name": "회사명",
    "site": "현장명",
    "contact": "연락처"
  },
  "items": [
    {
      "name": "FSSB01(주차장)",
      "width": 2530,
      "height": 2550,
      "materialCost": 1420000,
      "laborCost": 510000
    }
  ],
  "summary": {
    "grandTotal": 93950000
  }
}

⚙️ 기술 구현 세부사항

📝 텍스트 파서 (TextParser)

자연어 텍스트의 구조와 내용을 자동 파싱

섹션 인식 패턴:

프로젝트명: 메타데이터 추출
=== 섹션 === 주요 섹션 구분
1. 항목 번호 목록 인식
정확도: 섹션 인식률 90% 이상

🗺️ 템플릿 매퍼 (TemplateMapper)

파싱된 데이터를 PDF 템플릿 구조에 매핑

매핑 대상:

표지 (Cover)
문서 히스토리
메뉴 구조
상세 화면
일치도: SAM_ERP 스토리보드 95% 일치

📊 PptxGenJS 라이브러리

JavaScript 기반 PowerPoint 생성

// 색상 코드 (# 없이)
{ color: 'FF0000' }
{ fill: { color: '1e3a5f' } }

// 슬라이드 크기 (16:9)
pres.defineLayout({
  name: 'CUSTOM_16x9',
  width: 10,
  height: 5.625
});
주의: 색상 코드에 # 접두사 사용 금지

🔄 HTML → PPTX 변환

Playwright + PptxGenJS 조합

HTML 작성 규칙:

텍스트에 border/background 금지
불릿 기호로 시작하는 텍스트 금지
table 태그 사용 금지 (flexbox 사용)
body: 720pt × 405pt (16:9)
검증: thumbnail.py로 시각적 확인

🔀 전체 흐름도

🎤

음성 녹음

🤖

Gemini STT

📋

JSON 데이터

🖥️

웹 검토

⚙️

Claude Code

📊

PPTX 완성

AI 처리 단계
최종 산출물