1

프로젝트 개요

🎯 목표
  • 신청서 PDF를 업로드하면 국가/품목/HS Code를 자동 파싱하여 보고서 생성
  • LangGraph StateGraph로 구성된 3개 Worker가 독립 파이프라인으로 병렬 실행
  • 각 Worker 내부에서 Fan-out/Fan-in 병렬 처리 + 조건부 분기로 최적 실행 경로 결정
  • PPTX 자동 합본 + 3-tier 환각 방지 검증 시스템으로 품질 보증
3
LangGraph 파이프라인
23
그래프 노드 (총합)
6
출력 포맷
~4min
전체 파이프라인
3개 Worker(A/B/C)는 각각 독립된 LangGraph StateGraph로 구현되어 있으며, subprocess 격리 환경에서 병렬 실행됩니다. 각 그래프 내부에서도 Fan-out 병렬 처리를 통해 스크래핑/텍스트 생성을 동시에 수행합니다.
2

LangGraph 아키텍처

🛠 전체 파이프라인 흐름
INPUTS
신청서 PDF
쇼핑몰 Excel
인터뷰 Excel
LANGGRAPH WORKERS
A
StateGraph (10 nodes)
B
StateGraph (9 nodes)
C
StateGraph (4 nodes)
3-tier 검증
OUTPUTS
PPT
합본 PPTX
PDF
PDF
XLS
Excel (시장+트렌드)
WEB
HTML 보고서
V
검증 리포트
⚙️ LangGraph 그래프 토폴로지
A
시장규모 파이프라인
10 nodes · Fan-out ×2 · Conditional edges
START
init_pipeline
Fan-out ×4
scrape_collect
scrape_import
scrape_trademap
extract_kati_p2
merge_phase1
Fan-out ×3
gen_p1_texts
gen_p2_texts
gen_p3_texts
build_outputs
END
Fan-out #1: Statista / UNI-PASS / TradeMap / KATI 병렬 스크래핑 → merge_phase1에서 합류
Fan-out #2: P1/P2/P3 텍스트 병렬 생성 — 점선 노드는 조건부 (데이터 존재 시에만 실행)
AI: Sonnet (텍스트 생성) + Haiku (HS CODE AI 결정, 카테고리 매칭)
B
트렌드 분석 파이프라인
9 nodes · Fan-out ×1 · Reducer merge
START
parse_study_info
Parallel Branches
analyze_data
save_excel
generate_charts
write_type1
collect_dr
write_type2
assemble_report
generate_pdf
END
Fan-out: 데이터 분석(쇼핑몰 Excel)과 DR 수집(4-tier 웹 검색)이 동시 실행
Reducer: Annotated[list, operator.add]로 병렬 섹션 결과를 자동 병합
DR 4-tier: KATI/KOTRA 스크래핑 → Brave Search → Tavily → Perplexity
AI: Haiku (DR 분석, 카테고리 추론) + Sonnet (섹션 작성)
C
인터뷰 번역 파이프라인
4 nodes · Sequential · ThreadPool 내부 병렬
START
init_pipeline
parse_sheets
translate_all
generate_output
END
순차 실행: 파싱 → 번역 → 출력 (노드 간 의존성으로 순차 처리)
내부 병렬: translate_all 노드 내 ThreadPoolExecutor로 바이어별 동시 번역
AI: Haiku/Sonnet/Opus 선택 가능 (기본 Sonnet)
📊 Worker 요약
StateGraph 10
A
시장규모
4개 소스 병렬 스크래핑
Claude API P1~P3 텍스트 병렬 생성
Conditional edges로 P2/P3 선택 실행
StateGraph 9
B
트렌드 분석
쇼핑몰 Excel 분석 + DR 4-tier 검색 병렬
키워드/브랜드 차트 자동 생성
Reducer로 섹션 결과 자동 병합
StateGraph 4
C
인터뷰 번역
Excel Q&A 파싱
ThreadPool 기반 바이어별 동시 번역
매장별 PPTX 슬라이드 생성
🔗 데이터 소스
  • Statista — 글로벌 시장규모 통계 (실적 + 전망 데이터)
    • Playwright 기반 로그인 + Revenue/Volume 데이터 테이블 스크래핑
  • TradeMap (ITC) — 국가별 수입액 통계 (HS CODE 기반)
    • 글로벌 수입액, 한국 수입액, 상위 수입국 데이터 — CAPTCHA: ddddocr + Claude Vision 폴백
  • UNI-PASS — 관세율, HS CODE 품목 정의
    • 한국 HS CODE 10자리 기반 관세/통관 정보
  • KITA — 한국 수출입 실적, FTA 협정 관세율
  • KATI / KOTRA — 농식품 수출정보, 현지 시장 리포트 PDF, DR 검색 소스
  • Brave / Tavily / Perplexity — DR 4-tier 웹 검색 파이프라인 (Worker B)
    • 쇼핑몰 데이터는 사용자가 Excel로 업로드 (수동 입력)
🔎 환각 방지 검증 시스템
  • Type 1: 수치 검증 (O/X) — AI 생성 텍스트에서 수치를 추출하여 원본 데이터와 비교
    • 시장규모(KRW), CAGR(%), 배수 등 7개 항목 자동 검증
    • 허용 오차: 금액 5%, CAGR 1%p
  • Type 2: 정성 검증 — AI 생성 정성 주장을 SerpAPI/Tavily/Brave 3-tier 웹 검색으로 팩트체크
    • CONFIRMED / LIKELY / UNVERIFIED / CONTRADICTED 4단계 판정
    • 출처 URL 및 근거 스니펫 포함
  • Type 3: 트렌드 DR 팩트체크 — Worker B 트렌드 리포트의 DR 출처 및 주장 검증
    • SerpAPI → Tavily → Brave 순서 폴백 검색
    • 출처 URL 유효성 + 본문 주장 일치 여부 확인
3

기존 대비 변화

🔄 Before / After
● 기존 프로세스
담당자가 수동으로 각 사이트 접속
데이터 복사/붙여넣기
텍스트 직접 작성
트렌드 수동 조사 + 번역
PPT 수동 편집 (2~3일)
수치 교차검증 수작업
● LangGraph 파이프라인
신청서 PDF 업로드 (자동 파싱)
쇼핑몰/인터뷰 Excel 첨부
3 StateGraph 병렬 자동 실행
PPTX 자동 합본 + PDF 변환
3-tier 환각 방지 검증 자동 실행
전체 보고서 출력 (~4분)
기존 2~3일 소요되던 보고서 작성이 약 4분으로 단축되었습니다. 시장규모만 필요한 경우 약 90초로도 가능합니다. 담당자는 검증 리포트를 참고하여 보고서를 검토/보정합니다.
4

기술 스택

🔧 사용 기술
  • Orchestration — LangGraph (StateGraph + TypedDict State)
    • Worker A: 10 nodes, Fan-out ×2, Conditional edges
    • Worker B: 9 nodes, Fan-out ×1, Annotated Reducer merge
    • Worker C: 4 nodes, Sequential + ThreadPool 내부 병렬
  • Backend — FastAPI + Uvicorn + SSE (Server-Sent Events)
    • 비동기 서버, 실시간 진행률 스트리밍, subprocess 기반 Worker 격리
  • AI — Claude API (Anthropic) — 용도별 모델 분리
    • Sonnet: 텍스트 생성 (P1~P3 시장규모, 트렌드 섹션 작성)
    • Haiku: 경량 분석 (HS CODE AI 결정, 카테고리 매칭, DR 분석)
    • Opus: 인터뷰 번역 옵션 (Haiku/Sonnet/Opus 선택 가능)
  • Scraping — Playwright + Requests
    • Statista/TradeMap: Playwright (로그인 필요, CAPTCHA: ddddocr + Claude Vision 폴백)
    • UNI-PASS/KITA: REST API + HTML 파싱
  • DR 수집 — 4-tier 파이프라인 (Worker B)
    • KATI/KOTRA 스크래핑 → Brave Search → Tavily → Perplexity
    • 쇼핑몰 데이터: 사용자 Excel 업로드 (수동 입력)
  • 검증 — SerpAPI + Tavily + Brave 3-tier 폴백 웹 검색 + Regex 수치 추출 수치 검증정성 팩트체크DR 검증
  • Report — python-pptx, openpyxl, matplotlib, LibreOffice PPTXPDFExcelHTML
5

진행 현황

📅 로드맵
Phase 1 ✓
Worker A: 시장규모 LangGraph 파이프라인
StateGraph 10 nodes — 4개 소스 병렬 스크래핑 + P1/P2/P3 텍스트 병렬 생성 + PPTX/PDF/Excel/HTML 출력
Phase 2 ✓
웹 서버 + 대시보드
FastAPI 서버, 신청서 PDF 업로드/파싱, 보고서 목록 관리, SSE 실시간 진행률
Phase 3 ✓
Worker B: 트렌드 분석 LangGraph 파이프라인
StateGraph 9 nodes — 쇼핑몰 Excel 분석 + DR 4-tier 수집 병렬 실행, Reducer 기반 섹션 병합
Phase 4 ✓
Worker C: 인터뷰 번역 LangGraph + PPTX 합본
StateGraph 4 nodes — Excel Q&A 파싱, ThreadPool 동시 번역, 3 Worker PPTX 자동 합본 + PDF 재생성
Phase 5 ✓
3-tier 환각 방지 검증 시스템
수치 검증 (Type 1) + 정성 팩트체크 (Type 2) + 트렌드 DR 검증 (Type 3) — HTML 검증 리포트 출력
Phase 6 (예정)
서버 배포 + 수맞춤/반려 확장
클라우드 서버 배포 및 운영 환경 구축, 수출맞춤형/반려동물 보고서 확장
🎯 목표 달성 현황
완료
3개 Worker 모두 LangGraph StateGraph로 구현 완료
완료
트렌드 분석 + 인터뷰 번역 병렬 통합
완료
3-tier 환각 방지 검증 (수치 + 정성 + DR 팩트체크)
서버 배포 + 수맞춤/반려 확장
6

참고 사항

💬 비고
🔹 3개 Worker는 각각 독립 LangGraph StateGraph로 구성 — subprocess 격리 환경에서 병렬 실행
🔹 에이전트 실행 없이 직접 API 호출 방식으로 토큰 ~90% 절감 (CrewAI는 Tool 스키마 정의용으로만 사용)
🔹 Statista, TradeMap 로그인 쿠키는 .cookies/에 저장 (Git 제외)
🔹 API 키 (.env): ANTHROPIC_API_KEY, SERPAPI_API_KEY, TAVILY_API_KEY, BRAVE_API_KEY 등 — Git 제외
🔹 PDF 변환은 Windows PowerPoint COM 방식 (PowerShell + ComObject) — 서버 배포 시 MS Office 필요
🔹 검증 시스템: API 키 없이도 수치 검증(Type 1) 작동 — SerpAPI/Tavily/Brave 중 하나만 있으면 정성(Type 2) + DR(Type 3) 검증 가능