SaaS API가이드라인 AI 생성 입력
AI 생성 입력 개요
콘텐츠 가이드라인 AI 생성 입력 API 개요
가이드라인 AI 생성 입력 API
콘텐츠 가이드라인을 AI로 생성하기 위한 입력 데이터(프롬프트/파일/제품 링크) 를 저장·조회하는 API 입니다.
생성 결과(data) 와는 분리되어 GuidelineDocument.generationInput 필드에 저장됩니다.
기본 경로
/ai/guideline/generation/{collabNo}인증
- 파일 업로드 / 입력 저장은 JWT Bearer 토큰 인증이 필요합니다.
- 작성자 본인 또는 관리자만 저장 가능 (관리자는
ROLE_ADMIN권한). - 조회는 인증 불필요.
호출 흐름
1. POST /ai/guideline/generation/{collabNo}/files (파일 1개씩 multipart 업로드)
→ 응답으로 S3 URL 1개를 받음
2. PUT /ai/guideline/generation/{collabNo}/input (전체 입력 저장)
→ body.fileUrls 배열에 위에서 받은 URL 들을 그대로 담아 전송
3. GET /ai/guideline/generation/{collabNo}/input (저장된 입력 조회)저장 위치
| 데이터 | 저장소 | 비고 |
|---|---|---|
| 업로드 파일 본체 | S3 guideline/generation/{collabNo}/ | input 버킷 사용 |
| 텍스트 + 링크 + 파일 URL | MongoDB guidelines.generationInput | 가이드라인 도큐먼트 최상위 필드 |
GuidelineDocument 구조에서의 위치
GuidelineDocument {
id, collabNo, memberId, status,
data // 4단계 위저드 결과 (V1/V2)
generationInput // ← 본 API가 다루는 영역
createdAt, updatedAt
}generationInput 필드:
| 필드 | 타입 | 설명 |
|---|---|---|
productLink | string | null | 제품 링크 |
conceptText | string | null | 사용자 프롬프트(컨셉/기존 가이드라인 텍스트) |
fileUrls | array<string> | 업로드된 파일 S3 URL 목록 |
referenceLinks | array<string> | null | 레퍼런스 링크 (스펙 미정 - null/empty 허용) |
generatedAt | Instant | 마지막 저장 시각 |
동작 규칙
- 재생성 시 덮어쓰기 — 다시 호출하면
generationInput필드를 통째로 교체합니다 (히스토리 미지원). - 다른 필드 영향 없음 — 본 API는
data,status등 기존 필드를 변경하지 않습니다. - 도큐먼트 자동 생성 — 해당 캠페인의 가이드라인 도큐먼트가 없으면 새로 만들어
generationInput만 채웁니다.
파일 업로드 정책
- 확장자/MIME 제한 없음 — 이미지·문서·동영상 등 어떤 형식이든 그대로 저장합니다.
- 최대 파일 크기: 200MB (
spring.servlet.multipart.max-file-size). - 파일 본체 변경 없음 — 업로드된 바이트 스트림을 그대로 S3에 저장. 파일명은
\r\n만_로 치환(헤더 인젝션 방지). - S3 키 형식:
guideline/generation/{collabNo}/{timestamp}_{uuid}_{originalFilename}— 충돌 방지를 위해 timestamp/uuid prefix 추가하지만 원본 파일명은 보존.