Skip to content

Commit 0115ecd

Browse files
author
marshmallowing
committed
fix: 소재 프롬프트 수정
1 parent 46d2151 commit 0115ecd

File tree

1 file changed

+27
-17
lines changed

1 file changed

+27
-17
lines changed

src/main/java/com/ongil/backend/domain/review/service/prompter/MaterialReviewPrompter.java

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.ongil.backend.domain.review.service.prompter;
22

3+
import java.util.List;
4+
35
import org.springframework.stereotype.Component;
46

57
import com.ongil.backend.domain.review.dto.request.AiReviewGenerateRequest;
@@ -128,30 +130,38 @@ public String buildUserMessage(AiReviewGenerateRequest request) {
128130
prompt.append("소재 평가: ").append(request.getMaterialAnswer().getDisplayName()).append("\n");
129131

130132
if (!request.getMaterialFeatures().isEmpty()) {
131-
prompt.append("선택한 소재 특징:\n");
132-
boolean hasThicknessAll = false;
133-
134-
for (String feature : request.getMaterialFeatures()) {
135-
if ("두께감:선택지전체".equals(feature)) {
136-
hasThicknessAll = true;
137-
continue;
138-
}
139-
prompt.append("- ").append(feature).append("\n");
140-
}
141-
142-
prompt.append("\n[문장 생성 규칙]");
143-
prompt.append("\n1. 위 리스트에 나열된 각 특징마다 서로 다른 느낌의 '2문장씩'을 반드시 생성할 것.");
133+
boolean hasThicknessAll = request.getMaterialFeatures().contains("두께감:선택지전체");
134+
List<String> otherFeatures = request.getMaterialFeatures().stream()
135+
.filter(f -> !"두께감:선택지전체".equals(f))
136+
.toList();
144137

145-
if (hasThicknessAll) {
146-
prompt.append("\n[특수 지시] 두께감은 아래 3가지 상황에 맞춰 생성하되, 각 문장 사이를 '|' 기호로 구분할 것:\n");
138+
// 두께감 전체 선택 단독인 경우
139+
if (hasThicknessAll && otherFeatures.isEmpty()) {
140+
prompt.append("\n[특수 지시] 두께감만 선택됨. 아래 3가지 상황에 맞춰 각각 1문장씩 생성하되, '|' 기호로 구분할 것:\n");
147141
if (isPositive) {
148142
prompt.append("1. 두꺼워서 따뜻함 | 2. 얇아서 시원함 | 3. 적당한 두께임\n");
149143
} else {
150144
prompt.append("1. 소재가 너무 두꺼워서 답답함 | 2. 너무 얇아서 추운 느낌임 | 3. 두께가 애매해서 아쉬움\n");
151145
}
146+
} else {
147+
prompt.append("선택한 소재 특징:\n");
148+
for (String feature : otherFeatures) {
149+
prompt.append("- ").append(feature).append("\n");
150+
}
151+
152+
prompt.append("\n[문장 생성 규칙]");
153+
prompt.append("\n1. 위 리스트에 나열된 각 특징마다 서로 다른 느낌의 '2문장씩'을 반드시 생성할 것.");
154+
155+
if (hasThicknessAll) {
156+
prompt.append("\n[특수 지시] 두께감은 아래 3가지 상황에 맞춰 생성하되, 각 문장 사이를 '|' 기호로 구분할 것:\n");
157+
if (isPositive) {
158+
prompt.append("1. 두꺼워서 따뜻함 | 2. 얇아서 시원함 | 3. 적당한 두께임\n");
159+
} else {
160+
prompt.append("1. 소재가 너무 두꺼워서 답답함 | 2. 너무 얇아서 추운 느낌임 | 3. 두께가 애매해서 아쉬움\n");
161+
}
162+
}
152163
}
153-
}
154-
else {
164+
} else {
155165
prompt.append("\n[지시] 특정 소재 속성 언급 없이, 전반적으로 무난하고 평범하다는 인상의 서로 다른 '2문장'을 생성할 것.\n");
156166
}
157167

0 commit comments

Comments
 (0)