feat : 분석 프롬프트 수정(리뷰 분석시 부정의견 추가.)

This commit is contained in:
lsh9672
2025-06-17 19:51:03 +09:00
parent a67cd0db79
commit a0eb5f8979
7 changed files with 20 additions and 1 deletions
@@ -4,6 +4,7 @@ import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.ToString;
import java.time.LocalDateTime;
import java.util.List;
@@ -16,12 +17,14 @@ import java.util.List;
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class AiFeedback {
private Long id;
private Long storeId;
private String summary;
private List<String> positivePoints;
private List<String> negativePoints;
private List<String> improvementPoints;
private List<String> recommendations;
private String sentimentAnalysis;
@@ -123,6 +123,7 @@ public class AnalyticsService implements AnalyticsUseCase {
.storeId(storeId)
.summary(aiFeedback.get().getSummary())
.positivePoints(aiFeedback.get().getPositivePoints())
.negativePoints(aiFeedback.get().getNegativePoints())
.improvementPoints(aiFeedback.get().getImprovementPoints())
.recommendations(aiFeedback.get().getRecommendations())
.sentimentAnalysis(aiFeedback.get().getSentimentAnalysis())
@@ -460,6 +461,7 @@ public class AnalyticsService implements AnalyticsUseCase {
.feedbackId(aiFeedback.getId())
.summary(aiFeedback.getSummary())
.positivePoints(aiFeedback.getPositivePoints())
.negativePoints(aiFeedback.getNegativePoints())
.improvementPoints(aiFeedback.getImprovementPoints())
.recommendations(aiFeedback.getRecommendations())
.sentimentAnalysis(aiFeedback.getSentimentAnalysis())
@@ -530,11 +532,13 @@ public class AnalyticsService implements AnalyticsUseCase {
// 2. 실제 AI 서비스 호출 (기존 하드코딩 부분을 수정)
AiFeedback aiFeedback = aiServicePort.generateFeedback(reviewData);
// 3. 도메인 객체 속성 설정
AiFeedback completeAiFeedback = AiFeedback.builder()
.storeId(storeId)
.summary(aiFeedback.getSummary())
.positivePoints(aiFeedback.getPositivePoints())
.negativePoints(aiFeedback.getNegativePoints())
.improvementPoints(aiFeedback.getImprovementPoints())
.recommendations(aiFeedback.getRecommendations())
.sentimentAnalysis(aiFeedback.getSentimentAnalysis())
@@ -31,6 +31,9 @@ public class AiAnalysisResponse {
@Schema(description = "긍정적 요소")
private List<String> positivePoints;
@Schema(description = "부정적 요소")
private List<String> negativePoints;
@Schema(description = "개선점")
private List<String> improvementPoints;
@@ -23,6 +23,7 @@ public class AiFeedbackDetailResponse {
private Long storeId;
private String summary;
private List<String> positivePoints;
private List<String> negativePoints;
private List<String> improvementPoints;
private List<String> existActionPlan; // improvemnetPoints 중에서 처리 된것.
private List<String> recommendations;
@@ -176,6 +176,7 @@ public class AIServiceAdapter implements AIServicePort {
{
"summary": "전체적인 분석 요약(2-3문장)",
"positivePoints": ["긍정적 요소1", "긍정적 요소2", "긍정적 요소3"],
"negativePoints": ["부정적 요소1", "부정적 요소2", "부정적 요소3"],
"improvementPoints": ["개선점1", "개선점2", "개선점3"],
"recommendations": ["추천사항1", "추천사항2", "추천사항3"],
"sentimentAnalysis": "전체적인 감정 분석 결과",
@@ -187,6 +188,7 @@ public class AIServiceAdapter implements AIServicePort {
분석 시 다음 사항을 고려해주세요:
1. 긍정적 요소는 고객들이 자주 언급하는 좋은 점들
2. 부정적 요소는 고객들이 자주 언급하는 안좋은 점들(없는 경우에는 없음으로 표시)
2. 개선점은 부정적 피드백이나 불만사항
3. 추천사항은 매장 운영에 도움이 될 구체적인 제안
4. 신뢰도 점수는 0.0-1.0 사이의 값
@@ -278,6 +280,7 @@ public class AIServiceAdapter implements AIServicePort {
return AiFeedback.builder()
.summary((String) result.get("summary"))
.positivePoints((List<String>) result.get("positivePoints"))
.negativePoints((List<String>) result.get("negativePoints"))
.improvementPoints((List<String>) result.get("improvementPoints"))
.recommendations((List<String>) result.get("recommendations"))
.sentimentAnalysis((String) result.get("sentimentAnalysis"))
@@ -105,6 +105,7 @@ public class AnalyticsRepositoryAdapter implements AnalyticsPort {
.storeId(entity.getStoreId())
.summary(entity.getSummary())
.positivePoints(parseJsonToList(entity.getPositivePointsJson()))
.negativePoints(parseJsonToList(entity.getNegativePointsJson()))
.improvementPoints(parseJsonToList(entity.getImprovementPointsJson()))
.recommendations(parseJsonToList(entity.getRecommendationsJson()))
.sentimentAnalysis(entity.getSentimentAnalysis())
@@ -124,6 +125,7 @@ public class AnalyticsRepositoryAdapter implements AnalyticsPort {
.storeId(domain.getStoreId())
.summary(domain.getSummary())
.positivePointsJson(parseListToJson(domain.getPositivePoints()))
.negativePointsJson(parseListToJson(domain.getNegativePoints()))
.improvementPointsJson(parseListToJson(domain.getImprovementPoints()))
.recommendationsJson(parseListToJson(domain.getRecommendations()))
.sentimentAnalysis(domain.getSentimentAnalysis())
@@ -42,7 +42,10 @@ public class AiFeedbackEntity {
@Column(name = "positive_points", columnDefinition = "TEXT")
private String positivePointsJson;
@Column(name = "negative_points", columnDefinition = "TEXT")
private String negativePointsJson;
@Column(name = "improvement_points", columnDefinition = "TEXT")
private String improvementPointsJson;