Summary
Pinterest/Instagram 등에서 수집한 fashion-decode 포맷 이미지(좌: 인물 / 우: 아이템 그리드)를 seed 데이터로 전환하는 전체 워크플로우를 4개 파이프라인으로 나누어 관리한다.
[1. 이미지 적재] 플랫폼 어댑터 → R2 → source_media
↓
[2. 파싱] Vision AI → seed_posts/spots/solutions
↓ ↓
[3. 원본 이미지] 좌측 인물 역검색 → 고화질 원본 R2
[4. 엔티티 매칭] 브랜드/아티스트/그룹 resolve → brands/identities/groups
Pipeline 1 — 이미지 적재 @cocoyoon
플랫폼 독립적인 수집 인프라 + 플랫폼별 어댑터.
R2 이미지 → Gemini Flash Vision → 구조화 데이터 → seed_*.
Pipeline 3 — 원본 이미지 @CIOI
좌측 인물 크롭 → 역이미지 검색 → 고화질 원본 R2 아카이빙.
Pipeline 4 — 디테일 enrichment @CIOI
파싱 결과 문자열을 DB 엔티티에 매칭·보강.
의존성 그래프
#258 (P1 infra)
├─→ #214 (Pinterest)
├─→ #259 (Instagram)
└─→ #260 (P2 Parsing)
├─→ #261 (P3 원본)
└─→ #262 (P4 Enrichment)
구현 순서: #258 → {#214, #259, #260} → {#261, #262}
통합 검증 (전체 파이프라인 E2E)
비기능 요구
- 관측성: 각 파이프라인별 잡 성공/실패/지연 메트릭 (Prometheus or Supabase 로그)
- Rate-limit: 플랫폼별/Vision API/역검색 API 별 쿼터 관리
- 비용: Vision API + SerpAPI 월 호출 상한 가드
- 검수: 자동
parse_status='parsed' → Admin 검수 → seed_posts.status='published'
관련 기존 시스템
🤖 Generated with Claude Code
Summary
Pinterest/Instagram 등에서 수집한 fashion-decode 포맷 이미지(좌: 인물 / 우: 아이템 그리드)를 seed 데이터로 전환하는 전체 워크플로우를 4개 파이프라인으로 나누어 관리한다.
Pipeline 1 — 이미지 적재 @cocoyoon
플랫폼 독립적인 수집 인프라 + 플랫폼별 어댑터.
decoded-mediaR2,media_sources/source_media스키마) 선행 필수Pipeline 2 — 파싱 @cocoyoon
R2 이미지 → Gemini Flash Vision → 구조화 데이터 → seed_*.
ParsedDecodeResult→ seed_posts/spots/solutions)Pipeline 3 — 원본 이미지 @CIOI
좌측 인물 크롭 → 역이미지 검색 → 고화질 원본 R2 아카이빙.
Pipeline 4 — 디테일 enrichment @CIOI
파싱 결과 문자열을 DB 엔티티에 매칭·보강.
의존성 그래프
구현 순서:
#258 → {#214, #259, #260} → {#261, #262}통합 검증 (전체 파이프라인 E2E)
source_media적재seed_posts/spots/solutions생성entity_candidates에 적재비기능 요구
parse_status='parsed'→ Admin 검수 →seed_posts.status='published'관련 기존 시스템
warehouse.seed_posts/seed_spots/seed_solutions/seed_asset— 최종 목적지packages/ai-server/src/managers/— DI container, GeminiClient, ImageCompressor 재사용🤖 Generated with Claude Code